<?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>30555</bug_id>
          
          <creation_ts>2009-10-20 00:55:20 -0700</creation_ts>
          <short_desc>Provide a way to get counter values with layoutTestContoller</short_desc>
          <delta_ts>2009-10-29 21:21:53 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinichiro Hamaji">hamaji</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>156091</commentid>
    <comment_count>0</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-20 00:55:20 -0700</bug_when>
    <thetext>dumpAsText() (which uses innerText internally) doesn&apos;t output the values of CSS counters. So, we need to do pixel tests for CSS counter tests. Let&apos;s add layoutTestContoller.dumpCounterNode and eliminate pixel tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156092</commentid>
    <comment_count>1</comment_count>
      <attachid>41488</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-20 00:57:24 -0700</bug_when>
    <thetext>Created attachment 41488
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156196</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-20 10:46:41 -0700</bug_when>
    <thetext>I like that this makes it possible to have text-only tests of counter behavior. But I don&apos;t like the fact that this dumps the internal counter data structure, because I think that data structure isn&apos;t so great and may need to be changed. Can we instead come up with something that will dump the actual counter value generated text that will be displayed rather than exposing the tree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156427</commentid>
    <comment_count>3</comment_count>
      <attachid>41553</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-21 00:43:46 -0700</bug_when>
    <thetext>Created attachment 41553
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156429</commentid>
    <comment_count>4</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-21 00:46:42 -0700</bug_when>
    <thetext>Thanks for the comment! Yes, I see. Dumping counter tree was a bad idea. I modified my patch so that it outputs texts in counters. Now we can check more complicated counter texts like &quot;α.β&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156444</commentid>
    <comment_count>5</comment_count>
      <attachid>41553</attachid>
    <who name="">mitz</who>
    <bug_when>2009-10-21 02:41:27 -0700</bug_when>
    <thetext>Comment on attachment 41553
Patch v2

&gt; +void dumpCounterNode(RenderObject* o)
&gt; +{
&gt; +    for (; o; o = o-&gt;nextInPreOrder()) {
&gt; +        if (o-&gt;isCounter()) {
&gt; +            String str(toRenderText(o)-&gt;originalText().releaseRef());
&gt; +            printf(&quot;%s\n&quot;, str.utf8().data());
&gt; +        }
&gt; +    }
&gt; +}

Using printf() here is inelegant and limits the usefulness of the code. I think a function that returns a string would be better and more flexible. You could decide to dump the value in DumpRenderTree, but you could also just expose it to the test through the LayoutTestController.

It’s somewhat confusing that a function called dumpCounterNode() doesn’t take a counter as its argument. Is the argument even necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156447</commentid>
    <comment_count>6</comment_count>
      <attachid>41559</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-21 03:22:50 -0700</bug_when>
    <thetext>Created attachment 41559
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156451</commentid>
    <comment_count>7</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-21 03:28:44 -0700</bug_when>
    <thetext>Thanks for the review!

&gt; Using printf() here is inelegant and limits the usefulness of the code. I think
&gt; a function that returns a string would be better and more flexible. You could
&gt; decide to dump the value in DumpRenderTree, but you could also just expose it
&gt; to the test through the LayoutTestController.

I see. I update my patch and it returns String. 

&gt; It’s somewhat confusing that a function called dumpCounterNode() doesn’t take a
&gt; counter as its argument. Is the argument even necessary?

The argument is the root node of render tree and dumpCounterNode (this name was gone in my new patch) outputted all counters in the render tree. I think the name of this function was wrong. Now I changed the name to counterValuesFromRenderTree. I hope this name sounds better.

Also, as now we don&apos;t output counter tree, I renamed the dump function from dumpCounterNode to dumpCounterValues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156528</commentid>
    <comment_count>8</comment_count>
      <attachid>41559</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-21 10:34:54 -0700</bug_when>
    <thetext>Comment on attachment 41559
Patch v3

This looks OK.

For our more modern tests, we do more than just avoid dumping the render tree. We also like do to targeted tests and use the script-tests system so we can test lots of things in a clear way in a single test. For those purposes, the most useful kind of feature would be one where we could get the counter text for a particular element in the document. We would want a JavaScript function to return that text given the element, not one that dumps all the counters in an entire document. That kind of feature would enable us to make thorough, easy to understand regression tests using the script-tests machinery and would be a lot more valuable than a dump feature.

It looks to me like you modeled the interface of your counterValuesFromRenderTree function on the existing externalRepresentation function in RenderTreeAsText.h. The design of that function is not good, and not something to be emulated.

First, it does a layout() call in an unsafe way. After calling layout(), existing render object pointers may be invalid, so if the function needs to do layout it should take a different argument. I think it probably should take a Document* or perhaps a Node* or Element*. At some point someone should fix that.

Second, it seems to promise more generality than it delivers. It takes an arbitrary RenderObject, but if you ignore the SVG quirks, it won&apos;t dump anything for a node that does not have a RenderLayer and thus for any renderer that is not a RenderBox. So I don&apos;t think it&apos;s helpful to copy its design.

Your new function has an unusual argument. It takes a RenderObject* and then dumps counter values starting there, moving on forward in document order to the end of the document. I would suggest instead that you do one of these things:

    1) Take my comment above to heart and instead add a function that gives the counter value for just one node. The function would take either a Node* or an Element* and get the corresponding render object, then the counter return the text that would be rendered.

    2) Change the function to take a Document* instead of a RenderObject* if its purpose remains to dump the entire document. Also add a call to layout(). It&apos;s not right to expose something to JavaScript that won&apos;t work if layout hasn&apos;t already happened. We can talk about this more if you decide to stick with this design against my recommendation.

For the tests you are converting, you can easily write something in JavaScript that will iterate the document and dump all the counter values. Those tests should be the exception rather than the rule. Future tests can use a more modern design.

My other concern about this patch is that it only seems to take care of the Mac platform. When adding something like this, please do as many platforms as you can. The Windows platform used by my team here at Apple is almost always kept up to date when making a change like this, and I&apos;d like to see at least that.

&gt; +            String str(toRenderText(o)-&gt;originalText().releaseRef());

There are two major things wrong here:

    A) It&apos;s not good to test by calling originalText here. We want to test the entire counter machinery, so you should be using the actual text. You should get that with the text() function rather than the originalText() function. If you had problems with that before, we should figure out why. One possibility is that this was caused by the lack of a layout() call as mentioned above. I&apos;m not even sure why the originalText() function is public. In the future we might fix this and make it private as it should be.

    B) This has an unnecessary storage leak in it. You should almost never call releaseRef() and it is definitely incorrect here. Instead you would call get() here.

Please consider making a more useful general purpose tool here. Since there&apos;s quite a bit of work to hook this up to DumpRenderTree it would be best to get the most out of the effort. But at a minimum, we should not add something like this in a way that&apos;s unnecessarily fragile because it depends on layout state (see comment [2] above).

review- because of the comments above</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156832</commentid>
    <comment_count>9</comment_count>
      <attachid>41646</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-22 00:57:22 -0700</bug_when>
    <thetext>Created attachment 41646
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156837</commentid>
    <comment_count>10</comment_count>
      <attachid>41648</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-22 02:07:40 -0700</bug_when>
    <thetext>Created attachment 41648
Patch v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156838</commentid>
    <comment_count>11</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-22 02:08:54 -0700</bug_when>
    <thetext>Thanks for the detailed comments. The advises were really helpful!

&gt; For our more modern tests, we do more than just avoid dumping the render tree.
&gt; We also like do to targeted tests and use the script-tests system so we can
&gt; test lots of things in a clear way in a single test. For those purposes, the
&gt; most useful kind of feature would be one where we could get the counter text
&gt; for a particular element in the document. We would want a JavaScript function
&gt; to return that text given the element, not one that dumps all the counters in
&gt; an entire document. That kind of feature would enable us to make thorough, easy
&gt; to understand regression tests using the script-tests machinery and would be a
&gt; lot more valuable than a dump feature.

I see. In my new patch, I&apos;ve added layoutTestContoller.getCounterValueById, instead of dumpCounterNode.

&gt;     1) Take my comment above to heart and instead add a function that gives the
&gt; counter value for just one node. The function would take either a Node* or an
&gt; Element* and get the corresponding render object, then the counter return the
&gt; text that would be rendered.

I like this approach. I have a few questions:

1. As inserted/removed DOM elements aren&apos;t layouted
   (element-&gt;renderer() is NULL) when the element is added, I needed
   to wait the layout using setTimeout before I obtain counter values
   by getCounterValueById. Is this unavoidable? I think calling
   layout() here is not good as same reason as externalRepresentation
   you mentioned. If there are no way to avoid this limitation,
   WebCore::getCounterValue should return a warning message like &quot;this
   element is not layouted yet!&quot; to relax potential confusion?

2. I&apos;m not sure if the file I added functions are correct. I&apos;ve added:

   - WebFrame(WebKitDebug).getCounterValue in WebKit/mac/Misc/WebCoreStatistics
   - WebCore::getCounterValue in WebCore/rendering/RenderTreeAsText

   If there are better places for them, please let me know and I&apos;ll
   move them.

&gt; My other concern about this patch is that it only seems to take care of the Mac
&gt; platform. When adding something like this, please do as many platforms as you
&gt; can. The Windows platform used by my team here at Apple is almost always kept
&gt; up to date when making a change like this, and I&apos;d like to see at least that.

OK, I&apos;ll try working on other platforms as well. But, I don&apos;t want to update my patch for many platforms several times. So, I&apos;d like to work with the following scheme:

1. Fix the design of the API using the patch for Mac.
2. Once Mac patch becomes good, I&apos;ll create patches for other platforms.
3. All of them get review+, then I check them in at once.

Is this OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157605</commentid>
    <comment_count>12</comment_count>
      <attachid>41648</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-25 12:47:19 -0700</bug_when>
    <thetext>Comment on attachment 41648
Patch v5

Thanks very much for keeping at this. I&apos;ve been out sick for a few days which is why this round of review was delayed.

&gt; +  &lt;script src=&quot;../../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

The js-test-pre.js file is part of the script-tests machinery. Normally we use either the entire script-tests machinery or none of it. It&apos;s a little strange to have a hybrid test like this, but I think it&apos;s OK for now.

&gt; +  function checkCounterValues() {

WebKit code style puts the brace on the following line, not the same line as the function name.

&gt; +      debug(&apos;&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;&apos;);

We normally do not use the debug function with strings that include markup. And we definitely don&apos;t do &quot;&lt;br /&gt;&quot; -- there&apos;s no need for that slash in HTML and this is not XHTML even if we pretend it is. This is probably OK as-is, but it would be cleaner to just do the usual:

    debug(&apos;&apos;);
    debug(&apos;TEST COMPLETE&apos;);

&gt; +      // Eliminate confusing messages (counter values won&apos;t be dumped by dumpAsText).
&gt; +      document.getElementById(&quot;view&quot;).innerHTML = &apos;&apos;;

This can be done more cleanly by removing the view element from its parent with core DOM methods instead of using innerHTML.

    var viewElement = document.getElementById(&quot;view&quot;);
    viewElement.parentNode.removeChild(viewElement);

But that&apos;s only slightly better.

&gt; +          // Wait for the layout using setTimeout.
&gt; +          setTimeout(&apos;checkCounterValues()&apos;, 0);

This is the wrong way to do it. The new function you added to RenderTreeAsText.cpp should request the layout since it is getting values that depend on layout, and it should not be left up to the JavaScript code in the test to do it. And using a timeout is not a reliable way to cause layout to happen.

The code to cause the layout is simple. Just add this to the function:

    element-&gt;document()-&gt;updateLayout();

As a side note, not your responsibility but worth doing eventually, the externalRepresentation function needs to be changed to trigger layout this way instead of the code it currently has using frameView(); and it should also take a Frame* instead of a RenderObject* since it already assumes it&apos;s dumping an entire frame, and causing layout can invalidate a RenderObject* so it&apos;s not a safe interface.

&gt; +static void getCounterValueInAnonymous(TextStream&amp; ts, RenderObject* o)

We normally use argument names that are words, not just letters. This file uses &quot;ts&quot; so much that it seems OK to follow that, although I would have used &quot;stream&quot;, but &quot;o&quot; instead should be &quot;renderer&quot; or maybe &quot;parent&quot; if you change this function to have &quot;children&quot; in its name (see below).

Normally we would not use &quot;get&quot; in the name of a function that adds something to a stream. The verb &quot;get&quot; is used normally for a function that has an out argument with a return value. The verb for a function that adds something to a text stream should be &quot;write&quot; (see examples throughout this source file).

The name here says &quot;in anonymous&quot;, but &quot;anonymous&quot; is an adjective without a noun and so a bit confusing and oblique. I would call this function &quot;writeCounterValuesFromChildren&quot;, since it appends the values of any children that are counters. There&apos;s nothing in it specific to an anonymous renderer so I don&apos;t think the function needs &quot;anonymous&quot; in its name.

&gt; +String getCounterValue(Element* element)

A function like this should not have &quot;get&quot; in its name inside WebKit. We name getter functions with return values with noun phrases, and not the verb &quot;get&quot;.

&gt; +    // The counter renderer should be children of anonymous children
&gt; +    // (i.e., :before or :after pseudo-elements).

I think you mean &quot;renderers&quot; here not &quot;renderer&quot;. Or you could leave it as &quot;renderer&quot; and say &quot;one of the children of&quot;. I think that if we actually used this to test a case with more than one counter per node we might want to change the syntax to use some kind of separator, maybe &quot; &quot; or &quot;,&quot; or &quot;, &quot;, but for now it&apos;s OK since the test never uses it for any case like that.

&gt; +    if (RenderObject* o = element-&gt;renderer()) {

I would use &quot;renderer&quot; here rather than &quot;o&quot; for the local variable name.

&gt; +- (NSString *)getCounterValue:(DOMElement*)element;

To follow Objective-C method naming, this should be named counterValueForElement: rather than getCounterValue:.

&gt; +static JSValueRef getCounterValueByIdCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)

It seems OK to do it this way. I suppose you were copying what the existing function elementDoesAutoCompleteForElementWithId does.

It would be more powerful to have a command that took an arbitrary element pointer but I suppose it&apos;s slightly harder to use the DOM in layout test controller code since there&apos;s no cross-platform way to handle DOM operations. You could, though, just pass a JSValueRef or JSObjectRef through to the LayoutTestController and let it handle converting that into an DOM object. But that&apos;s a lot of pioneering work to ask for and you&apos;ve already done much -- I think this is fine for now.

&gt; +    JSRetainPtr&lt;JSStringRef&gt; elementId(Adopt, JSValueToStringCopy(context, arguments[0], exception));
&gt; +    ASSERT(!*exception);

Why do we have an assert here? There&apos;s no guarantee that converting the value to a string won&apos;t raise an exception, and there need not be a guarantee, so there should not be an assert. Instead we should just be sure to return from the function if an exception occurs.

Did you copy this from existing layout test controller functions? If so, they are doing things wrong. It&apos;s not right to assert something you can&apos;t guarantee.

&gt; +    JSRetainPtr&lt;JSStringRef&gt; counterValue(Adopt, controller-&gt;getCounterValueById(elementId.get()));

A function with this name should return a JSRetainPtr&lt;JSStringRef&gt;, not a raw JSStringRef. If you want to return a raw JSStringRef, then the function needs &quot;copy&quot; or &quot;create&quot; in its name. Other functions in LayoutTestController are not all doing this right. The best thing to do is to:

    1) Name the function counterValueForElementById.
    2) Have it return a JSRetainPtr&lt;JSStringRef&gt;.

The one thing here mandatory to fix is the layout thing. The rest of the comments are good ideas, but optional. review- so you can fix at least the mandatory part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157606</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-25 13:02:49 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; 1. As inserted/removed DOM elements aren&apos;t layouted
&gt;    (element-&gt;renderer() is NULL) when the element is added, I needed
&gt;    to wait the layout using setTimeout before I obtain counter values
&gt;    by getCounterValueById. Is this unavoidable? I think calling
&gt;    layout() here is not good as same reason as externalRepresentation
&gt;    you mentioned. If there are no way to avoid this limitation,
&gt;    WebCore::getCounterValue should return a warning message like &quot;this
&gt;    element is not layouted yet!&quot; to relax potential confusion?

A call to updateLayout() will solve this problem as I mentioned in my previous.

The problem with externalRepresentation is that it does this while holding a render object pointer in a local variable, which is illegal. The problem does not affect your new function since it takes an Element*, although to be 100% safe the Element* should go into a RefPtr&lt;Element&gt; local variable since otherwise updateLayout() could have a side effect of deleting the element. So you should put the element argument into a local variable of type RefPtr&lt;Element&gt;.

By the way, the issue isn&apos;t only the fact that the renderer() returns 0. Even if it returned a non-0 value, it might be a deallocated object.

&gt;    - WebFrame(WebKitDebug).getCounterValue in WebKit/mac/Misc/WebCoreStatistics

Seems not such a great place for this, but fine to be consistent with the existing method already there.

&gt;    - WebCore::getCounterValue in WebCore/rendering/RenderTreeAsText

Seems a fine place for this.

&gt; Is this OK?

Sure, fine to do this one platform at a time, but it&apos;s important that you land expected results for each of the other platforms that match the incorrect results they will get until they implement this DumpRenderTree feature. That way the tree stays green for all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157989</commentid>
    <comment_count>14</comment_count>
      <attachid>41910</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-26 16:04:41 -0700</bug_when>
    <thetext>Created attachment 41910
Patch v6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157991</commentid>
    <comment_count>15</comment_count>
      <attachid>41910</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-26 16:06:06 -0700</bug_when>
    <thetext>Comment on attachment 41910
Patch v6

Oops, I forgot to update the ChangeLogs... Will upload again soon later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157993</commentid>
    <comment_count>16</comment_count>
      <attachid>41912</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-26 16:09:33 -0700</bug_when>
    <thetext>Created attachment 41912
Patch v7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157998</commentid>
    <comment_count>17</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-26 16:12:30 -0700</bug_when>
    <thetext>I think I fixed the names of variables and functions as you suggested. I&apos;ll reply for other topics.

&gt; WebKit code style puts the brace on the following line, not the same line as
&gt; the function name.

Ah, I forgot about this rule here. Fixed.

&gt; We normally do not use the debug function with strings that include markup. And
&gt; we definitely don&apos;t do &quot;&lt;br /&gt;&quot; -- there&apos;s no need for that slash in HTML and
&gt; this is not XHTML even if we pretend it is. This is probably OK as-is, but it
&gt; would be cleaner to just do the usual:
&gt; 
&gt;     debug(&apos;&apos;);
&gt;     debug(&apos;TEST COMPLETE&apos;);

I see. I fixed this with two debug() as you suggested.

&gt; This can be done more cleanly by removing the view element from its parent with
&gt; core DOM methods instead of using innerHTML.
&gt; 
&gt;     var viewElement = document.getElementById(&quot;view&quot;);
&gt;     viewElement.parentNode.removeChild(viewElement);
&gt; 
&gt; But that&apos;s only slightly better.

Fixed.

&gt; This is the wrong way to do it. The new function you added to
&gt; RenderTreeAsText.cpp should request the layout since it is getting values that
&gt; depend on layout, and it should not be left up to the JavaScript code in the
&gt; test to do it. And using a timeout is not a reliable way to cause layout to
&gt; happen.
&gt; 
&gt; The code to cause the layout is simple. Just add this to the function:
&gt; 
&gt;     element-&gt;document()-&gt;updateLayout();
&gt; 
&gt; As a side note, not your responsibility but worth doing eventually, the
&gt; externalRepresentation function needs to be changed to trigger layout this way
&gt; instead of the code it currently has using frameView(); and it should also take
&gt; a Frame* instead of a RenderObject* since it already assumes it&apos;s dumping an
&gt; entire frame, and causing layout can invalidate a RenderObject* so it&apos;s not a
&gt; safe interface.

Ah, now I understand what you meant on externalRepresentation. Sorry I didn&apos;t understand in the previous round... I&apos;ll try fixing externalRepresentation, too. Now this function calls updateLayout and have a RefPtr&lt;Element*&gt; to make sure that the element is not freed.

&gt; I think you mean &quot;renderers&quot; here not &quot;renderer&quot;. Or you could leave it as
&gt; &quot;renderer&quot; and say &quot;one of the children of&quot;. I think that if we actually used
&gt; this to test a case with more than one counter per node we might want to change
&gt; the syntax to use some kind of separator, maybe &quot; &quot; or &quot;,&quot; or &quot;, &quot;, but for now
&gt; it&apos;s OK since the test never uses it for any case like that.

I&apos;d like to separate the patch for this change. I&apos;ll do this with some tests soon after this bug is fixed.

&gt; &gt; +static JSValueRef getCounterValueByIdCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
&gt; 
&gt; It seems OK to do it this way. I suppose you were copying what the existing
&gt; function elementDoesAutoCompleteForElementWithId does.
&gt; 
&gt; It would be more powerful to have a command that took an arbitrary element
&gt; pointer but I suppose it&apos;s slightly harder to use the DOM in layout test
&gt; controller code since there&apos;s no cross-platform way to handle DOM operations.
&gt; You could, though, just pass a JSValueRef or JSObjectRef through to the
&gt; LayoutTestController and let it handle converting that into an DOM object. But
&gt; that&apos;s a lot of pioneering work to ask for and you&apos;ve already done much -- I
&gt; think this is fine for now.

Yeah, first I tried to make this function take a DOM element as the argument, but I couldn&apos;t figure out how. Also, I thought specifying an ID as a string is acceptable. Please let me go with the current way.

&gt; &gt; +    JSRetainPtr&lt;JSStringRef&gt; elementId(Adopt, JSValueToStringCopy(context, arguments[0], exception));
&gt; &gt; +    ASSERT(!*exception);
&gt; 
&gt; Why do we have an assert here? There&apos;s no guarantee that converting the value
&gt; to a string won&apos;t raise an exception, and there need not be a guarantee, so
&gt; there should not be an assert. Instead we should just be sure to return from
&gt; the function if an exception occurs.
&gt; 
&gt; Did you copy this from existing layout test controller functions? If so, they
&gt; are doing things wrong. It&apos;s not right to assert something you can&apos;t guarantee.

Yes, I copied this from other code around here. I fixed this so this function raises an exception if toString throws an exception.

I also made this function return undefined when the element specified by the ID is not found.

Now it seems we are getting close to fix the API. I&apos;ll start working for other platforms. Thanks again for your review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158050</commentid>
    <comment_count>18</comment_count>
      <attachid>41912</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-26 17:57:54 -0700</bug_when>
    <thetext>Comment on attachment 41912
Patch v7

Looks good.

&gt;   the purpose of this test. That&apos;s why we use timeout for this test. --&gt;
&gt;   &lt;body onload=&quot;setTimeout(&apos;run()&apos;, 0)&quot;&gt;

Now that we have a countervalueForElementById function you could make the test work without a setTimeout.

The first set of calls to counterValueForElementById will force a layout and compute the counter values. So then you will have a valid test of a subsequent dynamic change. The test will write out the values both before and after the dynamic change.

I don&apos;t see any need to have setTimeout any more.

&gt; +    if (!element)
&gt; +        return NULL;

We use &quot;0&quot;, not &quot;NULL&quot;, for this in WebKit code.

I am not sure that you included changes to make bots stay green on non-Mac platforms, either by skipping the tests or landing expected results that expect the test to fail. If you did, I could say review+ and we could land this first version.

For now, review- because of the two comments above and my uncertainty about what you are doing for the other platforms at this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158093</commentid>
    <comment_count>19</comment_count>
      <attachid>41928</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-26 22:01:38 -0700</bug_when>
    <thetext>Created attachment 41928
Patch v8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158094</commentid>
    <comment_count>20</comment_count>
      <attachid>41929</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-26 22:02:16 -0700</bug_when>
    <thetext>Created attachment 41929
For gtk port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158095</commentid>
    <comment_count>21</comment_count>
      <attachid>41930</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-26 22:03:36 -0700</bug_when>
    <thetext>Created attachment 41930
For qt port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158096</commentid>
    <comment_count>22</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-26 22:11:22 -0700</bug_when>
    <thetext>&gt; Now that we have a countervalueForElementById function you could make the test
&gt; work without a setTimeout.
&gt; 
&gt; The first set of calls to counterValueForElementById will force a layout and
&gt; compute the counter values. So then you will have a valid test of a subsequent
&gt; dynamic change. The test will write out the values both before and after the
&gt; dynamic change.

I see. Fixed.

&gt; We use &quot;0&quot;, not &quot;NULL&quot;, for this in WebKit code.

Fixed.

&gt; I am not sure that you included changes to make bots stay green on non-Mac
&gt; platforms, either by skipping the tests or landing expected results that expect
&gt; the test to fail. If you did, I could say review+ and we could land this first
&gt; version.
&gt; 
&gt; For now, review- because of the two comments above and my uncertainty about
&gt; what you are doing for the other platforms at this time.

I was planning to commit my change after my patches for other platforms become ready. So, I think we don&apos;t need to push expected failures, right? Now I&apos;ve just uploaded the patches for gtk and qt port. I&apos;ll work on windows tomorrow (I&apos;m downloading service pack for Visual Studio now :). Also, I want to add the same method for chromium&apos;s test shell before I commit this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158218</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-27 09:42:41 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; I was planning to commit my change after my patches for other platforms become
&gt; ready.

If so, then you should post a single combined patch for review. We don&apos;t want to keep reviewing pieces. It&apos;s not helpful to have patches up for review that you won&apos;t be landing -- just makes extra work for reviewers.

Please clear the review flags until you have a patch you think is suitable to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158223</commentid>
    <comment_count>24</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-27 09:52:55 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; If so, then you should post a single combined patch for review. We don&apos;t want
&gt; to keep reviewing pieces. It&apos;s not helpful to have patches up for review that
&gt; you won&apos;t be landing -- just makes extra work for reviewers.
&gt; 
&gt; Please clear the review flags until you have a patch you think is suitable to
&gt; land.

I see. I&apos;ll combine my patches into one patch and upload again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158413</commentid>
    <comment_count>25</comment_count>
      <attachid>41995</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-27 16:38:27 -0700</bug_when>
    <thetext>Created attachment 41995
Patch v9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158414</commentid>
    <comment_count>26</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-27 16:43:22 -0700</bug_when>
    <thetext>OK, I think the new patch supports windows, gtk, and qt in addition to mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158424</commentid>
    <comment_count>27</comment_count>
      <attachid>41995</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-27 17:16:11 -0700</bug_when>
    <thetext>Comment on attachment 41995
Patch v9

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158676</commentid>
    <comment_count>28</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-28 13:14:53 -0700</bug_when>
    <thetext>Committed r50233: &lt;http://trac.webkit.org/changeset/50233&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158682</commentid>
    <comment_count>29</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-10-28 13:24:22 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; OK, I think the new patch supports windows, gtk, and qt in addition to mac.

Thanks for keeping the Qt port in mind when doing these type of changes, we
really appreciate it! :)

One note though: the Qt API should not be extended without a Qt person
reviewing the API. This means all classes in WebKit/qt/Api

In this case the API was added to support the DRT, in which case we use
helper-functions instead of API int he class. You can see how we import these
functions at the top of LayoutTestControllerQt.cpp

Revision 50166 is an example of moving functions from class API to helper
functions, after a change that had the same problem.

Again, we really appreciate the consideration of adding DRT callbacks for the
Qt port too when making these changes, but in the future please use the q_drt
format for these callbacks.

Thanks!! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158734</commentid>
    <comment_count>30</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-28 15:20:43 -0700</bug_when>
    <thetext>&gt; In this case the API was added to support the DRT, in which case we use
&gt; helper-functions instead of API int he class. You can see how we import these
&gt; functions at the top of LayoutTestControllerQt.cpp

I fixed this in Bug 30882. Thanks for letting me know the proper way to add an API for DTR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158736</commentid>
    <comment_count>31</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-28 15:21:56 -0700</bug_when>
    <thetext>Also, thanks Darin for your quick and insightful reviews on this bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159215</commentid>
    <comment_count>32</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-10-29 21:09:10 -0700</bug_when>
    <thetext>This change broke using ToT WebKit with the released version of Safari on Windows.  See bug 30938 for details.  When adding new methods to interfaces they need to be added to the *end* of the interface to avoid changing the order of methods in the vtable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159218</commentid>
    <comment_count>33</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-10-29 21:21:53 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; This change broke using ToT WebKit with the released version of Safari on
&gt; Windows.  See bug 30938 for details.  When adding new methods to interfaces
&gt; they need to be added to the *end* of the interface to avoid changing the order
&gt; of methods in the vtable.

Ah, I see... Sorry, and thanks for fixing this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41488</attachid>
            <date>2009-10-20 00:57:24 -0700</date>
            <delta_ts>2009-10-21 00:43:40 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-30555-20091020165722.patch</filename>
            <type>text/plain</type>
            <size>27627</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5NmM0Y2VlLi4wZDU4NTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDktMTAt
MjAgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGRoY3AtMTcyLTMwLTg0LTE5MS50b2suY29y
cC5nb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBsYXlvdXRUZXN0Q29udG9sbGVyLmR1bXBDb3VudGVyTm9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAgICAq
IGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1v
Lmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMt
by1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0
LWluY3JlbWVudC0wMS1jLW8uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3Mv
Y291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5jaGVja3N1bTogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVt
ZW50LTAwLWMtby1leHBlY3RlZC5wbmc6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1p
bmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVj
dGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRl
cnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisKIDIw
MDktMTAtMTkgIFJvYmluIFFpdSAgPHJvYmluLnFpdUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1v
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzUyM2Qw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MyBAQAorVGhlIGZvbGxv
d2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOgorCituZXctCisxLTItbmV3LTMtNC0K
KworPT09PT09PT09PT09PT0gQ291bnRlciBOb2RlcyA9PT09PT09PT09PT09PQorcmVzZXQ6IDAg
MAorCWluY3JlbWVudDogMSAxCisqCWluY3JlbWVudDogMCAxCisJaW5jcmVtZW50OiAxIDIKKwlp
bmNyZW1lbnQ6IDAgMgorCWluY3JlbWVudDogMSAzCisJaW5jcmVtZW50OiAwIDMKKwlpbmNyZW1l
bnQ6IDEgNAorCWluY3JlbWVudDogMCA0CityZXNldDogMCAwCisJaW5jcmVtZW50OiAxIDEKKwlp
bmNyZW1lbnQ6IDAgMQorCWluY3JlbWVudDogMSAyCisqCWluY3JlbWVudDogMCAyCisJaW5jcmVt
ZW50OiAxIDMKKwlpbmNyZW1lbnQ6IDAgMworCWluY3JlbWVudDogMSA0CisJaW5jcmVtZW50OiAw
IDQKK3Jlc2V0OiAwIDAKKwlpbmNyZW1lbnQ6IDEgMQorCWluY3JlbWVudDogMCAxCisJaW5jcmVt
ZW50OiAxIDIKKwlpbmNyZW1lbnQ6IDAgMgorCWluY3JlbWVudDogMSAzCisqCWluY3JlbWVudDog
MCAzCisJaW5jcmVtZW50OiAxIDQKKwlpbmNyZW1lbnQ6IDAgNAorcmVzZXQ6IDAgMAorCWluY3Jl
bWVudDogMSAxCisJaW5jcmVtZW50OiAwIDEKKwlpbmNyZW1lbnQ6IDEgMgorCWluY3JlbWVudDog
MCAyCisJaW5jcmVtZW50OiAxIDMKKwlpbmNyZW1lbnQ6IDAgMworCWluY3JlbWVudDogMSA0Cisq
CWluY3JlbWVudDogMCA0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAwLWMtby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAwLWMtby5odG1sCmluZGV4IGUyY2Q5YTMuLmY0ZWVjNDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQt
MDAtYy1vLmh0bWwKQEAgLTExLDggKzExLDExIEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ291bnRlck5vZGUo
KTsKKyAgfQogCiAgIGZ1bmN0aW9uIHJ1bigpIHsKICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3QiKTsKQEAgLTI0LDkgKzI3LDYgQEAKICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOwogICB9Ci0KLSAgLy8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVjYXVz
ZSB0aGUgY291bnRlcnMgYXJlIENTUyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4ndCBk
dW1wZWQgYnkgdGhlIGZ1bmN0aW9uLiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9zY3Jp
cHQ+CiAgPC9oZWFkPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVy
cy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkY2NhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDI3IEBACitUaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQg
YmUgdGhlIHNhbWU6CisKKzEtMi0zLQorCis9PT09PT09PT09PT09PSBDb3VudGVyIE5vZGVzID09
PT09PT09PT09PT09CityZXNldDogMCAwCisJaW5jcmVtZW50OiAxIDEKKyoJaW5jcmVtZW50OiAw
IDEKKwlpbmNyZW1lbnQ6IDEgMgorCWluY3JlbWVudDogMCAyCisJaW5jcmVtZW50OiAxIDMKKwlp
bmNyZW1lbnQ6IDAgMworcmVzZXQ6IDAgMAorCWluY3JlbWVudDogMSAxCisJaW5jcmVtZW50OiAw
IDEKKwlpbmNyZW1lbnQ6IDEgMgorKglpbmNyZW1lbnQ6IDAgMgorCWluY3JlbWVudDogMSAzCisJ
aW5jcmVtZW50OiAwIDMKK3Jlc2V0OiAwIDAKKwlpbmNyZW1lbnQ6IDEgMQorCWluY3JlbWVudDog
MCAxCisJaW5jcmVtZW50OiAxIDIKKwlpbmNyZW1lbnQ6IDAgMgorCWluY3JlbWVudDogMSAzCisq
CWluY3JlbWVudDogMCAzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAxLWMtby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAxLWMtby5odG1sCmluZGV4IGEwNWQ4ZDkuLjE3NDA4ZGEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQt
MDEtYy1vLmh0bWwKQEAgLTExLDggKzExLDExIEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ291bnRlck5vZGUo
KTsKKyAgfQogCiAgIGZ1bmN0aW9uIHJ1bigpIHsKICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3QiKTsKQEAgLTIxLDkgKzI0LDYgQEAKICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOwogICB9Ci0KLSAgLy8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVjYXVz
ZSB0aGUgY291bnRlcnMgYXJlIENTUyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4ndCBk
dW1wZWQgYnkgdGhlIGZ1bmN0aW9uLiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9zY3Jp
cHQ+CiAgPC9oZWFkPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1l
bnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiMGI5MjJhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZWM3ZWU0YTg5NjUxOWY5MTQ4YTUyYmQ0YjA1MTM3MjkK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDMxOWViZGUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQucG5n
IGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVt
ZW50LTAwLWMtby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFk
ODFhMDguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMzggKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg5NAotICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4NzAKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCww
KSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAy
Nzl4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzk6ICJUaGUgZm9sbG93
aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6IgotICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDAsMzQpIHNpemUgNzg0eDE4Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAo
MCwwKSBzaXplIDEzeDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgwLDApIHNpemUg
OHgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiMSIKLSAgICAg
ICAgICAgIFJlbmRlclRleHQgYXQgKDgsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg4LDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0
ICgwLDApIHNpemUgNDV4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQg
KDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMTMsMCkgc2l6
ZSA4eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMywwKSB3aWR0aCA4OiAiMiIKLSAg
ICAgICAgICAgIFJlbmRlclRleHQgYXQgKDIxLDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMjEsMCkgd2lkdGggNTogIi0iCi0gICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgyNiwwKSBzaXplIDMyeDE4Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjYsMCkg
d2lkdGggMzI6ICJuZXctIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNp
emUgMTN4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6
ZSAxM3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoNTgsMCkgc2l6ZSA4eDE4Ci0g
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg1OCwwKSB3aWR0aCA4OiAiMyIKLSAgICAgICAgICAg
IFJlbmRlclRleHQgYXQgKDY2LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNjYsMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSAxM3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCww
KSBzaXplIDEzeDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICg3MSwwKSBzaXplIDh4
MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcxLDApIHdpZHRoIDg6ICI0IgotICAgICAg
ICAgICAgUmVuZGVyVGV4dCBhdCAoNzksMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICg3OSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDUyKSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA4NHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg0OiAiMS0yLW5ldy0z
LTQtIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTcwZTJlMS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLTQ4NzQwN2I2ODE3Y2NkYjE2N2M3OGU3NTAzNWY2MzZhClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MS1jLW8tZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjBmNGI2
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9u
dWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3Nz
L2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8t
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDYyYTc5Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMwICsw
LDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDk0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
MTYpIHNpemUgNzg0eDcwCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjc5eDE4Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjc5OiAiVGhlIGZvbGxvd2luZyB0d28gbGlu
ZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0
KSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
MTN4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAx
M3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDh4MTgKLSAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODogIjEiCi0gICAgICAgICAgICBSZW5k
ZXJUZXh0IGF0ICg4LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOCww
KSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDEzeDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUg
MTN4MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDEzLDApIHNpemUgOHgxOAotICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMsMCkgd2lkdGggODogIjIiCi0gICAgICAgICAgICBS
ZW5kZXJUZXh0IGF0ICgyMSwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDIxLDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMTN4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkg
c2l6ZSAxM3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMjYsMCkgc2l6ZSA4eDE4
Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNiwwKSB3aWR0aCA4OiAiMyIKLSAgICAgICAg
ICAgIFJlbmRlclRleHQgYXQgKDM0LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMzQsMCkgd2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1
Mikgc2l6ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
Mzl4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTogIjEtMi0zLSIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0
LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
ZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhZmFjNmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMt
by1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1sYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxh
eWVyIGF0ICgwLDApIHNpemUgODAweDEwMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkg
c2l6ZSA4MDB4MTAzCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDc5
Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzEweDIxCi0gICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggMzEwOiAiVGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRo
ZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM3KSBzaXplIDc4NHgyMQot
ICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAg
ICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAg
ICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggOTogIjEiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg5LDAp
IHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOSwwKSB3aWR0aCA1OiAiLSIK
LSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ5eDIxCi0gICAgICAg
ICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAg
ICAgIFJlbmRlckNvdW50ZXIgYXQgKDE0LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTQsMCkgd2lkdGggOTogIjIiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgy
MywwKSBzaXplIDV4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIzLDApIHdpZHRoIDU6
ICItIgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjgsMCkgc2l6ZSAzNXgyMQot
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4LDApIHdpZHRoIDM1OiAibmV3LSIKLSAgICAgICAg
UmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVy
SW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRl
ckNvdW50ZXIgYXQgKDYzLDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
NjMsMCkgd2lkdGggOTogIjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg3MiwwKSBzaXpl
IDV4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcyLDApIHdpZHRoIDU6ICItIgotICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBS
ZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAg
UmVuZGVyQ291bnRlciBhdCAoNzcsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg3NywwKSB3aWR0aCA5OiAiNCIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDg2LDAp
IHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODYsMCkgd2lkdGggNTogIi0i
Ci0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1OCkgc2l6ZSA3ODR4MjEKLSAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOTF4MjEKLSAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA5MTogIjEtMi1uZXctMy00LSIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDcwOGZiMTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
ZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUg
ODAweDEwMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAzCi0gICAg
UmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDc5Ci0gICAgICBSZW5kZXJCbG9j
ayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzEweDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzEw
OiAiVGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDM3KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJJbmxp
bmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdl
bmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBh
dCAoMCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
OTogIjEiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg5LDApIHNpemUgNXgyMQotICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoOSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChn
ZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIg
YXQgKDE0LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsMCkgd2lk
dGggOTogIjIiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyMywwKSBzaXplIDV4MjEKLSAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIzLDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5k
ZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxp
bmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291
bnRlciBhdCAoMjgsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyOCww
KSB3aWR0aCA5OiAiMyIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDM3LDApIHNpemUgNXgy
MQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzcsMCkgd2lkdGggNTogIi0iCi0gICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1OCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDJ4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0MjogIjEtMi0zLSIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzVmNWY1Mi4uNWY1NDcwYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAw
OS0xMC0yMCAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAZGhjcC0xNzItMzAtODQtMTkxLnRv
ay5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGxheW91dFRlc3RDb250b2xsZXIuZHVtcENvdW50ZXJOb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisgICAg
ICAgICogV2ViQ29yZS5iYXNlLmV4cDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ291bnRlck5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvd1RyZWVBbmRNYXJrKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvdW50ZXJOb2RlOjpkdW1wKToKKyAgICAgICAgKHNob3dUcmVlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvQ291bnRlck5vZGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291bnRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb3VudGVyOjpkdW1wQ291bnRlck5vZGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZHVtcENvdW50ZXJO
b2RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oOgorCiAyMDA5LTEw
LTE5ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4
cCBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAppbmRleCAyNWViYzY2Li43YzEwODQ0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmJh
c2UuZXhwCkBAIC0zNTMsNiArMzUzLDcgQEAgX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3Ix
NGNlbnRlclRydW5jYXRlRVJLTlNfNlN0cmluZ0VmUktOU180Rm9udEViCiBfX1pON1dlYkNvcmUx
NVN0cmluZ1RydW5jYXRvcjV3aWR0aEVSS05TXzZTdHJpbmdFUktOU180Rm9udEViCiBfX1pON1dl
YkNvcmUxNVZpc2libGVQb3NpdGlvbkMxRVBOU180Tm9kZUVpTlNfOUVBZmZpbml0eUUKIF9fWk43
V2ViQ29yZTE1VmlzaWJsZVBvc2l0aW9uQzFFUktOU184UG9zaXRpb25FTlNfOUVBZmZpbml0eUUK
K19fWk43V2ViQ29yZTE1ZHVtcENvdW50ZXJOb2RlRVBOU18xMlJlbmRlck9iamVjdEUKIF9fWk43
V2ViQ29yZTE2Rm9udFBsYXRmb3JtRGF0YUMxRVA2TlNGb250YmIKIF9fWk43V2ViQ29yZTE2Rm9u
dFBsYXRmb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZTE2TGVnYWN5V2ViQXJjaGl2ZTE5Y3JlYXRl
RnJvbVNlbGVjdGlvbkVQTlNfNUZyYW1lRQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
Q291bnRlck5vZGUuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvQ291bnRlck5vZGUuY3BwCmluZGV4
IGY1NDZhYmIuLjM4OTk3MjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJO
b2RlLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9Db3VudGVyTm9kZS5jcHAKQEAgLTE0Myw4
ICsxNDMsNiBAQCB2b2lkIENvdW50ZXJOb2RlOjpyZW1vdmVDaGlsZChDb3VudGVyTm9kZSogb2xk
Q2hpbGQpCiAgICAgICAgIG5leHQtPnJlY291bnQoKTsKIH0KIAotI2lmbmRlZiBOREVCVUcKLQog
c3RhdGljIGNvbnN0IENvdW50ZXJOb2RlKiBuZXh0SW5QcmVPcmRlckFmdGVyQ2hpbGRyZW4oY29u
c3QgQ291bnRlck5vZGUqIG5vZGUpCiB7CiAgICAgQ291bnRlck5vZGUqIG5leHQgPSBub2RlLT5u
ZXh0U2libGluZygpOwpAQCAtMTY1LDcgKzE2Myw3IEBAIHN0YXRpYyBjb25zdCBDb3VudGVyTm9k
ZSogbmV4dEluUHJlT3JkZXIoY29uc3QgQ291bnRlck5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIG5l
eHRJblByZU9yZGVyQWZ0ZXJDaGlsZHJlbihub2RlKTsKIH0KIAotc3RhdGljIHZvaWQgc2hvd1Ry
ZWVBbmRNYXJrKGNvbnN0IENvdW50ZXJOb2RlKiBub2RlKQorc3RhdGljIHZvaWQgc2hvd1RyZWVB
bmRNYXJrKGNvbnN0IENvdW50ZXJOb2RlKiBub2RlLCBGSUxFKiBmZCkKIHsKICAgICBjb25zdCBD
b3VudGVyTm9kZSogcm9vdCA9IG5vZGU7CiAgICAgd2hpbGUgKHJvb3QtPnBhcmVudCgpKQpAQCAt
MTczLDE3ICsxNzEsMjAgQEAgc3RhdGljIHZvaWQgc2hvd1RyZWVBbmRNYXJrKGNvbnN0IENvdW50
ZXJOb2RlKiBub2RlKQogCiAgICAgZm9yIChjb25zdCBDb3VudGVyTm9kZSogYyA9IHJvb3Q7IGM7
IGMgPSBuZXh0SW5QcmVPcmRlcihjKSkgewogICAgICAgICBpZiAoYyA9PSBub2RlKQotICAgICAg
ICAgICAgZnByaW50ZihzdGRlcnIsICIqIik7CisgICAgICAgICAgICBmcHJpbnRmKGZkLCAiKiIp
OwogICAgICAgICBmb3IgKGNvbnN0IENvdW50ZXJOb2RlKiBkID0gYzsgZCAmJiBkICE9IHJvb3Q7
IGQgPSBkLT5wYXJlbnQoKSkKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXHQiKTsKKyAg
ICAgICAgICAgIGZwcmludGYoZmQsICJcdCIpOwogICAgICAgICBpZiAoYy0+aXNSZXNldCgpKQot
ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJyZXNldDogJWQgJWRcbiIsIGMtPnZhbHVlKCks
IGMtPmNvdW50SW5QYXJlbnQoKSk7CisgICAgICAgICAgICBmcHJpbnRmKGZkLCAicmVzZXQ6ICVk
ICVkXG4iLCBjLT52YWx1ZSgpLCBjLT5jb3VudEluUGFyZW50KCkpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImluY3JlbWVudDogJWQgJWRcbiIsIGMtPnZhbHVl
KCksIGMtPmNvdW50SW5QYXJlbnQoKSk7CisgICAgICAgICAgICBmcHJpbnRmKGZkLCAiaW5jcmVt
ZW50OiAlZCAlZFxuIiwgYy0+dmFsdWUoKSwgYy0+Y291bnRJblBhcmVudCgpKTsKICAgICB9CiB9
CiAKLSNlbmRpZgordm9pZCBDb3VudGVyTm9kZTo6ZHVtcCgpIGNvbnN0Cit7CisgICAgc2hvd1Ry
ZWVBbmRNYXJrKHRoaXMsIHN0ZG91dCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApA
QCAtMTkyLDcgKzE5Myw3IEBAIHN0YXRpYyB2b2lkIHNob3dUcmVlQW5kTWFyayhjb25zdCBDb3Vu
dGVyTm9kZSogbm9kZSkKIHZvaWQgc2hvd1RyZWUoY29uc3QgV2ViQ29yZTo6Q291bnRlck5vZGUq
IGNvdW50ZXIpCiB7CiAgICAgaWYgKGNvdW50ZXIpCi0gICAgICAgIHNob3dUcmVlQW5kTWFyayhj
b3VudGVyKTsKKyAgICAgICAgc2hvd1RyZWVBbmRNYXJrKGNvdW50ZXIsIHN0ZGVycik7CiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvQ291bnRlck5vZGUuaCBiL1dl
YkNvcmUvcmVuZGVyaW5nL0NvdW50ZXJOb2RlLmgKaW5kZXggYjQzMmUxZC4uN2MxNDQ1NiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvQ291bnRlck5vZGUuaAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9Db3VudGVyTm9kZS5oCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGluc2VydEFmdGVyKENvdW50ZXJOb2RlKiBuZXdDaGlsZCwgQ291bnRlck5vZGUqIGJlZm9yZUNo
aWxkKTsKICAgICB2b2lkIHJlbW92ZUNoaWxkKENvdW50ZXJOb2RlKik7CiAKKyAgICB2b2lkIGR1
bXAoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBpbnQgY29tcHV0ZUNvdW50SW5QYXJlbnQoKSBj
b25zdDsKICAgICB2b2lkIHJlY291bnQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckNvdW50ZXIuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAK
aW5kZXggMTdjNmRhZC4uN2YzNTcwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQ291bnRlci5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAK
QEAgLTMxNSw0ICszMTUsMTAgQEAgdm9pZCBSZW5kZXJDb3VudGVyOjpkZXN0cm95Q291bnRlck5v
ZGVzKFJlbmRlck9iamVjdCogb2JqZWN0KQogICAgIGRlbGV0ZSBtYXA7CiB9CiAKK3ZvaWQgUmVu
ZGVyQ291bnRlcjo6ZHVtcENvdW50ZXJOb2RlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9jb3Vu
dGVyTm9kZSk7CisgICAgbV9jb3VudGVyTm9kZS0+ZHVtcCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKaW5kZXggOTYxOTY4ZS4uMTg5YTBm
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaApAQCAtMzcsNiArMzcsOCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95Q291bnRlck5vZGVzKFJlbmRlck9iamVjdCopOwog
CisgICAgdm9pZCBkdW1wQ291bnRlck5vZGUoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXND
b3VudGVyKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4
IDVjNmU3MzguLjczNjQ2MTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRy
ZWVBc1RleHQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3Bw
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5s
aW5lVGV4dEJveC5oIgogI2luY2x1ZGUgIlJlbmRlckJSLmgiCisjaW5jbHVkZSAiUmVuZGVyQ291
bnRlci5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RN
YXJrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKQEAgLTU1Myw0ICs1NTQsMTIg
QEAgU3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVuZGVyT2JqZWN0KiBvKQogICAgIHJl
dHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgZHVtcENvdW50ZXJOb2RlKFJlbmRlck9iamVj
dCogbykKK3sKKyAgICBmb3IgKDsgbzsgbyA9IG8tPm5leHRJblByZU9yZGVyKCkpIHsKKyAgICAg
ICAgaWYgKG8tPmlzQ291bnRlcigpKQorICAgICAgICAgICAgdG9SZW5kZXJDb3VudGVyKG8pLT5k
dW1wQ291bnRlck5vZGUoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaCBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaAppbmRleCBkYWNhMjUzLi43YjU1OGYzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmgKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCkBAIC0yOCwxNSArMjgsMTcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgUmVuZGVyT2JqZWN0OwotICAgIGNsYXNzIFN0
cmluZzsKLSAgICBjbGFzcyBUZXh0U3RyZWFtOworY2xhc3MgUmVuZGVyT2JqZWN0OworY2xhc3Mg
U3RyaW5nOworY2xhc3MgVGV4dFN0cmVhbTsKIAotICAgIFN0cmluZyBleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKFJlbmRlck9iamVjdCopOwotICAgIHZvaWQgd3JpdGUoVGV4dFN0cmVhbSYsIGNvbnN0
IFJlbmRlck9iamVjdCYsIGludCBpbmRlbnQgPSAwKTsKK1N0cmluZyBleHRlcm5hbFJlcHJlc2Vu
dGF0aW9uKFJlbmRlck9iamVjdCopOwordm9pZCB3cml0ZShUZXh0U3RyZWFtJiwgY29uc3QgUmVu
ZGVyT2JqZWN0JiwgaW50IGluZGVudCA9IDApOwogCi0gICAgLy8gSGVscGVyIGZ1bmN0aW9uIHNo
YXJlZCB3aXRoIFNWR1JlbmRlclRyZWVBc1RleHQKLSAgICBTdHJpbmcgcXVvdGVBbmRFc2NhcGVO
b25QcmludGFibGVzKGNvbnN0IFN0cmluZyYpOworLy8gSGVscGVyIGZ1bmN0aW9uIHNoYXJlZCB3
aXRoIFNWR1JlbmRlclRyZWVBc1RleHQKK1N0cmluZyBxdW90ZUFuZEVzY2FwZU5vblByaW50YWJs
ZXMoY29uc3QgU3RyaW5nJik7CisKK3ZvaWQgZHVtcENvdW50ZXJOb2RlKFJlbmRlck9iamVjdCop
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMGE0Mzk3NS4uZWQ3OTQ2YyAxMDA2
NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMC0yMCAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlA
ZGhjcC0xNzItMzAtODQtMTkxLnRvay5jb3JwLmdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dFRlc3RDb250b2xsZXIu
ZHVtcENvdW50ZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMDU1NQorCisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oOgorICAg
ICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICgtW1dlYkZyYW1lIGR1
bXBDb3VudGVyTm9kZV0pOgorCiAyMDA5LTEwLTE5ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oIGIvV2ViS2l0L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmgKaW5kZXggZDQzNzBiZi4uNjEzZTU3YSAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmgKKysrIGIvV2ViS2l0L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmgKQEAgLTgxLDQgKzgxLDUgQEAKIAogQGludGVyZmFj
ZSBXZWJGcmFtZSAoV2ViS2l0RGVidWcpCiAtIChOU1N0cmluZyAqKXJlbmRlclRyZWVBc0V4dGVy
bmFsUmVwcmVzZW50YXRpb247CistICh2b2lkKWR1bXBDb3VudGVyTm9kZTsKIEBlbmQKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbSBiL1dlYktpdC9tYWMv
TWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQppbmRleCA1N2I1OWE0Li4wZjM1YTEyIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvV2ViS2l0L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCkBAIC0yNDQsNCArMjQ0LDkgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAgICAgcmV0dXJuIGV4dGVybmFsUmVwcmVzZW50YXRpb24oX3ByaXZh
dGUtPmNvcmVGcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpOwogfQogCistICh2b2lkKWR1bXBDb3Vu
dGVyTm9kZQoreworICAgIGR1bXBDb3VudGVyTm9kZShfcHJpdmF0ZS0+Y29yZUZyYW1lLT5jb250
ZW50UmVuZGVyZXIoKSk7Cit9CisKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA4OTQyYWViLi4xZjUxZjY1IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTAtMjAgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWpp
QGRoY3AtMTcyLTMwLTg0LTE5MS50b2suY29ycC5nb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXRUZXN0Q29udG9sbGVy
LmR1bXBDb3VudGVyTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29u
dHJvbGxlcik6CisgICAgICAgIChkdW1wQ291bnRlck5vZGVDYWxsYmFjayk6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmR1bXBDb3VudGVyTm9kZSk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0RHVtcENvdW50ZXJOb2RlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW06CisgICAgICAgIChkdW1wQ291bnRlck5vZGUpOgorICAgICAgICAoZHVtcCk6
CisKIDIwMDktMTAtMTkgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDRiOGY0M2UuLmQ5ODkzYjYg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRl
c3RDb250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb24KICAgICAs
IG1fZHVtcEJhY2tGb3J3YXJkTGlzdChmYWxzZSkKICAgICAsIG1fZHVtcENoaWxkRnJhbWVTY3Jv
bGxQb3NpdGlvbnMoZmFsc2UpCiAgICAgLCBtX2R1bXBDaGlsZEZyYW1lc0FzVGV4dChmYWxzZSkK
KyAgICAsIG1fZHVtcENvdW50ZXJOb2RlKGZhbHNlKQogICAgICwgbV9kdW1wRE9NQXNXZWJBcmNo
aXZlKGZhbHNlKQogICAgICwgbV9kdW1wRGF0YWJhc2VDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBt
X2R1bXBFZGl0aW5nQ2FsbGJhY2tzKGZhbHNlKQpAQCAtMTEzLDYgKzExNCwxMyBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBkdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9uc0NhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKUwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZHVtcENvdW50ZXJOb2RlQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250
cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFBy
aXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldER1bXBDb3VudGVyTm9kZSh0
cnVlKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0
YXRpYyBKU1ZhbHVlUmVmIGR1bXBEYXRhYmFzZUNhbGxiYWNrc0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRl
KHRoaXNPYmplY3QpKTsKQEAgLTExNzIsNiArMTE4MCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJkdW1wQmFj
a0ZvcndhcmRMaXN0IiwgZHVtcEJhY2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgImR1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zIiwgZHVtcENoaWxkRnJhbWVTY3Jv
bGxQb3NpdGlvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQ2hpbGRGcmFtZXNB
c1RleHQiLCBkdW1wQ2hpbGRGcmFtZXNBc1RleHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7
ICJkdW1wQ291bnRlck5vZGUiLCBkdW1wQ291bnRlck5vZGVDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJkdW1wRE9NQXNXZWJBcmNoaXZlIiwgZHVtcERPTUFzV2ViQXJjaGl2ZUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBEYXRhYmFzZUNhbGxiYWNrcyIsIGR1bXBEYXRhYmFz
ZUNhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBFZGl0aW5nQ2FsbGJh
Y2tzIiwgZHVtcEVkaXRpbmdDYWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggZTczMjE1
Yi4uZjEyMmFiNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCkBAIC0xMDksNiArMTA5LDkgQEAgcHVibGljOgogICAgIGJvb2wgZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQ7IH0KICAgICB2b2lkIHNldER1bXBDaGlsZEZyYW1lc0FzVGV4dChib29sIGR1bXBDaGlsZEZy
YW1lc0FzVGV4dCkgeyBtX2R1bXBDaGlsZEZyYW1lc0FzVGV4dCA9IGR1bXBDaGlsZEZyYW1lc0Fz
VGV4dDsgfQogCisgICAgYm9vbCBkdW1wQ291bnRlck5vZGUoKSBjb25zdCB7IHJldHVybiBtX2R1
bXBDb3VudGVyTm9kZTsgfQorICAgIHZvaWQgc2V0RHVtcENvdW50ZXJOb2RlKGJvb2wgZHVtcENv
dW50ZXJOb2RlKSB7IG1fZHVtcENvdW50ZXJOb2RlID0gZHVtcENvdW50ZXJOb2RlOyB9CisKICAg
ICBib29sIGR1bXBEYXRhYmFzZUNhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcERhdGFi
YXNlQ2FsbGJhY2tzOyB9CiAgICAgdm9pZCBzZXREdW1wRGF0YWJhc2VDYWxsYmFja3MoYm9vbCBk
dW1wRGF0YWJhc2VDYWxsYmFja3MpIHsgbV9kdW1wRGF0YWJhc2VDYWxsYmFja3MgPSBkdW1wRGF0
YWJhc2VDYWxsYmFja3M7IH0KIApAQCAtMjIyLDYgKzIyNSw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2R1bXBCYWNrRm9yd2FyZExpc3Q7CiAgICAgYm9vbCBtX2R1bXBDaGlsZEZyYW1lU2Nyb2xs
UG9zaXRpb25zOwogICAgIGJvb2wgbV9kdW1wQ2hpbGRGcmFtZXNBc1RleHQ7CisgICAgYm9vbCBt
X2R1bXBDb3VudGVyTm9kZTsKICAgICBib29sIG1fZHVtcERPTUFzV2ViQXJjaGl2ZTsKICAgICBi
b29sIG1fZHVtcERhdGFiYXNlQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wRWRpdGluZ0NhbGxi
YWNrczsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQppbmRleCAxMTM0OGQ3Li41MDU1MmJhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC05NzMsNiArOTczLDEzIEBAIHN0YXRp
YyB2b2lkIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JXZWJWaWV3KFdlYlZpZXcgKnZpZXcpCiAgICAg
cHJpbnRmKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxu
Iik7CiB9CiAKK3N0YXRpYyB2b2lkIGR1bXBDb3VudGVyTm9kZShXZWJGcmFtZSAqZnJhbWUpCit7
CisgICAgcHJpbnRmKCJcbj09PT09PT09PT09PT09IENvdW50ZXIgTm9kZXMgPT09PT09PT09PT09
PT1cbiIpOworICAgIFtmcmFtZSBkdW1wQ291bnRlck5vZGVdOworICAgIHByaW50ZigiPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIpOworfQorCiBzdGF0
aWMgdm9pZCBzaXplV2ViVmlld0ZvckN1cnJlbnRUZXN0KCkKIHsKICAgICAvLyBXM0MgU1ZHIHRl
c3RzIGV4cGVjdCB0byBiZSA0ODB4MzYwCkBAIC0xMDYxLDYgKzEwNjgsOSBAQCB2b2lkIGR1bXAo
KQogCiAgICAgICAgICAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wQmFja0Zvcndh
cmRMaXN0KCkpCiAgICAgICAgICAgICAgICAgZHVtcEJhY2tGb3J3YXJkTGlzdEZvckFsbFdpbmRv
d3MoKTsKKworICAgICAgICAgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcENvdW50
ZXJOb2RlKCkpCisgICAgICAgICAgICAgICAgZHVtcENvdW50ZXJOb2RlKG1haW5GcmFtZSk7CiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcHJpbnRmKCJFUlJPUjogbmlsIHJlc3VsdCBmcm9t
ICVzIiwgbWV0aG9kTmFtZVN0cmluZ0ZvckZhaWxlZFRlc3QoKSk7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41553</attachid>
            <date>2009-10-21 00:43:46 -0700</date>
            <delta_ts>2009-10-21 03:22:44 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-30555-20091021164344.patch</filename>
            <type>text/plain</type>
            <size>23501</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZWRiMzRjLi4xZWFkMjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAt
MjEgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0VGVzdENvbnRv
bGxlci5kdW1wQ291bnRlck5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQ29udmVydCB0d28gcGl4ZWwgdGVzdHMgdG8g
ZHVtcEFzVGV4dCB0ZXN0cyB1c2luZyBkdW1wQ291bnRlck5vZGUuCisKKyAgICAgICAgKiBmYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG1s
OgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNy
ZW1lbnQtMDEtYy1vLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVt
ZW50LTAxLWMtby1leHBlY3RlZC5jaGVja3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5w
bmc6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3Qx
MjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJz
L3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorCiAyMDA5LTEw
LTIwICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg0YTRjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoZSBmb2xsb3dpbmcgdHdvIGxp
bmVzIHNob3VsZCBiZSB0aGUgc2FtZToKKworbmV3LQorMS0yLW5ldy0zLTQtCisKKz09PT09PT09
PT09PT09IENvdW50ZXIgTm9kZXMgPT09PT09PT09PT09PT09PT09CisxCisyCiszCis0Cis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5o
dG1sCmluZGV4IGUyY2Q5YTMuLmY0ZWVjNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwKQEAgLTExLDgg
KzExLDExIEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
IAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ291bnRlck5vZGUoKTsKKyAgfQogCiAgIGZ1bmN0aW9u
IHJ1bigpIHsKICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsK
QEAgLTI0LDkgKzI3LDYgQEAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogICB9Ci0KLSAg
Ly8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVjYXVzZSB0aGUgY291bnRlcnMgYXJlIENT
UyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4ndCBkdW1wZWQgYnkgdGhlIGZ1bmN0aW9u
LiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9zY3JpcHQ+CiAgPC9oZWFkPgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEt
Yy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjIzMmE0OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK1RoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToKKworMS0yLTMt
CisKKz09PT09PT09PT09PT09IENvdW50ZXIgTm9kZXMgPT09PT09PT09PT09PT09PT09CisxCisy
CiszCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAx
LWMtby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50
LTAxLWMtby5odG1sCmluZGV4IGEwNWQ4ZDkuLjE3NDA4ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bWwK
QEAgLTExLDggKzExLDExIEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KIAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ291bnRlck5vZGUoKTsKKyAgfQogCiAg
IGZ1bmN0aW9uIHJ1bigpIHsKICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRlc3QiKTsKQEAgLTIxLDkgKzI0LDYgQEAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCiAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwog
ICB9Ci0KLSAgLy8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVjYXVzZSB0aGUgY291bnRl
cnMgYXJlIENTUyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4ndCBkdW1wZWQgYnkgdGhl
IGZ1bmN0aW9uLiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9zY3JpcHQ+CiAgPC9oZWFk
PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRl
cnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGI5MjJhLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotZWM3ZWU0YTg5NjUxOWY5MTQ4YTUyYmQ0YjA1MTM3MjkKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAw
LWMtby1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxOWViZGUu
LjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3Nz
L2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3Mv
Y291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkODFhMDguLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0
LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAs
MCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg5NAotICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwx
Nikgc2l6ZSA3ODR4NzAKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgx
OAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNzl4MTgKLSAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzk6ICJUaGUgZm9sbG93aW5nIHR3byBsaW5l
cyBzaG91bGQgYmUgdGhlIHNhbWU6IgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQp
IHNpemUgNzg0eDE4Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAx
M3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEz
eDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgwLDApIHNpemUgOHgxOAotICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiMSIKLSAgICAgICAgICAgIFJlbmRl
clRleHQgYXQgKDgsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4LDAp
IHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
NDV4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAx
M3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMTMsMCkgc2l6ZSA4eDE4Ci0gICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgxMywwKSB3aWR0aCA4OiAiMiIKLSAgICAgICAgICAgIFJl
bmRlclRleHQgYXQgKDIxLDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MjEsMCkgd2lkdGggNTogIi0iCi0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNiww
KSBzaXplIDMyeDE4Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjYsMCkgd2lkdGggMzI6ICJu
ZXctIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4MTgKLSAg
ICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAg
ICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoNTgsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg1OCwwKSB3aWR0aCA4OiAiMyIKLSAgICAgICAgICAgIFJlbmRlclRleHQg
YXQgKDY2LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjYsMCkgd2lk
dGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxM3gx
OAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4
Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICg3MSwwKSBzaXplIDh4MTgKLSAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDcxLDApIHdpZHRoIDg6ICI0IgotICAgICAgICAgICAgUmVuZGVy
VGV4dCBhdCAoNzksMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3OSww
KSB3aWR0aCA1OiAiLSIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUyKSBzaXplIDc4
NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4NHgxOAotICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg0OiAiMS0yLW5ldy0zLTQtIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5jaGVj
a3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTcwZTJlMS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVt
ZW50LTAxLWMtby1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LTQ4NzQwN2I2ODE3Y2NkYjE2N2M3OGU3NTAzNWY2MzZhClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjBmNGI2Li4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3Qx
MjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDYyYTc5Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQt
MDEtYy1vLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLWxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYw
MAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgODAweDk0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0
eDcwCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKLSAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjc5eDE4Ci0gICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMjc5OiAiVGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJl
IHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgx
OAotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAg
ICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAg
ICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDh4MTgKLSAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggODogIjEiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg4
LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOCwwKSB3aWR0aCA1OiAi
LSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAg
ICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDEzLDApIHNpemUgOHgxOAotICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTMsMCkgd2lkdGggODogIjIiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0
ICgyMSwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIxLDApIHdpZHRo
IDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4MTgK
LSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAot
ICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMjYsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgyNiwwKSB3aWR0aCA4OiAiMyIKLSAgICAgICAgICAgIFJlbmRlclRl
eHQgYXQgKDM0LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzQsMCkg
d2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzl4MTgKLSAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTogIjEtMi0zLSIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDZhZmFjNmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDEwMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAz
Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDc5Ci0gICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMzEweDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMzEwOiAiVGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM3KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5k
ZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxp
bmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291
bnRlciBhdCAoMCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggOTogIjEiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg5LDApIHNpemUgNXgyMQot
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ5eDIxCi0gICAgICAgICAgUmVuZGVySW5s
aW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNv
dW50ZXIgYXQgKDE0LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQs
MCkgd2lkdGggOTogIjIiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyMywwKSBzaXplIDV4
MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIzLDApIHdpZHRoIDU6ICItIgotICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjgsMCkgc2l6ZSAzNXgyMQotICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDI4LDApIHdpZHRoIDM1OiAibmV3LSIKLSAgICAgICAgUmVuZGVySW5saW5l
IHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5l
cmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQg
KDYzLDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjMsMCkgd2lkdGgg
OTogIjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg3MiwwKSBzaXplIDV4MjEKLSAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDcyLDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJ
bmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUg
KGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRl
ciBhdCAoNzcsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NywwKSB3
aWR0aCA5OiAiNCIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDg2LDApIHNpemUgNXgyMQot
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODYsMCkgd2lkdGggNTogIi0iCi0gICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCw1OCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgOTF4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA5MTogIjEtMi1uZXctMy00LSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVt
ZW50LTAxLWMtby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcw
OGZiMTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzMCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDEwMwotICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAzCi0gICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDc5Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAs
MCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MzEweDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzEwOiAiVGhlIGZvbGxv
d2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDM3KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0
ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQg
KDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXpl
IDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTogIjEiCi0gICAg
ICAgICAgICBSZW5kZXJUZXh0IGF0ICg5LDApIHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoOSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDE0LDApIHNp
emUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsMCkgd2lkdGggOTogIjIiCi0g
ICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyMywwKSBzaXplIDV4MjEKLSAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDIzLDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRl
ZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMjgs
MCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyOCwwKSB3aWR0aCA5OiAi
MyIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDM3LDApIHNpemUgNXgyMQotICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMzcsMCkgd2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCw1OCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgNDJ4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0Mjog
IjEtMi0zLSIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMzAzNDdmNi4uYTk1Njc3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMC0yMSAgU2hp
bmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXRUZXN0Q29udG9sbGVyLmR1
bXBDb3VudGVyTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzA1NTUKKworICAgICAgICBFeHBvc2UgV2ViQ29yZTo6ZHVtcENvdW50ZXJOb2RlIGFz
IGEgV2ViQ29yZSBBUEkuCisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmR1bXBD
b3VudGVyTm9kZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaDoKKwog
MjAwOS0xMC0yMCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhw
IGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IGQ5ZWUxMmMuLmEwMWVkY2YgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuYmFz
ZS5leHAKQEAgLTM1Myw2ICszNTMsNyBAQCBfX1pON1dlYkNvcmUxNVN0cmluZ1RydW5jYXRvcjE0
Y2VudGVyVHJ1bmNhdGVFUktOU182U3RyaW5nRWZSS05TXzRGb250RWIKIF9fWk43V2ViQ29yZTE1
U3RyaW5nVHJ1bmNhdG9yNXdpZHRoRVJLTlNfNlN0cmluZ0VSS05TXzRGb250RWIKIF9fWk43V2Vi
Q29yZTE1VmlzaWJsZVBvc2l0aW9uQzFFUE5TXzROb2RlRWlOU185RUFmZmluaXR5RQogX19aTjdX
ZWJDb3JlMTVWaXNpYmxlUG9zaXRpb25DMUVSS05TXzhQb3NpdGlvbkVOU185RUFmZmluaXR5RQor
X19aTjdXZWJDb3JlMTVkdW1wQ291bnRlck5vZGVFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdX
ZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFFUDZOU0ZvbnRiYgogX19aTjdXZWJDb3JlMTZGb250
UGxhdGZvcm1EYXRhRDFFdgogX19aTjdXZWJDb3JlMTZMZWdhY3lXZWJBcmNoaXZlMTljcmVhdGVG
cm9tU2VsZWN0aW9uRVBOU181RnJhbWVFCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQu
Y3BwCmluZGV4IDVjNmU3MzguLjkxNTU2MTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNoYXJhY3Rlck5hbWVzLmgiCisjaW5jbHVkZSAiQ1N0
cmluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKQEAgLTU1Myw0ICs1NTQsMTQgQEAgU3RyaW5nIGV4dGVybmFsUmVw
cmVzZW50YXRpb24oUmVuZGVyT2JqZWN0KiBvKQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9
CiAKK3ZvaWQgZHVtcENvdW50ZXJOb2RlKFJlbmRlck9iamVjdCogbykKK3sKKyAgICBmb3IgKDsg
bzsgbyA9IG8tPm5leHRJblByZU9yZGVyKCkpIHsKKyAgICAgICAgaWYgKG8tPmlzQ291bnRlcigp
KSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyKHRvUmVuZGVyVGV4dChvKS0+b3JpZ2luYWxUZXh0
KCkucmVsZWFzZVJlZigpKTsKKyAgICAgICAgICAgIHByaW50ZigiJXNcbiIsIHN0ci51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCmluZGV4IGRhY2EyNTMuLjdiNTU4ZjMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmgKQEAgLTI4LDE1ICsyOCwxNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBSZW5kZXJPYmplY3Q7Ci0gICAgY2xhc3Mg
U3RyaW5nOwotICAgIGNsYXNzIFRleHRTdHJlYW07CitjbGFzcyBSZW5kZXJPYmplY3Q7CitjbGFz
cyBTdHJpbmc7CitjbGFzcyBUZXh0U3RyZWFtOwogCi0gICAgU3RyaW5nIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oUmVuZGVyT2JqZWN0Kik7Ci0gICAgdm9pZCB3cml0ZShUZXh0U3RyZWFtJiwgY29u
c3QgUmVuZGVyT2JqZWN0JiwgaW50IGluZGVudCA9IDApOworU3RyaW5nIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oUmVuZGVyT2JqZWN0Kik7Cit2b2lkIHdyaXRlKFRleHRTdHJlYW0mLCBjb25zdCBS
ZW5kZXJPYmplY3QmLCBpbnQgaW5kZW50ID0gMCk7CiAKLSAgICAvLyBIZWxwZXIgZnVuY3Rpb24g
c2hhcmVkIHdpdGggU1ZHUmVuZGVyVHJlZUFzVGV4dAotICAgIFN0cmluZyBxdW90ZUFuZEVzY2Fw
ZU5vblByaW50YWJsZXMoY29uc3QgU3RyaW5nJik7CisvLyBIZWxwZXIgZnVuY3Rpb24gc2hhcmVk
IHdpdGggU1ZHUmVuZGVyVHJlZUFzVGV4dAorU3RyaW5nIHF1b3RlQW5kRXNjYXBlTm9uUHJpbnRh
Ymxlcyhjb25zdCBTdHJpbmcmKTsKKwordm9pZCBkdW1wQ291bnRlck5vZGUoUmVuZGVyT2JqZWN0
Kik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9D
aGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAxMDE3ZmRlLi5iN2Q0ODNiIDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDA5LTEwLTIxICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFq
aUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGxheW91dFRlc3RDb250b2xsZXIuZHVtcENvdW50ZXJOb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisgICAgICAg
IEFkZCBkdW1wQ291bnRlck5vZGUgaW4gV2ViRnJhbWUgdG8gY2FsbCBXZWJDb3JlOjpkdW1wQ291
bnRlck5vZGUgZm9yIHJlbmRlcmVyLgorCisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGlj
cy5oOgorICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICgtW1dl
YkZyYW1lIGR1bXBDb3VudGVyTm9kZV0pOgorCiAyMDA5LTEwLTIwICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgTWFyayBSb3dlLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmggYi9XZWJLaXQv
bWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAppbmRleCBkNDM3MGJmLi42MTNlNTdhIDEwMDY0
NAotLS0gYS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAorKysgYi9XZWJLaXQv
bWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaApAQCAtODEsNCArODEsNSBAQAogCiBAaW50ZXJm
YWNlIFdlYkZyYW1lIChXZWJLaXREZWJ1ZykKIC0gKE5TU3RyaW5nICopcmVuZGVyVHJlZUFzRXh0
ZXJuYWxSZXByZXNlbnRhdGlvbjsKKy0gKHZvaWQpZHVtcENvdW50ZXJOb2RlOwogQGVuZApkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvV2ViS2l0L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmluZGV4IDU3YjU5YTQuLjBmMzVhMTIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQorKysgYi9XZWJLaXQv
bWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KQEAgLTI0NCw0ICsyNDQsOSBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKICAgICByZXR1cm4gZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihfcHJp
dmF0ZS0+Y29yZUZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSk7CiB9CiAKKy0gKHZvaWQpZHVtcENv
dW50ZXJOb2RlCit7CisgICAgZHVtcENvdW50ZXJOb2RlKF9wcml2YXRlLT5jb3JlRnJhbWUtPmNv
bnRlbnRSZW5kZXJlcigpKTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGYxNDgyMmUuLjMxMTRlZmIgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0xMC0yMSAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1h
amlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBsYXlvdXRUZXN0Q29udG9sbGVyLmR1bXBDb3VudGVyTm9kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAg
ICBEZWZpbmUgbGF5b3V0VGVzdENvbnRvbGxlci5kdW1wQ291bnRlck5vZGUuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoZHVtcENv
dW50ZXJOb2RlQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRp
Y0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQ291bnRlck5vZGUpOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldER1bXBDb3VudGVyTm9kZSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoZHVt
cENvdW50ZXJOb2RlKToKKyAgICAgICAgKGR1bXApOgorCiAyMDA5LTEwLTIwICBBbnRvbiBNdWhp
biAgPGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCA0YjhmNDNlLi5kOTg5M2I2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBA
IExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0
cmluZyYgdGVzdFBhdGhPclVSTCwgY29uCiAgICAgLCBtX2R1bXBCYWNrRm9yd2FyZExpc3QoZmFs
c2UpCiAgICAgLCBtX2R1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKGZhbHNlKQogICAgICwg
bV9kdW1wQ2hpbGRGcmFtZXNBc1RleHQoZmFsc2UpCisgICAgLCBtX2R1bXBDb3VudGVyTm9kZShm
YWxzZSkKICAgICAsIG1fZHVtcERPTUFzV2ViQXJjaGl2ZShmYWxzZSkKICAgICAsIG1fZHVtcERh
dGFiYXNlQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9kdW1wRWRpdGluZ0NhbGxiYWNrcyhmYWxz
ZSkKQEAgLTExMyw2ICsxMTQsMTMgQEAgc3RhdGljIEpTVmFsdWVSZWYgZHVtcENoaWxkRnJhbWVT
Y3JvbGxQb3NpdGlvbnNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlMKICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVm
IGR1bXBDb3VudGVyTm9kZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sK
KyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91
dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBj
b250cm9sbGVyLT5zZXREdW1wQ291bnRlck5vZGUodHJ1ZSk7CisgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wRGF0YWJh
c2VDYWxsYmFja3NDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
TGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0
Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0xMTcyLDYg
KzExODAsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGlj
RnVuY3Rpb25zKCkKICAgICAgICAgeyAiZHVtcEJhY2tGb3J3YXJkTGlzdCIsIGR1bXBCYWNrRm9y
d2FyZExpc3RDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQ2hpbGRGcmFtZVNjcm9s
bFBvc2l0aW9ucyIsIGR1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAiZHVtcENoaWxkRnJhbWVzQXNUZXh0IiwgZHVtcENoaWxkRnJhbWVzQXNU
ZXh0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiZHVtcENvdW50ZXJOb2RlIiwgZHVtcENv
dW50ZXJOb2RlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcERPTUFzV2ViQXJjaGl2
ZSIsIGR1bXBET01Bc1dlYkFyY2hpdmVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1w
RGF0YWJhc2VDYWxsYmFja3MiLCBkdW1wRGF0YWJhc2VDYWxsYmFja3NDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJkdW1wRWRpdGluZ0NhbGxiYWNrcyIsIGR1bXBFZGl0aW5nQ2FsbGJhY2tz
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGU3MzIxNWIuLmYxMjJhYjcgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTA5LDYg
KzEwOSw5IEBAIHB1YmxpYzoKICAgICBib29sIGR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fZHVtcENoaWxkRnJhbWVzQXNUZXh0OyB9CiAgICAgdm9pZCBzZXREdW1wQ2hp
bGRGcmFtZXNBc1RleHQoYm9vbCBkdW1wQ2hpbGRGcmFtZXNBc1RleHQpIHsgbV9kdW1wQ2hpbGRG
cmFtZXNBc1RleHQgPSBkdW1wQ2hpbGRGcmFtZXNBc1RleHQ7IH0KIAorICAgIGJvb2wgZHVtcENv
dW50ZXJOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wQ291bnRlck5vZGU7IH0KKyAgICB2b2lk
IHNldER1bXBDb3VudGVyTm9kZShib29sIGR1bXBDb3VudGVyTm9kZSkgeyBtX2R1bXBDb3VudGVy
Tm9kZSA9IGR1bXBDb3VudGVyTm9kZTsgfQorCiAgICAgYm9vbCBkdW1wRGF0YWJhc2VDYWxsYmFj
a3MoKSBjb25zdCB7IHJldHVybiBtX2R1bXBEYXRhYmFzZUNhbGxiYWNrczsgfQogICAgIHZvaWQg
c2V0RHVtcERhdGFiYXNlQ2FsbGJhY2tzKGJvb2wgZHVtcERhdGFiYXNlQ2FsbGJhY2tzKSB7IG1f
ZHVtcERhdGFiYXNlQ2FsbGJhY2tzID0gZHVtcERhdGFiYXNlQ2FsbGJhY2tzOyB9CiAKQEAgLTIy
Miw2ICsyMjUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wQmFja0ZvcndhcmRMaXN0Owog
ICAgIGJvb2wgbV9kdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9uczsKICAgICBib29sIG1fZHVt
cENoaWxkRnJhbWVzQXNUZXh0OworICAgIGJvb2wgbV9kdW1wQ291bnRlck5vZGU7CiAgICAgYm9v
bCBtX2R1bXBET01Bc1dlYkFyY2hpdmU7CiAgICAgYm9vbCBtX2R1bXBEYXRhYmFzZUNhbGxiYWNr
czsKICAgICBib29sIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggZGZhZTI2NS4uNzQ1MDBi
MSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQpAQCAtOTcyLDYgKzk3MiwxMyBAQCBzdGF0aWMgdm9pZCBkdW1wQmFja0ZvcndhcmRMaXN0
Rm9yV2ViVmlldyhXZWJWaWV3ICp2aWV3KQogICAgIHByaW50ZigiPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIpOwogfQogCitzdGF0aWMgdm9pZCBkdW1w
Q291bnRlck5vZGUoV2ViRnJhbWUgKmZyYW1lKQoreworICAgIHByaW50ZigiXG49PT09PT09PT09
PT09PSBDb3VudGVyIE5vZGVzID09PT09PT09PT09PT09PT09PVxuIik7CisgICAgW2ZyYW1lIGR1
bXBDb3VudGVyTm9kZV07CisgICAgcHJpbnRmKCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PVxuIik7Cit9CisKIHN0YXRpYyB2b2lkIHNpemVXZWJWaWV3Rm9y
Q3VycmVudFRlc3QoKQogewogICAgIC8vIFczQyBTVkcgdGVzdHMgZXhwZWN0IHRvIGJlIDQ4MHgz
NjAKQEAgLTEwNjAsNiArMTA2Nyw5IEBAIHZvaWQgZHVtcCgpCiAKICAgICAgICAgICAgIGlmIChn
TGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBCYWNrRm9yd2FyZExpc3QoKSkKICAgICAgICAgICAg
ICAgICBkdW1wQmFja0ZvcndhcmRMaXN0Rm9yQWxsV2luZG93cygpOworCisgICAgICAgICAgICBp
ZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wQ291bnRlck5vZGUoKSkKKyAgICAgICAgICAg
ICAgICBkdW1wQ291bnRlck5vZGUobWFpbkZyYW1lKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICBwcmludGYoIkVSUk9SOiBuaWwgcmVzdWx0IGZyb20gJXMiLCBtZXRob2ROYW1lU3RyaW5n
Rm9yRmFpbGVkVGVzdCgpKTs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41559</attachid>
            <date>2009-10-21 03:22:50 -0700</date>
            <delta_ts>2009-10-22 00:57:16 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-30555-20091021192248.patch</filename>
            <type>text/plain</type>
            <size>23855</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZWRiMzRjLi44ODE5YWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAt
MjEgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0VGVzdENvbnRv
bGxlci5kdW1wQ291bnRlclZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAgICBDb252ZXJ0IHR3byBwaXhlbCB0ZXN0cyB0
byBkdW1wQXNUZXh0IHRlc3RzIHVzaW5nIGR1bXBDb3VudGVyVmFsdWVzLgorCisgICAgICAgICog
ZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8u
aHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1v
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAxLWMtby5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9j
b3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3VtOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1l
bnQtMDAtYy1vLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW06IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0
ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVy
cy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3Vu
dGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKwogMjAw
OS0xMC0yMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmNjNkMmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1l
bnQtMDAtYy1vLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGUgZm9sbG93aW5nIHR3
byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6CisKK25ldy0KKzEtMi1uZXctMy00LQorCis9PT09
PT09PT09PT09PSBDb3VudGVyIFZhbHVlcyA9PT09PT09PT09PT09PT09PQorMQorMgorMworNAor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1j
LW8uaHRtbAppbmRleCBlMmNkOWEzLi5mYzQwNDM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG1sCkBAIC0x
MSw4ICsxMSwxMSBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CiAKLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewogICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENvdW50ZXJWYWx1ZXMoKTsKKyAgfQogCiAgIGZ1
bmN0aW9uIHJ1bigpIHsKICAgICAgIHZhciB0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3QiKTsKQEAgLTI0LDkgKzI3LDYgQEAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCiAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogICB9
Ci0KLSAgLy8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVjYXVzZSB0aGUgY291bnRlcnMg
YXJlIENTUyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4ndCBkdW1wZWQgYnkgdGhlIGZ1
bmN0aW9uLiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9zY3JpcHQ+CiAgPC9oZWFkPgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1l
bnQtMDEtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3Qx
MjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjhiMzkxMWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK1RoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToKKwor
MS0yLTMtCisKKz09PT09PT09PT09PT09IENvdW50ZXIgVmFsdWVzID09PT09PT09PT09PT09PT09
CisxCisyCiszCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVt
ZW50LTAxLWMtby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5j
cmVtZW50LTAxLWMtby5odG1sCmluZGV4IGEwNWQ4ZDkuLjM4OGRjOGMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1v
Lmh0bWwKQEAgLTExLDggKzExLDExIEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KIAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ291bnRlclZhbHVlcygpOwor
ICB9CiAKICAgZnVuY3Rpb24gcnVuKCkgewogICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdCIpOwpAQCAtMjEsOSArMjQsNiBAQAogICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CiAgIH0KLQotICAvLyBXZSBjYW5ub3QgdXNlIGR1bXBBc1RleHQoKSBiZWNhdXNlIHRo
ZSBjb3VudGVycyBhcmUgQ1NTIHByb3BlcnRpZXMgYW5kCi0gIC8vIHRoZXkgYXJlbid0IGR1bXBl
ZCBieSB0aGUgZnVuY3Rpb24uIExldCdzIHVzZSByZW5kZXIgdHJlZS4uLgogICA8L3NjcmlwdD4K
ICA8L2hlYWQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIw
YjkyMmEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYv
bnVsbApAQCAtMSArMCwwIEBACi1lYzdlZTRhODk2NTE5ZjkxNDhhNTJiZDRiMDUxMzcyOQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNy
ZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzE5ZWJkZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmcgYW5k
IC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQt
MDAtYy1vLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ4MWEw
OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRl
cnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzOCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDk0Ci0gIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg5NAotICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDE2KSBzaXplIDc4NHg3MAotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNp
emUgNzg0eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI3OXgx
OAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI3OTogIlRoZSBmb2xsb3dpbmcg
dHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToiCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwzNCkgc2l6ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCww
KSBzaXplIDEzeDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDAp
IHNpemUgMTN4MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDAsMCkgc2l6ZSA4eDE4
Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg6ICIxIgotICAgICAgICAg
ICAgUmVuZGVyVGV4dCBhdCAoOCwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDgsMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSA0NXgxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCww
KSBzaXplIDEzeDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgxMywwKSBzaXplIDh4
MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEzLDApIHdpZHRoIDg6ICIyIgotICAgICAg
ICAgICAgUmVuZGVyVGV4dCBhdCAoMjEsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgyMSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDI2LDApIHNpemUgMzJ4MTgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNiwwKSB3aWR0
aCAzMjogIm5ldy0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAx
M3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEz
eDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICg1OCwwKSBzaXplIDh4MTgKLSAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDU4LDApIHdpZHRoIDg6ICIzIgotICAgICAgICAgICAgUmVu
ZGVyVGV4dCBhdCAoNjYsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg2
NiwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDEzeDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNp
emUgMTN4MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDcxLDApIHNpemUgOHgxOAot
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzEsMCkgd2lkdGggODogIjQiCi0gICAgICAgICAg
ICBSZW5kZXJUZXh0IGF0ICg3OSwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDc5LDApIHdpZHRoIDU6ICItIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIp
IHNpemUgNzg0eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDg0
eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODQ6ICIxLTItbmV3LTMtNC0i
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzBlMmUxLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotNDg3NDA3YjY4MTdjY2RiMTY3Yzc4ZTc1MDM1ZjYzNmEKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9j
c3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMt
by1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMGY0YjYuLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNjJhNzkuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBA
QAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg5NAotICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikg
c2l6ZSA3ODR4NzAKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAot
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNzl4MTgKLSAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzk6ICJUaGUgZm9sbG93aW5nIHR3byBsaW5lcyBz
aG91bGQgYmUgdGhlIHNhbWU6IgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQpIHNp
emUgNzg0eDE4Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxM3gx
OAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4
Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgwLDApIHNpemUgOHgxOAotICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiMSIKLSAgICAgICAgICAgIFJlbmRlclRl
eHQgYXQgKDgsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4LDApIHdp
ZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4
MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gx
OAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMTMsMCkgc2l6ZSA4eDE4Ci0gICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxMywwKSB3aWR0aCA4OiAiMiIKLSAgICAgICAgICAgIFJlbmRl
clRleHQgYXQgKDIxLDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjEs
MCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6
ZSAxM3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXpl
IDEzeDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgyNiwwKSBzaXplIDh4MTgKLSAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI2LDApIHdpZHRoIDg6ICIzIgotICAgICAgICAgICAg
UmVuZGVyVGV4dCBhdCAoMzQsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgzNCwwKSB3aWR0aCA1OiAiLSIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUyKSBz
aXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOXgx
OAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5OiAiMS0yLTMtIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5j
cmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFmYWM2Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4MTAzCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHgxMDMKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4NzkKLSAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTB4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAzMTA6ICJUaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNh
bWU6IgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzcpIHNpemUgNzg0eDIxCi0gICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJl
bmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBS
ZW5kZXJDb3VudGVyIGF0ICgwLDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA5OiAiMSIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDksMCkgc2l6
ZSA1eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg5LDApIHdpZHRoIDU6ICItIgotICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDl4MjEKLSAgICAgICAgICBS
ZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAg
UmVuZGVyQ291bnRlciBhdCAoMTQsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgxNCwwKSB3aWR0aCA5OiAiMiIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDIzLDAp
IHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjMsMCkgd2lkdGggNTogIi0i
Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyOCwwKSBzaXplIDM1eDIxCi0gICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjgsMCkgd2lkdGggMzU6ICJuZXctIgotICAgICAgICBSZW5k
ZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxp
bmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291
bnRlciBhdCAoNjMsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg2Myww
KSB3aWR0aCA5OiAiMyIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDcyLDApIHNpemUgNXgy
MQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzIsMCkgd2lkdGggNTogIi0iCi0gICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRl
cklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5k
ZXJDb3VudGVyIGF0ICg3NywwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDc3LDApIHdpZHRoIDk6ICI0IgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoODYsMCkgc2l6
ZSA1eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4NiwwKSB3aWR0aCA1OiAiLSIKLSAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU4KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA5MXgyMQotICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDkxOiAiMS0yLW5ldy0zLTQtIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzA4ZmIxMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMwICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
MTAzCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxMDMKLSAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4NzkKLSAgICAgIFJlbmRlckJsb2NrIHtQ
fSBhdCAoMCwwKSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAzMTB4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMTA6ICJU
aGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6IgotICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMzcpIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlcklubGluZSB7
U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJh
dGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgw
LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA5OiAi
MSIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDksMCkgc2l6ZSA1eDIxCi0gICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg5LDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUg
e1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVy
YXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAo
MTQsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNCwwKSB3aWR0aCA5
OiAiMiIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDIzLDApIHNpemUgNXgyMQotICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjMsMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklu
bGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAo
Z2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVy
IGF0ICgyOCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4LDApIHdp
ZHRoIDk6ICIzIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMzcsMCkgc2l6ZSA1eDIxCi0g
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzNywwKSB3aWR0aCA1OiAiLSIKLSAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDU4KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0MngyMQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDQyOiAiMS0yLTMtIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAzMDM0N2Y2Li5lYTM2MzBiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDA5LTEw
LTIxICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dFRlc3RDb250
b2xsZXIuZHVtcENvdW50ZXJWYWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgRXhwb3NlIFdlYkNvcmU6OmNvdW50ZXJW
YWx1ZXNGcm9tUmVuZGVyVHJlZSBhcyBhIFdlYkNvcmUgQVBJLgorCisgICAgICAgICogV2ViQ29y
ZS5iYXNlLmV4cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb3VudGVyVmFsdWVzRnJvbVJlbmRlclRyZWUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0Lmg6CisKIDIwMDktMTAtMjAgIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cCBiL1dlYkNvcmUvV2ViQ29yZS5iYXNl
LmV4cAppbmRleCBkOWVlMTJjLi5jMjk2ZjA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
YmFzZS5leHAKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCkBAIC00NDYsNiArNDQ2LDcg
QEAgX19aTjdXZWJDb3JlMjVQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOXNjaGVkdWxlckV2CiBf
X1pON1dlYkNvcmUyNkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uQzFFdgogX19aTjdXZWJDb3Jl
MjZOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjZjcmVhdGVFUE5TXzVGcmFtZUVQTlNfMzJOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudEUKIF9fWk43V2ViQ29yZTI2dXNlc1Rlc3RNb2Rl
Rm9jdXNSaW5nQ29sb3JFdgorX19aTjdXZWJDb3JlMjdjb3VudGVyVmFsdWVzRnJvbVJlbmRlclRy
ZWVFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdXZWJDb3JlMjlpc0NoYXJhY3RlclNtYXJ0UmVw
bGFjZUV4ZW1wdEVpYgogX19aTjdXZWJDb3JlMjlzZXRVc2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xv
ckViCiBfX1pON1dlYkNvcmUzMUNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU1ZW1wdHlF
dgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCA1YzZlNzM4Li4xZmU1
YzY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRl
ICJDaGFyYWN0ZXJOYW1lcy5oIgorI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC01
NTMsNCArNTU0LDE2IEBAIFN0cmluZyBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFJlbmRlck9iamVj
dCogbykKICAgICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQogCitTdHJpbmcgY291bnRlclZhbHVl
c0Zyb21SZW5kZXJUcmVlKFJlbmRlck9iamVjdCogbykKK3sKKyAgICBUZXh0U3RyZWFtIHRzOwor
ICAgIGZvciAoOyBvOyBvID0gby0+bmV4dEluUHJlT3JkZXIoKSkgeworICAgICAgICBpZiAoby0+
aXNDb3VudGVyKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIodG9SZW5kZXJUZXh0KG8pLT5v
cmlnaW5hbFRleHQoKS5yZWxlYXNlUmVmKCkpOworICAgICAgICAgICAgdHMgPDwgc3RyIDw8ICJc
biI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VHJlZUFzVGV4dC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCmluZGV4
IGRhY2EyNTMuLmU5MDlmYWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRy
ZWVBc1RleHQuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmgKQEAg
LTI4LDE1ICsyOCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBSZW5k
ZXJPYmplY3Q7Ci0gICAgY2xhc3MgU3RyaW5nOwotICAgIGNsYXNzIFRleHRTdHJlYW07CitjbGFz
cyBSZW5kZXJPYmplY3Q7CitjbGFzcyBTdHJpbmc7CitjbGFzcyBUZXh0U3RyZWFtOwogCi0gICAg
U3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVuZGVyT2JqZWN0Kik7Ci0gICAgdm9pZCB3
cml0ZShUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyT2JqZWN0JiwgaW50IGluZGVudCA9IDApOwor
U3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVuZGVyT2JqZWN0Kik7Cit2b2lkIHdyaXRl
KFRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJPYmplY3QmLCBpbnQgaW5kZW50ID0gMCk7CiAKLSAg
ICAvLyBIZWxwZXIgZnVuY3Rpb24gc2hhcmVkIHdpdGggU1ZHUmVuZGVyVHJlZUFzVGV4dAotICAg
IFN0cmluZyBxdW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXMoY29uc3QgU3RyaW5nJik7CisvLyBI
ZWxwZXIgZnVuY3Rpb24gc2hhcmVkIHdpdGggU1ZHUmVuZGVyVHJlZUFzVGV4dAorU3RyaW5nIHF1
b3RlQW5kRXNjYXBlTm9uUHJpbnRhYmxlcyhjb25zdCBTdHJpbmcmKTsKKworU3RyaW5nIGNvdW50
ZXJWYWx1ZXNGcm9tUmVuZGVyVHJlZShSZW5kZXJPYmplY3QqKTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IDEwMTdmZGUuLjg0NDRjOGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MDktMTAtMjEgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0VGVz
dENvbnRvbGxlci5kdW1wQ291bnRlclZhbHVlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAgICBBZGQgY291bnRlclZhbHVlcyBp
biBXZWJGcmFtZSB0byBjYWxsIFdlYkNvcmU6OmNvdW50ZXJWYWx1ZXNGcm9tUmVuZGVyVHJlZSBm
b3IgdGhlIHJvb3QgcmVuZGVyZXIuCisKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNz
Lmg6CisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgY291bnRlclZhbHVlc10pOgorCiAyMDA5LTEwLTIwICBEYW4gQmVybnN0ZWluICA8bWl0
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgTWFyayBSb3dlLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmggYi9XZWJLaXQvbWFj
L01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAppbmRleCBkNDM3MGJmLi5hNjIxZDZhIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAorKysgYi9XZWJLaXQvbWFj
L01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaApAQCAtODEsNCArODEsNSBAQAogCiBAaW50ZXJmYWNl
IFdlYkZyYW1lIChXZWJLaXREZWJ1ZykKIC0gKE5TU3RyaW5nICopcmVuZGVyVHJlZUFzRXh0ZXJu
YWxSZXByZXNlbnRhdGlvbjsKKy0gKE5TU3RyaW5nICopY291bnRlclZhbHVlczsKIEBlbmQKZGlm
ZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbSBiL1dlYktpdC9t
YWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQppbmRleCA1N2I1OWE0Li42YTE4NzU2IDEwMDY0
NAotLS0gYS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvV2ViS2l0
L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCkBAIC0yNDQsNCArMjQ0LDkgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgcmV0dXJuIGV4dGVybmFsUmVwcmVzZW50YXRpb24oX3By
aXZhdGUtPmNvcmVGcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpOwogfQogCistIChOU1N0cmluZyAq
KWNvdW50ZXJWYWx1ZXMKK3sKKyAgICByZXR1cm4gY291bnRlclZhbHVlc0Zyb21SZW5kZXJUcmVl
KF9wcml2YXRlLT5jb3JlRnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKTsKK30KKwogQGVuZApkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGYxNDgyMmUuLjliZTM1NTkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZwor
KysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAwOS0xMC0yMSAg
U2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXRUZXN0Q29udG9sbGVy
LmR1bXBDb3VudGVyVmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDU1NQorCisgICAgICAgIERlZmluZSBsYXlvdXRUZXN0Q29udG9sbGVyLmR1
bXBDb3VudGVyVmFsdWVzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RD
b250cm9sbGVyKToKKyAgICAgICAgKGR1bXBDb3VudGVyVmFsdWVzQ2FsbGJhY2spOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpkdW1wQ291bnRlclZhbHVlcyk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0RHVtcENvdW50ZXJWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKGR1bXBDb3VudGVyVmFsdWVzKToKKyAgICAg
ICAgKGR1bXApOgorCiAyMDA5LTEwLTIwICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA0YjhmNDNl
Li5mY2JkMjVkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC00NCw2ICs0NCw3IEBAIExheW91dFRlc3RDb250cm9sbGVy
OjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwg
Y29uCiAgICAgLCBtX2R1bXBCYWNrRm9yd2FyZExpc3QoZmFsc2UpCiAgICAgLCBtX2R1bXBDaGls
ZEZyYW1lU2Nyb2xsUG9zaXRpb25zKGZhbHNlKQogICAgICwgbV9kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoZmFsc2UpCisgICAgLCBtX2R1bXBDb3VudGVyVmFsdWVzKGZhbHNlKQogICAgICwgbV9kdW1w
RE9NQXNXZWJBcmNoaXZlKGZhbHNlKQogICAgICwgbV9kdW1wRGF0YWJhc2VDYWxsYmFja3MoZmFs
c2UpCiAgICAgLCBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzKGZhbHNlKQpAQCAtMTEzLDYgKzExNCwx
MyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9uc0NhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKUwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZHVtcENvdW50ZXJWYWx1ZXND
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+c2V0RHVt
cENvdW50ZXJWYWx1ZXModHJ1ZSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wRGF0YWJhc2VDYWxsYmFja3NDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpT
T2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0xMTcyLDYgKzExODAsNyBAQCBKU1N0
YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAg
ICAgICAgeyAiZHVtcEJhY2tGb3J3YXJkTGlzdCIsIGR1bXBCYWNrRm9yd2FyZExpc3RDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucyIsIGR1
bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
ZHVtcENoaWxkRnJhbWVzQXNUZXh0IiwgZHVtcENoaWxkRnJhbWVzQXNUZXh0Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKKyAgICAgICAgeyAiZHVtcENvdW50ZXJWYWx1ZXMiLCBkdW1wQ291bnRlclZhbHVlc0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBET01Bc1dlYkFyY2hpdmUiLCBkdW1wRE9N
QXNXZWJBcmNoaXZlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcERhdGFiYXNlQ2Fs
bGJhY2tzIiwgZHVtcERhdGFiYXNlQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAiZHVtcEVkaXRpbmdDYWxsYmFja3MiLCBkdW1wRWRpdGluZ0NhbGxiYWNrc0NhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAppbmRleCBlNzMyMTViLi40MWFlYTliIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTEwOSw2ICsxMDksOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBkdW1wQ2hpbGRGcmFtZXNBc1RleHQoKSBjb25zdCB7IHJldHVybiBt
X2R1bXBDaGlsZEZyYW1lc0FzVGV4dDsgfQogICAgIHZvaWQgc2V0RHVtcENoaWxkRnJhbWVzQXNU
ZXh0KGJvb2wgZHVtcENoaWxkRnJhbWVzQXNUZXh0KSB7IG1fZHVtcENoaWxkRnJhbWVzQXNUZXh0
ID0gZHVtcENoaWxkRnJhbWVzQXNUZXh0OyB9CiAKKyAgICBib29sIGR1bXBDb3VudGVyVmFsdWVz
KCkgY29uc3QgeyByZXR1cm4gbV9kdW1wQ291bnRlclZhbHVlczsgfQorICAgIHZvaWQgc2V0RHVt
cENvdW50ZXJWYWx1ZXMoYm9vbCBkdW1wQ291bnRlclZhbHVlcykgeyBtX2R1bXBDb3VudGVyVmFs
dWVzID0gZHVtcENvdW50ZXJWYWx1ZXM7IH0KKwogICAgIGJvb2wgZHVtcERhdGFiYXNlQ2FsbGJh
Y2tzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wRGF0YWJhc2VDYWxsYmFja3M7IH0KICAgICB2b2lk
IHNldER1bXBEYXRhYmFzZUNhbGxiYWNrcyhib29sIGR1bXBEYXRhYmFzZUNhbGxiYWNrcykgeyBt
X2R1bXBEYXRhYmFzZUNhbGxiYWNrcyA9IGR1bXBEYXRhYmFzZUNhbGxiYWNrczsgfQogCkBAIC0y
MjIsNiArMjI1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVtcEJhY2tGb3J3YXJkTGlzdDsK
ICAgICBib29sIG1fZHVtcENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnM7CiAgICAgYm9vbCBtX2R1
bXBDaGlsZEZyYW1lc0FzVGV4dDsKKyAgICBib29sIG1fZHVtcENvdW50ZXJWYWx1ZXM7CiAgICAg
Ym9vbCBtX2R1bXBET01Bc1dlYkFyY2hpdmU7CiAgICAgYm9vbCBtX2R1bXBEYXRhYmFzZUNhbGxi
YWNrczsKICAgICBib29sIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggZGZhZTI2NS4uMDQ0
NWFjMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVy
VHJlZS5tbQpAQCAtOTcyLDYgKzk3MiwxNSBAQCBzdGF0aWMgdm9pZCBkdW1wQmFja0ZvcndhcmRM
aXN0Rm9yV2ViVmlldyhXZWJWaWV3ICp2aWV3KQogICAgIHByaW50ZigiPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIpOwogfQogCitzdGF0aWMgdm9pZCBk
dW1wQ291bnRlclZhbHVlcyhXZWJGcmFtZSAqZnJhbWUpCit7CisgICAgcHJpbnRmKCJcbj09PT09
PT09PT09PT09IENvdW50ZXIgVmFsdWVzID09PT09PT09PT09PT09PT09XG4iKTsKKyAgICBOU1N0
cmluZyAqY291bnRlclN0cmluZyA9IFtmcmFtZSBjb3VudGVyVmFsdWVzXTsKKyAgICBOU0RhdGEg
KmNvdW50ZXJEYXRhID0gW2NvdW50ZXJTdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3Ry
aW5nRW5jb2RpbmddOworICAgIGZ3cml0ZShbY291bnRlckRhdGEgYnl0ZXNdLCAxLCBbY291bnRl
ckRhdGEgbGVuZ3RoXSwgc3Rkb3V0KTsKKyAgICBwcmludGYoIj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iKTsKK30KKwogc3RhdGljIHZvaWQgc2l6ZVdl
YlZpZXdGb3JDdXJyZW50VGVzdCgpCiB7CiAgICAgLy8gVzNDIFNWRyB0ZXN0cyBleHBlY3QgdG8g
YmUgNDgweDM2MApAQCAtMTA2MCw2ICsxMDY5LDkgQEAgdm9pZCBkdW1wKCkKIAogICAgICAgICAg
ICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEJhY2tGb3J3YXJkTGlzdCgpKQogICAg
ICAgICAgICAgICAgIGR1bXBCYWNrRm9yd2FyZExpc3RGb3JBbGxXaW5kb3dzKCk7CisKKyAgICAg
ICAgICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBDb3VudGVyVmFsdWVzKCkpCisg
ICAgICAgICAgICAgICAgZHVtcENvdW50ZXJWYWx1ZXMobWFpbkZyYW1lKTsKICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICBwcmludGYoIkVSUk9SOiBuaWwgcmVzdWx0IGZyb20gJXMiLCBtZXRo
b2ROYW1lU3RyaW5nRm9yRmFpbGVkVGVzdCgpKTs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41646</attachid>
            <date>2009-10-22 00:57:22 -0700</date>
            <delta_ts>2009-10-22 01:09:50 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-30555-20091022165720.patch</filename>
            <type>text/plain</type>
            <size>27261</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZWRiMzRjLi5lYzc1MTc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAt
MjIgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdl
dCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQ29udmVy
dCB0d28gcGl4ZWwgdGVzdHMgdG8gZHVtcEFzVGV4dCB0ZXN0cyB1c2luZyBnZXRDb3VudGVyVmFs
dWVCeUlkLgorCisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAw
LWMtby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3Qx
MjA0LWluY3JlbWVudC0wMC1jLW8uaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG1sOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVj
dGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9j
b3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAw
LWMtby1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW06IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKwogMjAwOS0xMC0yMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAt
Yy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNiODJkOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK1RoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9mIENTUyAyLjEgVGVzdCBTdWl0ZTogZHlu
YW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCcuCisKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgnb25lJykgaXMgJzEnCitQQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmdldENvdW50ZXJWYWx1ZUJ5SWQoJ3R3bycpIGlzICcyJworUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCd0aHJlZScpIGlzICczJworUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCdmb3VyJykgaXMgJzQn
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG1sCmluZGV4IGUyY2Q5YTMuLjVkNThi
MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMC1jLW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwKQEAgLTksMjQgKzksMzYgQEAKICAgLmluY3JlbWVudCB7
IGNvdW50ZXItaW5jcmVtZW50OiBjOyB9CiAKICAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgIH0KKworICBmdW5jdGlvbiBjaGVja0NvdW50ZXJWYWx1ZXMoKSB7Cisg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgn
b25lJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuZ2V0
Q291bnRlclZhbHVlQnlJZCgndHdvJykiLCAiJzInIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgndGhyZWUnKSIsICInMyciKTsKKyAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCdm
b3VyJykiLCAiJzQnIik7CisgICAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRF
U1QgQ09NUExFVEU8L3NwYW4+Jyk7CisgICAgICAvLyBFbGltaW5hdGUgY29uZnVzaW5nIG1lc3Nh
Z2VzIChjb3VudGVyIHZhbHVlcyB3b24ndCBiZSBkdW1wZWQgYnkgZHVtcEFzVGV4dCkuCisgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlldyIpLmlubmVySFRNTCA9ICcnOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICB9CiAKICAgZnVuY3Rpb24gcnVu
KCkgewogICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwogICAg
ICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICBzLnNldEF0
dHJpYnV0ZSgiY2xhc3MiLCAiaW5jcmVtZW50Iik7CisgICAgICBzLnNldEF0dHJpYnV0ZSgiaWQi
LCAidHdvIik7CiAgICAgICBzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJu
ZXctIikpOwogICAgICAgdC5pbnNlcnRCZWZvcmUocywgdC5jaGlsZE5vZGVzLml0ZW0oMSkpOwog
CiAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICBzZXRUaW1lb3V0KCdjaGVj
a0NvdW50ZXJWYWx1ZXMoKScsIDApOwogICB9Ci0KLSAgLy8gV2UgY2Fubm90IHVzZSBkdW1wQXNU
ZXh0KCkgYmVjYXVzZSB0aGUgY291bnRlcnMgYXJlIENTUyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0
aGV5IGFyZW4ndCBkdW1wZWQgYnkgdGhlIGZ1bmN0aW9uLiBMZXQncyB1c2UgcmVuZGVyIHRyZWUu
Li4KICAgPC9zY3JpcHQ+CiAgPC9oZWFkPgogCkBAIC0zNiwxMSArNDgsMTUgQEAKICB0aGUgcHVy
cG9zZSBvZiB0aGlzIHRlc3QuIFRoYXQncyB3aHkgd2UgdXNlIHRpbWVvdXQgZm9yIHRoaXMgdGVz
dC4gLS0+CiAgPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4oKScsIDApIj4KIAotIDxwPlRo
ZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZTo8L3A+Ci0KLSA8ZGl2IGlk
PSJ0ZXN0Ij48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImluY3Jl
bWVudCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48L2Rpdj4KKyA8cD5U
aGlzIGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9T
dHlsZS9DU1MvVGVzdC9DU1MyLjEvMjAwNjEwMTEvaHRtbDQvdDEyMDQtaW5jcmVtZW50LTAwLWMt
by5odG0iPkNTUyAyLjEgVGVzdCBTdWl0ZTogZHluYW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWlu
Y3JlbWVudCc8L2E+LjwvcD4KIAorIDxkaXYgaWQ9InZpZXciPgorIDxwPlRoZSBmb2xsb3dpbmcg
dHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZTo8L3A+CisgPGRpdiBpZD0idGVzdCI+PHNwYW4g
aWQ9Im9uZSIgY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGlkPSJ0aHJlZSIgY2xhc3M9
ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGlkPSJmb3VyIiBjbGFzcz0iaW5jcmVtZW50Ij48L3Nw
YW4+PC9kaXY+CiAgPGRpdiBpZD0icmVmZXJlbmNlIj4xLTItbmV3LTMtNC08L2Rpdj4KKyA8L2Rp
dj4KKworIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCiAgPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAx
LWMtby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1p
bmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wMWNjODU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
IEBACitUaGlzIGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5
bmFtaWMgY2hhbmdlcyB0byAnY291bnRlci1pbmNyZW1lbnQnLgorCitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLmdldENvdW50ZXJWYWx1ZUJ5SWQoJ29uZScpIGlzICcxJworUEFTUyBsYXlvdXRU
ZXN0Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCd0d28nKSBpcyAnMicKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgndGhyZWUnKSBpcyAnMycKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVy
cy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3Vu
dGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bWwKaW5kZXggYTA1ZDhkOS4uOTU1NDk4ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50
LTAxLWMtby5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8uaHRtbApAQCAtOSwyMSArOSwzMSBAQAogICAuaW5jcmVtZW50IHsgY291
bnRlci1pbmNyZW1lbnQ6IGM7IH0KIAogICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgogCi0gIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVlcygpIHsKKyAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCdvbmUn
KSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5nZXRDb3Vu
dGVyVmFsdWVCeUlkKCd0d28nKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0
Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCd0aHJlZScpIiwgIiczJyIpOworICAgICAg
ZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwor
ICAgICAgLy8gRWxpbWluYXRlIGNvbmZ1c2luZyBtZXNzYWdlcyAoY291bnRlciB2YWx1ZXMgd29u
J3QgYmUgZHVtcGVkIGJ5IGR1bXBBc1RleHQpLgorICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInZpZXciKS5pbm5lckhUTUwgPSAnJzsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgfQogCiAgIGZ1bmN0aW9uIHJ1bigpIHsKICAgICAgIHZhciB0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKICAgICAgIHQucmVtb3ZlQ2hpbGQodC5jaGls
ZE5vZGVzLml0ZW0oMSkpOwogCiAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICBzZXRUaW1lb3V0KCdjaGVja0NvdW50ZXJWYWx1ZXMoKScsIDApOwogICB9Ci0KLSAgLy8gV2Ug
Y2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVjYXVzZSB0aGUgY291bnRlcnMgYXJlIENTUyBwcm9w
ZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4ndCBkdW1wZWQgYnkgdGhlIGZ1bmN0aW9uLiBMZXQn
cyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9zY3JpcHQ+CiAgPC9oZWFkPgogCkBAIC0zMywxMSAr
NDMsMTUgQEAKICB0aGUgcHVycG9zZSBvZiB0aGlzIHRlc3QuIFRoYXQncyB3aHkgd2UgdXNlIHRp
bWVvdXQgZm9yIHRoaXMgdGVzdC4gLS0+CiAgPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4o
KScsIDApIj4KIAotIDxwPlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2Ft
ZTo8L3A+Ci0KLSA8ZGl2IGlkPSJ0ZXN0Ij48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+
PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+RkFJTC08L3NwYW4+PHNwYW4gY2xhc3M9ImluY3JlbWVu
dCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48L2Rpdj4KKyA8cD5UaGlz
IGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdHls
ZS9DU1MvVGVzdC9DU1MyLjEvMjAwNjEwMTEvaHRtbDQvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5o
dG0iPkNTUyAyLjEgVGVzdCBTdWl0ZTogZHluYW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3Jl
bWVudCc8L2E+LjwvcD4KIAorIDxkaXYgaWQ9InZpZXciPgorIDxwPlRoZSBmb2xsb3dpbmcgdHdv
IGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZTo8L3A+CisgPGRpdiBpZD0idGVzdCI+PHNwYW4gaWQ9
Im9uZSIgY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPkZB
SUwtPC9zcGFuPjxzcGFuIGlkPSJ0d28iIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBp
ZD0idGhyZWUiIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48L2Rpdj4KICA8ZGl2IGlkPSJyZWZl
cmVuY2UiPjEtMi0zLTwvZGl2PgorIDwvZGl2PgorCisgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CiAKICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1p
bmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiMGI5MjJhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3Vt
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZWM3ZWU0YTg5NjUxOWY5MTQ4YTUyYmQ0YjA1
MTM3MjkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMxOWViZGUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDFkODFhMDguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMzggKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg5
NAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4NzAKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBh
dCAoMCwwKSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAyNzl4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzk6ICJUaGUg
Zm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6IgotICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMzQpIHNpemUgNzg0eDE4Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BB
Tn0gYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVk
KSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgwLDAp
IHNpemUgOHgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiMSIK
LSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDgsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg4LDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgNDV4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRl
ZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMTMs
MCkgc2l6ZSA4eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMywwKSB3aWR0aCA4OiAi
MiIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDIxLDApIHNpemUgNXgxOAotICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMjEsMCkgd2lkdGggNTogIi0iCi0gICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgyNiwwKSBzaXplIDMyeDE4Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MjYsMCkgd2lkdGggMzI6ICJuZXctIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgMTN4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAs
MCkgc2l6ZSAxM3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoNTgsMCkgc2l6ZSA4
eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg1OCwwKSB3aWR0aCA4OiAiMyIKLSAgICAg
ICAgICAgIFJlbmRlclRleHQgYXQgKDY2LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoNjYsMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0g
YXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBh
dCAoMCwwKSBzaXplIDEzeDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICg3MSwwKSBz
aXplIDh4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcxLDApIHdpZHRoIDg6ICI0Igot
ICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNzksMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICg3OSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDUyKSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA4NHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg0OiAiMS0y
LW5ldy0zLTQtIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3Nz
L2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAx
LWMtby1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTcw
ZTJlMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLTQ4NzQwN2I2ODE3Y2NkYjE2N2M3OGU3NTAzNWY2MzZhClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
ZjBmNGI2Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MS1jLW8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDYyYTc5
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVy
cy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMwICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDk0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsMTYpIHNpemUgNzg0eDcwCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6
ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjc5eDE4
Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjc5OiAiVGhlIGZvbGxvd2luZyB0
d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDM0KSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDAp
IHNpemUgMTN4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkg
c2l6ZSAxM3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDh4MTgK
LSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODogIjEiCi0gICAgICAgICAg
ICBSZW5kZXJUZXh0IGF0ICg4LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoOCwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCww
KSBzaXplIDEzeDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDAp
IHNpemUgMTN4MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDEzLDApIHNpemUgOHgx
OAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMsMCkgd2lkdGggODogIjIiCi0gICAgICAg
ICAgICBSZW5kZXJUZXh0IGF0ICgyMSwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDIxLDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0
ICgwLDApIHNpemUgMTN4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQg
KDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMjYsMCkgc2l6
ZSA4eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNiwwKSB3aWR0aCA4OiAiMyIKLSAg
ICAgICAgICAgIFJlbmRlclRleHQgYXQgKDM0LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMzQsMCkgd2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw1Mikgc2l6ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMzl4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTogIjEtMi0z
LSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJz
L3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhZmFjNmYuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50
LTAwLWMtby1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDEwMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4MTAzCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUg
Nzg0eDc5Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjEKLSAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzEweDIxCi0gICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzEwOiAiVGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxk
IGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM3KSBzaXplIDc4
NHgyMQotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAg
ICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAg
ICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTogIjEiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0
ICg5LDApIHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOSwwKSB3aWR0aCA1
OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ5eDIxCi0g
ICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAg
ICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDE0LDApIHNpemUgOXgyMQotICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTQsMCkgd2lkdGggOTogIjIiCi0gICAgICAgICAgICBSZW5kZXJUZXh0
IGF0ICgyMywwKSBzaXplIDV4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIzLDApIHdp
ZHRoIDU6ICItIgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjgsMCkgc2l6ZSAz
NXgyMQotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4LDApIHdpZHRoIDM1OiAibmV3LSIKLSAg
ICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAg
UmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAg
IFJlbmRlckNvdW50ZXIgYXQgKDYzLDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNjMsMCkgd2lkdGggOTogIjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg3Miww
KSBzaXplIDV4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDcyLDApIHdpZHRoIDU6ICIt
IgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAg
ICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAg
ICAgICAgUmVuZGVyQ291bnRlciBhdCAoNzcsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICg3NywwKSB3aWR0aCA5OiAiNCIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQg
KDg2LDApIHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoODYsMCkgd2lkdGgg
NTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1OCkgc2l6ZSA3ODR4MjEKLSAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOTF4MjEKLSAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA5MTogIjEtMi1uZXctMy00LSIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MS1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDcwOGZiMTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDEwMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAz
Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDc5Ci0gICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMzEweDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMzEwOiAiVGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM3KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5k
ZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxp
bmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291
bnRlciBhdCAoMCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggOTogIjEiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg5LDApIHNpemUgNXgyMQot
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5s
aW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNv
dW50ZXIgYXQgKDE0LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQs
MCkgd2lkdGggOTogIjIiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyMywwKSBzaXplIDV4
MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIzLDApIHdpZHRoIDU6ICItIgotICAgICAg
ICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5k
ZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVu
ZGVyQ291bnRlciBhdCAoMjgsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgyOCwwKSB3aWR0aCA5OiAiMyIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDM3LDApIHNp
emUgNXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzcsMCkgd2lkdGggNTogIi0iCi0g
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1OCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDJ4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0MjogIjEtMi0zLSIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAzNDdmNi4uMGQ4Njk3NyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAwOS0xMC0yMiAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUg
YSB3YXkgdG8gZ2V0IGNvdW50ZXIgdmFsdWVzIHdpdGggbGF5b3V0VGVzdENvbnRvbGxlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAg
ICAgICBFeHBvc2UgV2ViQ29yZTo6Z2V0Q291bnRlclZhbHVlIGFzIGEgV2ViQ29yZSBBUEkuCisK
KyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldENvdW50ZXJWYWx1ZUluQW5vbnlt
b3VzKToKKyAgICAgICAgKFdlYkNvcmU6OmdldENvdW50ZXJWYWx1ZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaDoKKwogMjAwOS0xMC0yMCAgTWFyayBSb3dlICA8bXJv
d2VAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhw
CmluZGV4IGQ5ZWUxMmMuLjQzM2E1MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNl
LmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAgLTM1Myw2ICszNTMsNyBAQCBf
X1pON1dlYkNvcmUxNVN0cmluZ1RydW5jYXRvcjE0Y2VudGVyVHJ1bmNhdGVFUktOU182U3RyaW5n
RWZSS05TXzRGb250RWIKIF9fWk43V2ViQ29yZTE1U3RyaW5nVHJ1bmNhdG9yNXdpZHRoRVJLTlNf
NlN0cmluZ0VSS05TXzRGb250RWIKIF9fWk43V2ViQ29yZTE1VmlzaWJsZVBvc2l0aW9uQzFFUE5T
XzROb2RlRWlOU185RUFmZmluaXR5RQogX19aTjdXZWJDb3JlMTVWaXNpYmxlUG9zaXRpb25DMUVS
S05TXzhQb3NpdGlvbkVOU185RUFmZmluaXR5RQorX19aTjdXZWJDb3JlMTVnZXRDb3VudGVyVmFs
dWVFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhQzFF
UDZOU0ZvbnRiYgogX19aTjdXZWJDb3JlMTZGb250UGxhdGZvcm1EYXRhRDFFdgogX19aTjdXZWJD
b3JlMTZMZWdhY3lXZWJBcmNoaXZlMTljcmVhdGVGcm9tU2VsZWN0aW9uRVBOU181RnJhbWVFCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDVjNmU3MzguLjIwMWJmNDYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNo
YXJhY3Rlck5hbWVzLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTU1Myw0
ICs1NTQsMjYgQEAgU3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVuZGVyT2JqZWN0KiBv
KQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKK3N0YXRpYyB2b2lkIGdldENvdW50ZXJW
YWx1ZUluQW5vbnltb3VzKFRleHRTdHJlYW0mIHRzLCBSZW5kZXJPYmplY3QqIG8pCit7CisgICAg
Zm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gby0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmlzQ291bnRlcigp
KSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyKHRvUmVuZGVyVGV4dChjaGlsZCktPnRleHQoKSk7
CisgICAgICAgICAgICB0cyA8PCBzdHI7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1N0cmluZyBn
ZXRDb3VudGVyVmFsdWUoUmVuZGVyT2JqZWN0KiBvKQoreworICAgIFRleHRTdHJlYW0gdHM7Cisg
ICAgLy8gVGhlIGNvdW50ZXIgcmVuZGVyZXIgc2hvdWxkIGJlIGNoaWxkcmVuIG9mIGFub255bW91
cyBjaGlsZHJlbgorICAgIC8vIChpLmUuLCA6YmVmb3JlIG9yIDphZnRlciBwc2V1ZG8tZWxlbWVu
dHMpLgorICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5p
c0Fub255bW91cygpKQorICAgICAgICAgICAgZ2V0Q291bnRlclZhbHVlSW5Bbm9ueW1vdXModHMs
IGNoaWxkKTsKKyAgICB9CisgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCmluZGV4IGRhY2Ey
NTMuLjBmYzFiYmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmgKQEAgLTI4LDE1
ICsyOCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBSZW5kZXJPYmpl
Y3Q7Ci0gICAgY2xhc3MgU3RyaW5nOwotICAgIGNsYXNzIFRleHRTdHJlYW07CitjbGFzcyBSZW5k
ZXJPYmplY3Q7CitjbGFzcyBTdHJpbmc7CitjbGFzcyBUZXh0U3RyZWFtOwogCi0gICAgU3RyaW5n
IGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVuZGVyT2JqZWN0Kik7Ci0gICAgdm9pZCB3cml0ZShU
ZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyT2JqZWN0JiwgaW50IGluZGVudCA9IDApOworU3RyaW5n
IGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVuZGVyT2JqZWN0Kik7Cit2b2lkIHdyaXRlKFRleHRT
dHJlYW0mLCBjb25zdCBSZW5kZXJPYmplY3QmLCBpbnQgaW5kZW50ID0gMCk7CiAKLSAgICAvLyBI
ZWxwZXIgZnVuY3Rpb24gc2hhcmVkIHdpdGggU1ZHUmVuZGVyVHJlZUFzVGV4dAotICAgIFN0cmlu
ZyBxdW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXMoY29uc3QgU3RyaW5nJik7CisvLyBIZWxwZXIg
ZnVuY3Rpb24gc2hhcmVkIHdpdGggU1ZHUmVuZGVyVHJlZUFzVGV4dAorU3RyaW5nIHF1b3RlQW5k
RXNjYXBlTm9uUHJpbnRhYmxlcyhjb25zdCBTdHJpbmcmKTsKKworU3RyaW5nIGdldENvdW50ZXJW
YWx1ZShSZW5kZXJPYmplY3QqKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDEw
MTdmZGUuLmFhODk5OWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTAtMjIgIFNoaW5pY2hp
cm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdldCBjb3VudGVyIHZh
bHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQWRkIGdldENvdW50ZXJWYWx1
ZSBpbiBXZWJGcmFtZSB0byBjYWxsIFdlYkNvcmU6OmdldENvdW50ZXJWYWx1ZSBmb3IgdGhlIHJv
b3QgcmVuZGVyZXIuCisKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmg6CisgICAg
ICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgZ2V0
Q291bnRlclZhbHVlOl0pOgorCiAyMDA5LTEwLTIwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmggYi9XZWJLaXQvbWFjL01pc2Mv
V2ViQ29yZVN0YXRpc3RpY3MuaAppbmRleCBkNDM3MGJmLi5hYTAyNzUxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAorKysgYi9XZWJLaXQvbWFjL01pc2Mv
V2ViQ29yZVN0YXRpc3RpY3MuaApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0IDxXZWJLaXQv
V2ViRnJhbWUuaD4KIAorQGNsYXNzIERPTUVsZW1lbnQ7CisKIEBpbnRlcmZhY2UgV2ViQ29yZVN0
YXRpc3RpY3MgOiBOU09iamVjdAogewogfQpAQCAtODEsNCArODMsNSBAQAogCiBAaW50ZXJmYWNl
IFdlYkZyYW1lIChXZWJLaXREZWJ1ZykKIC0gKE5TU3RyaW5nICopcmVuZGVyVHJlZUFzRXh0ZXJu
YWxSZXByZXNlbnRhdGlvbjsKKy0gKE5TU3RyaW5nICopZ2V0Q291bnRlclZhbHVlOihET01FbGVt
ZW50KillbGVtZW50OwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLm1tIGIvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmluZGV4
IDU3YjU5YTQuLmQ0OWFmZjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5tbQorKysgYi9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiV2ViQ29yZVN0YXRpc3RpY3MuaCIKIAorI2ltcG9y
dCAiRE9NRWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJDYWNoZS5oIgogI2ltcG9ydCAi
V2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8cnVudGltZS9KU0xvY2suaD4KQEAgLTI0NCw0
ICsyNDUsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgcmV0dXJuIGV4dGVybmFs
UmVwcmVzZW50YXRpb24oX3ByaXZhdGUtPmNvcmVGcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpOwog
fQogCistIChOU1N0cmluZyAqKWdldENvdW50ZXJWYWx1ZTooRE9NRWxlbWVudCopZWxlbWVudAor
eworICAgIEVsZW1lbnQgKm5vZGUgPSBjb3JlKGVsZW1lbnQpOworICAgIHJldHVybiBnZXRDb3Vu
dGVyVmFsdWUobm9kZS0+cmVuZGVyZXIoKSk7Cit9CisKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBmMTQ4MjJlLi5j
M2MxNzQ2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMTAtMjIgIFNoaW5pY2hpcm8gSGFt
YWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdldCBjb3VudGVyIHZhbHVlcyB3
aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgRGVmaW5lIGxheW91dFRlc3RDb250b2xs
ZXIuZ2V0Q291bnRlclZhbHVlQnlJZC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKGdldENvdW50ZXJWYWx1ZUJ5SWRDYWxsYmFj
ayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpnZXRDb3VudGVyVmFsdWVCeUlkKToKKwogMjAwOS0xMC0y
MCAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNGI4ZjQzZS4uZjJkOGZiNCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAt
Mzg0LDYgKzM4NCwxOSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBleGVjQ29tbWFuZENhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbgogICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0Q291
bnRlclZhbHVlQnlJZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAg
ICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbGVtZW50SWQo
QWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRp
b24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOworCisgICAgTGF5b3V0VGVzdENvbnRyb2xs
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGNvdW50ZXJWYWx1ZShBZG9wdCwgY29udHJvbGxlci0+Z2V0Q291bnRlclZhbHVlQnlJZChlbGVt
ZW50SWQuZ2V0KCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgY291
bnRlclZhbHVlLmdldCgpKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgZ3JhbnREZXNrdG9wTm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICAvLyBIYXMgV2luZG93cyBpbXBsZW1lbnRhdGlvbgpAQCAtMTE4Nyw2ICsxMjAwLDcg
QEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9u
cygpCiAgICAgICAgIHsgImVuY29kZUhvc3ROYW1lIiwgZW5jb2RlSG9zdE5hbWVDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJldmFsdWF0ZUluV2ViSW5zcGVjdG9yIiwgZXZhbHVhdGVJbldl
Ykluc3BlY3RvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImV4ZWNDb21tYW5kIiwgZXhl
Y0NvbW1hbmRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJnZXRDb3VudGVyVmFsdWVCeUlk
IiwgZ2V0Q291bnRlclZhbHVlQnlJZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImdyYW50
RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24iLCBncmFudERlc2t0b3BOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsgImlzQ29tbWFuZEVuYWJsZWQi
LCBpc0NvbW1hbmRFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAia2VlcFdlYkhp
c3RvcnkiLCBrZWVwV2ViSGlzdG9yeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBlNzMyMTViLi5h
YjBiZGQ2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hQ
ZW5kaW5nTG9hZFJlcXVlc3RzKCk7CiAgICAgdm9pZCBkaXNwbGF5KCk7CiAgICAgdm9pZCBleGVj
Q29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBKU1N0cmluZ1JlZiB2YWx1ZSk7CisgICAgSlNTdHJp
bmdSZWYgZ2V0Q291bnRlclZhbHVlQnlJZChKU1N0cmluZ1JlZiBpZCk7CiAgICAgYm9vbCBpc0Nv
bW1hbmRFbmFibGVkKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZvaWQga2VlcFdlYkhpc3Rvcnko
KTsKICAgICB2b2lkIG5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCAwMzcwYjg5
Li42ZTViNTZhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1wb3J0
IDxXZWJLaXQvRE9NRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkFwcGxpY2F0aW9uQ2Fj
aGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJCYWNrRm9yd2FyZExpc3QuaD4KKyNpbXBvcnQgPFdl
YktpdC9XZWJDb3JlU3RhdGlzdGljcy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFiYXNlTWFu
YWdlclByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJEYXRhU291cmNlLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV2ViRnJhbWUuaD4KQEAgLTE1MSw2ICsxNTIsMTYgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KIAorSlNTdHJp
bmdSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmdldENvdW50ZXJWYWx1ZUJ5SWQoSlNTdHJpbmdS
ZWYgaWQpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBpZENGKEFkb3B0Q0YsIEpTU3Ry
aW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGlkKSk7CisgICAgTlNTdHJpbmcg
KmlkTlMgPSAoTlNTdHJpbmcgKilpZENGLmdldCgpOworCisgICAgRE9NRWxlbWVudCAqZWxlbWVu
dCA9IFtbbWFpbkZyYW1lIERPTURvY3VtZW50XSBnZXRFbGVtZW50QnlJZDppZE5TXTsKKworICAg
IHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW21haW5GcmFt
ZSBnZXRDb3VudGVyVmFsdWU6ZWxlbWVudF0pOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjprZWVwV2ViSGlzdG9yeSgpCiB7CiAgICAgaWYgKCFbV2ViSGlzdG9yeSBvcHRpb25hbFNo
YXJlZEhpc3RvcnldKSB7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41648</attachid>
            <date>2009-10-22 02:07:40 -0700</date>
            <delta_ts>2009-10-26 16:04:34 -0700</delta_ts>
            <desc>Patch v5</desc>
            <filename>bug-30555-20091022180738.patch</filename>
            <type>text/plain</type>
            <size>27404</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZWRiMzRjLi5lYzc1MTc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAt
MjIgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdl
dCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQ29udmVy
dCB0d28gcGl4ZWwgdGVzdHMgdG8gZHVtcEFzVGV4dCB0ZXN0cyB1c2luZyBnZXRDb3VudGVyVmFs
dWVCeUlkLgorCisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAw
LWMtby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3Qx
MjA0LWluY3JlbWVudC0wMC1jLW8uaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG1sOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVj
dGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9j
b3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAw
LWMtby1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW06IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKwogMjAwOS0xMC0yMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAt
Yy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjNiODJkOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9j
b3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK1RoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9mIENTUyAyLjEgVGVzdCBTdWl0ZTogZHlu
YW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCcuCisKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgnb25lJykgaXMgJzEnCitQQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmdldENvdW50ZXJWYWx1ZUJ5SWQoJ3R3bycpIGlzICcyJworUEFTUyBsYXlv
dXRUZXN0Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCd0aHJlZScpIGlzICczJworUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCdmb3VyJykgaXMgJzQn
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Y291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG1sCmluZGV4IGUyY2Q5YTMuLjc5NWZm
YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMC1jLW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwKQEAgLTksMjQgKzksMzcgQEAKICAgLmluY3JlbWVudCB7
IGNvdW50ZXItaW5jcmVtZW50OiBjOyB9CiAKICAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgIH0KKworICBmdW5jdGlvbiBjaGVja0NvdW50ZXJWYWx1ZXMoKSB7Cisg
ICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgn
b25lJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuZ2V0
Q291bnRlclZhbHVlQnlJZCgndHdvJykiLCAiJzInIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgndGhyZWUnKSIsICInMyciKTsKKyAg
ICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCdm
b3VyJykiLCAiJzQnIik7CisgICAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRF
U1QgQ09NUExFVEU8L3NwYW4+Jyk7CisgICAgICAvLyBFbGltaW5hdGUgY29uZnVzaW5nIG1lc3Nh
Z2VzIChjb3VudGVyIHZhbHVlcyB3b24ndCBiZSBkdW1wZWQgYnkgZHVtcEFzVGV4dCkuCisgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlldyIpLmlubmVySFRNTCA9ICcnOworICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICB9CiAKICAgZnVuY3Rpb24gcnVu
KCkgewogICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwogICAg
ICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CiAgICAgICBzLnNldEF0
dHJpYnV0ZSgiY2xhc3MiLCAiaW5jcmVtZW50Iik7CisgICAgICBzLnNldEF0dHJpYnV0ZSgiaWQi
LCAidHdvIik7CiAgICAgICBzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJu
ZXctIikpOwogICAgICAgdC5pbnNlcnRCZWZvcmUocywgdC5jaGlsZE5vZGVzLml0ZW0oMSkpOwog
CiAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAvLyBXYWl0IGZvciB0aGUg
bGF5b3V0IHVzaW5nIHNldFRpbWVvdXQuCisgICAgICAgICAgc2V0VGltZW91dCgnY2hlY2tDb3Vu
dGVyVmFsdWVzKCknLCAwKTsKICAgfQotCi0gIC8vIFdlIGNhbm5vdCB1c2UgZHVtcEFzVGV4dCgp
IGJlY2F1c2UgdGhlIGNvdW50ZXJzIGFyZSBDU1MgcHJvcGVydGllcyBhbmQKLSAgLy8gdGhleSBh
cmVuJ3QgZHVtcGVkIGJ5IHRoZSBmdW5jdGlvbi4gTGV0J3MgdXNlIHJlbmRlciB0cmVlLi4uCiAg
IDwvc2NyaXB0PgogIDwvaGVhZD4KIApAQCAtMzYsMTEgKzQ5LDE1IEBACiAgdGhlIHB1cnBvc2Ug
b2YgdGhpcyB0ZXN0LiBUaGF0J3Mgd2h5IHdlIHVzZSB0aW1lb3V0IGZvciB0aGlzIHRlc3QuIC0t
PgogIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAwKSI+CiAKLSA8cD5UaGUgZm9s
bG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6PC9wPgotCi0gPGRpdiBpZD0idGVz
dCI+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQi
Pjwvc3Bhbj48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PC9kaXY+CisgPHA+VGhpcyBp
cyB0aGUgV2ViS2l0IHZlcnNpb24gb2YgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3R5bGUv
Q1NTL1Rlc3QvQ1NTMi4xLzIwMDYxMDExL2h0bWw0L3QxMjA0LWluY3JlbWVudC0wMC1jLW8uaHRt
Ij5DU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0byAnY291bnRlci1pbmNyZW1l
bnQnPC9hPi48L3A+CiAKKyA8ZGl2IGlkPSJ2aWV3Ij4KKyA8cD5UaGUgZm9sbG93aW5nIHR3byBs
aW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6PC9wPgorIDxkaXYgaWQ9InRlc3QiPjxzcGFuIGlkPSJv
bmUiIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBpZD0idGhyZWUiIGNsYXNzPSJpbmNy
ZW1lbnQiPjwvc3Bhbj48c3BhbiBpZD0iZm91ciIgY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjwv
ZGl2PgogIDxkaXYgaWQ9InJlZmVyZW5jZSI+MS0yLW5ldy0zLTQtPC9kaXY+CisgPC9kaXY+CisK
KyA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAogIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVt
ZW50LTAxLWMtby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDFjYzg1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAor
VGhpcyBpcyB0aGUgV2ViS2l0IHZlcnNpb24gb2YgQ1NTIDIuMSBUZXN0IFN1aXRlOiBkeW5hbWlj
IGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5jcmVtZW50Jy4KKworUEFTUyBsYXlvdXRUZXN0Q29udHJv
bGxlci5nZXRDb3VudGVyVmFsdWVCeUlkKCdvbmUnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgndHdvJykgaXMgJzInCitQQVNTIGxheW91dFRl
c3RDb250cm9sbGVyLmdldENvdW50ZXJWYWx1ZUJ5SWQoJ3RocmVlJykgaXMgJzMnCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAxLWMtby5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG1sCmluZGV4IGEwNWQ4ZDkuLjhiMTdlZjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1j
LW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1l
bnQtMDEtYy1vLmh0bWwKQEAgLTksMjEgKzksMzIgQEAKICAgLmluY3JlbWVudCB7IGNvdW50ZXIt
aW5jcmVtZW50OiBjOyB9CiAKICAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KIAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgIH0KKworICBmdW5jdGlvbiBjaGVja0NvdW50ZXJWYWx1ZXMoKSB7CisgICAgICBzaG91
bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgnb25lJykiLCAi
JzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuZ2V0Q291bnRlclZh
bHVlQnlJZCgndHdvJykiLCAiJzInIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRy
b2xsZXIuZ2V0Q291bnRlclZhbHVlQnlJZCgndGhyZWUnKSIsICInMyciKTsKKyAgICAgIGRlYnVn
KCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKKyAgICAg
IC8vIEVsaW1pbmF0ZSBjb25mdXNpbmcgbWVzc2FnZXMgKGNvdW50ZXIgdmFsdWVzIHdvbid0IGJl
IGR1bXBlZCBieSBkdW1wQXNUZXh0KS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2
aWV3IikuaW5uZXJIVE1MID0gJyc7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgIH0KIAogICBmdW5jdGlvbiBydW4oKSB7CiAgICAgICB2YXIgdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CiAgICAgICB0LnJlbW92ZUNoaWxkKHQuY2hpbGROb2Rl
cy5pdGVtKDEpKTsKIAogICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgLy8g
V2FpdCBmb3IgdGhlIGxheW91dCB1c2luZyBzZXRUaW1lb3V0LgorICAgICAgICAgIHNldFRpbWVv
dXQoJ2NoZWNrQ291bnRlclZhbHVlcygpJywgMCk7CiAgIH0KLQotICAvLyBXZSBjYW5ub3QgdXNl
IGR1bXBBc1RleHQoKSBiZWNhdXNlIHRoZSBjb3VudGVycyBhcmUgQ1NTIHByb3BlcnRpZXMgYW5k
Ci0gIC8vIHRoZXkgYXJlbid0IGR1bXBlZCBieSB0aGUgZnVuY3Rpb24uIExldCdzIHVzZSByZW5k
ZXIgdHJlZS4uLgogICA8L3NjcmlwdD4KICA8L2hlYWQ+CiAKQEAgLTMzLDExICs0NCwxNSBAQAog
IHRoZSBwdXJwb3NlIG9mIHRoaXMgdGVzdC4gVGhhdCdzIHdoeSB3ZSB1c2UgdGltZW91dCBmb3Ig
dGhpcyB0ZXN0LiAtLT4KICA8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1bigpJywgMCkiPgog
Ci0gPHA+VGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOjwvcD4KLQot
IDxkaXYgaWQ9InRlc3QiPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBjbGFz
cz0iaW5jcmVtZW50Ij5GQUlMLTwvc3Bhbj48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+
PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjwvZGl2PgorIDxwPlRoaXMgaXMgdGhlIFdl
YktpdCB2ZXJzaW9uIG9mIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0eWxlL0NTUy9UZXN0
L0NTUzIuMS8yMDA2MTAxMS9odG1sNC90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bSI+Q1NTIDIu
MSBUZXN0IFN1aXRlOiBkeW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5jcmVtZW50JzwvYT4u
PC9wPgogCisgPGRpdiBpZD0idmlldyI+CisgPHA+VGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hv
dWxkIGJlIHRoZSBzYW1lOjwvcD4KKyA8ZGl2IGlkPSJ0ZXN0Ij48c3BhbiBpZD0ib25lIiBjbGFz
cz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+RkFJTC08L3NwYW4+
PHNwYW4gaWQ9InR3byIgY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGlkPSJ0aHJlZSIg
Y2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjwvZGl2PgogIDxkaXYgaWQ9InJlZmVyZW5jZSI+MS0y
LTMtPC9kaXY+CisgPC9kaXY+CisKKyA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAogIDwvYm9k
eT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIw
YjkyMmEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYv
bnVsbApAQCAtMSArMCwwIEBACi1lYzdlZTRhODk2NTE5ZjkxNDhhNTJiZDRiMDUxMzcyOQpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNy
ZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzE5ZWJkZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmcgYW5k
IC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQt
MDAtYy1vLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ4MWEw
OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRl
cnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwzOCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDk0Ci0gIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg5NAotICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDE2KSBzaXplIDc4NHg3MAotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNp
emUgNzg0eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI3OXgx
OAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI3OTogIlRoZSBmb2xsb3dpbmcg
dHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToiCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwzNCkgc2l6ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCww
KSBzaXplIDEzeDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDAp
IHNpemUgMTN4MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDAsMCkgc2l6ZSA4eDE4
Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg6ICIxIgotICAgICAgICAg
ICAgUmVuZGVyVGV4dCBhdCAoOCwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDgsMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAs
MCkgc2l6ZSA0NXgxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCww
KSBzaXplIDEzeDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgxMywwKSBzaXplIDh4
MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEzLDApIHdpZHRoIDg6ICIyIgotICAgICAg
ICAgICAgUmVuZGVyVGV4dCBhdCAoMjEsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgyMSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDI2LDApIHNpemUgMzJ4MTgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyNiwwKSB3aWR0
aCAzMjogIm5ldy0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAx
M3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEz
eDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICg1OCwwKSBzaXplIDh4MTgKLSAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDU4LDApIHdpZHRoIDg6ICIzIgotICAgICAgICAgICAgUmVu
ZGVyVGV4dCBhdCAoNjYsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg2
NiwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDEzeDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNp
emUgMTN4MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDcxLDApIHNpemUgOHgxOAot
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzEsMCkgd2lkdGggODogIjQiCi0gICAgICAgICAg
ICBSZW5kZXJUZXh0IGF0ICg3OSwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDc5LDApIHdpZHRoIDU6ICItIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIp
IHNpemUgNzg0eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDg0
eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODQ6ICIxLTItbmV3LTMtNC0i
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzBlMmUxLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotNDg3NDA3YjY4MTdjY2RiMTY3Yzc4ZTc1MDM1ZjYzNmEKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9j
c3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMt
by1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMGY0YjYuLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNjJhNzkuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBA
QAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg5NAotICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikg
c2l6ZSA3ODR4NzAKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAot
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNzl4MTgKLSAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzk6ICJUaGUgZm9sbG93aW5nIHR3byBsaW5lcyBz
aG91bGQgYmUgdGhlIHNhbWU6IgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQpIHNp
emUgNzg0eDE4Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxM3gx
OAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4
Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgwLDApIHNpemUgOHgxOAotICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiMSIKLSAgICAgICAgICAgIFJlbmRlclRl
eHQgYXQgKDgsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4LDApIHdp
ZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4
MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gx
OAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMTMsMCkgc2l6ZSA4eDE4Ci0gICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxMywwKSB3aWR0aCA4OiAiMiIKLSAgICAgICAgICAgIFJlbmRl
clRleHQgYXQgKDIxLDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjEs
MCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6
ZSAxM3gxOAotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXpl
IDEzeDE4Ci0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgyNiwwKSBzaXplIDh4MTgKLSAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI2LDApIHdpZHRoIDg6ICIzIgotICAgICAgICAgICAg
UmVuZGVyVGV4dCBhdCAoMzQsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgzNCwwKSB3aWR0aCA1OiAiLSIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUyKSBz
aXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOXgx
OAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5OiAiMS0yLTMtIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5j
cmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmFmYWM2Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4MTAzCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHgxMDMKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4NzkKLSAg
ICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTB4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAzMTA6ICJUaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNh
bWU6IgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzcpIHNpemUgNzg0eDIxCi0gICAg
ICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJl
bmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBS
ZW5kZXJDb3VudGVyIGF0ICgwLDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA5OiAiMSIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDksMCkgc2l6
ZSA1eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg5LDApIHdpZHRoIDU6ICItIgotICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDl4MjEKLSAgICAgICAgICBS
ZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAg
UmVuZGVyQ291bnRlciBhdCAoMTQsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgxNCwwKSB3aWR0aCA5OiAiMiIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDIzLDAp
IHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjMsMCkgd2lkdGggNTogIi0i
Ci0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyOCwwKSBzaXplIDM1eDIxCi0gICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjgsMCkgd2lkdGggMzU6ICJuZXctIgotICAgICAgICBSZW5k
ZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxp
bmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291
bnRlciBhdCAoNjMsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg2Myww
KSB3aWR0aCA5OiAiMyIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDcyLDApIHNpemUgNXgy
MQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzIsMCkgd2lkdGggNTogIi0iCi0gICAgICAg
IFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRl
cklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5k
ZXJDb3VudGVyIGF0ICg3NywwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDc3LDApIHdpZHRoIDk6ICI0IgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoODYsMCkgc2l6
ZSA1eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4NiwwKSB3aWR0aCA1OiAiLSIKLSAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU4KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA5MXgyMQotICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDkxOiAiMS0yLW5ldy0zLTQtIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzA4ZmIxMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMwICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
MTAzCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgxMDMKLSAgICBSZW5k
ZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4NzkKLSAgICAgIFJlbmRlckJsb2NrIHtQ
fSBhdCAoMCwwKSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAzMTB4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMTA6ICJU
aGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6IgotICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMzcpIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlcklubGluZSB7
U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJh
dGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgw
LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA5OiAi
MSIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDksMCkgc2l6ZSA1eDIxCi0gICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg5LDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUg
e1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVy
YXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAo
MTQsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxNCwwKSB3aWR0aCA5
OiAiMiIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDIzLDApIHNpemUgNXgyMQotICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMjMsMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklu
bGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAo
Z2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVy
IGF0ICgyOCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI4LDApIHdp
ZHRoIDk6ICIzIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMzcsMCkgc2l6ZSA1eDIxCi0g
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzNywwKSB3aWR0aCA1OiAiLSIKLSAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDU4KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0MngyMQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDQyOiAiMS0yLTMtIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAzMDM0N2Y2Li4wZDg2OTc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDA5LTEw
LTIyICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0byBn
ZXQgY291bnRlciB2YWx1ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisgICAgICAgIEV4cG9z
ZSBXZWJDb3JlOjpnZXRDb3VudGVyVmFsdWUgYXMgYSBXZWJDb3JlIEFQSS4KKworICAgICAgICAq
IFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q291bnRlclZhbHVlSW5Bbm9ueW1vdXMpOgorICAg
ICAgICAoV2ViQ29yZTo6Z2V0Q291bnRlclZhbHVlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5oOgorCiAyMDA5LTEwLTIwICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuYmFzZS5leHAgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXggZDll
ZTEyYy4uNTdlOWM2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cApAQCAtMzUzLDYgKzM1Myw3IEBAIF9fWk43V2ViQ29y
ZTE1U3RyaW5nVHJ1bmNhdG9yMTRjZW50ZXJUcnVuY2F0ZUVSS05TXzZTdHJpbmdFZlJLTlNfNEZv
bnRFYgogX19aTjdXZWJDb3JlMTVTdHJpbmdUcnVuY2F0b3I1d2lkdGhFUktOU182U3RyaW5nRVJL
TlNfNEZvbnRFYgogX19aTjdXZWJDb3JlMTVWaXNpYmxlUG9zaXRpb25DMUVQTlNfNE5vZGVFaU5T
XzlFQWZmaW5pdHlFCiBfX1pON1dlYkNvcmUxNVZpc2libGVQb3NpdGlvbkMxRVJLTlNfOFBvc2l0
aW9uRU5TXzlFQWZmaW5pdHlFCitfX1pON1dlYkNvcmUxNWdldENvdW50ZXJWYWx1ZUVQTlNfN0Vs
ZW1lbnRFCiBfX1pON1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFDMUVQNk5TRm9udGJiCiBfX1pO
N1dlYkNvcmUxNkZvbnRQbGF0Zm9ybURhdGFEMUV2CiBfX1pON1dlYkNvcmUxNkxlZ2FjeVdlYkFy
Y2hpdmUxOWNyZWF0ZUZyb21TZWxlY3Rpb25FUE5TXzVGcmFtZUUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggNWM2ZTczOC4uYWE2NTE4MiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ2hhcmFjdGVyTmFtZXMuaCIK
KyNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNTUzLDQgKzU1NCwyOCBAQCBTdHJp
bmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmplY3QqIG8pCiAgICAgcmV0dXJuIHRz
LnJlbGVhc2UoKTsKIH0KIAorc3RhdGljIHZvaWQgZ2V0Q291bnRlclZhbHVlSW5Bbm9ueW1vdXMo
VGV4dFN0cmVhbSYgdHMsIFJlbmRlck9iamVjdCogbykKK3sKKyAgICBmb3IgKFJlbmRlck9iamVj
dCogY2hpbGQgPSBvLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2li
bGluZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNDb3VudGVyKCkpIHsKKyAgICAgICAgICAg
IFN0cmluZyBzdHIodG9SZW5kZXJUZXh0KGNoaWxkKS0+dGV4dCgpKTsKKyAgICAgICAgICAgIHRz
IDw8IHN0cjsKKyAgICAgICAgfQorICAgIH0KK30KKworU3RyaW5nIGdldENvdW50ZXJWYWx1ZShF
bGVtZW50KiBlbGVtZW50KQoreworICAgIFRleHRTdHJlYW0gdHM7CisgICAgLy8gVGhlIGNvdW50
ZXIgcmVuZGVyZXIgc2hvdWxkIGJlIGNoaWxkcmVuIG9mIGFub255bW91cyBjaGlsZHJlbgorICAg
IC8vIChpLmUuLCA6YmVmb3JlIG9yIDphZnRlciBwc2V1ZG8tZWxlbWVudHMpLgorICAgIGlmIChS
ZW5kZXJPYmplY3QqIG8gPSBlbGVtZW50LT5yZW5kZXJlcigpKSB7CisgICAgICAgIGZvciAoUmVu
ZGVyT2JqZWN0KiBjaGlsZCA9IG8tPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNBbm9ueW1vdXMoKSkK
KyAgICAgICAgICAgICAgICBnZXRDb3VudGVyVmFsdWVJbkFub255bW91cyh0cywgY2hpbGQpOwor
ICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cy5yZWxlYXNlKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaAppbmRleCBkYWNh
MjUzLi44NWY4YmQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNU
ZXh0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCkBAIC0yOCwx
NSArMjgsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgUmVuZGVyT2Jq
ZWN0OwotICAgIGNsYXNzIFN0cmluZzsKLSAgICBjbGFzcyBUZXh0U3RyZWFtOworY2xhc3MgRWxl
bWVudDsKK2NsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFN0cmluZzsKK2NsYXNzIFRleHRTdHJl
YW07CiAKLSAgICBTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmplY3QqKTsK
LSAgICB2b2lkIHdyaXRlKFRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJPYmplY3QmLCBpbnQgaW5k
ZW50ID0gMCk7CitTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmplY3QqKTsK
K3ZvaWQgd3JpdGUoVGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlck9iamVjdCYsIGludCBpbmRlbnQg
PSAwKTsKIAotICAgIC8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgd2l0aCBTVkdSZW5kZXJUcmVl
QXNUZXh0Ci0gICAgU3RyaW5nIHF1b3RlQW5kRXNjYXBlTm9uUHJpbnRhYmxlcyhjb25zdCBTdHJp
bmcmKTsKKy8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgd2l0aCBTVkdSZW5kZXJUcmVlQXNUZXh0
CitTdHJpbmcgcXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKGNvbnN0IFN0cmluZyYpOworCitT
dHJpbmcgZ2V0Q291bnRlclZhbHVlKEVsZW1lbnQqKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IDEwMTdmZGUuLmFhODk5OWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTAt
MjIgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdl
dCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQWRkIGdl
dENvdW50ZXJWYWx1ZSBpbiBXZWJGcmFtZSB0byBjYWxsIFdlYkNvcmU6OmdldENvdW50ZXJWYWx1
ZSBmb3IgdGhlIHJvb3QgcmVuZGVyZXIuCisKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0
aWNzLmg6CisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbToKKyAgICAgICAgKC1b
V2ViRnJhbWUgZ2V0Q291bnRlclZhbHVlOl0pOgorCiAyMDA5LTEwLTIwICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgTWFyayBSb3dl
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmggYi9XZWJL
aXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAppbmRleCBkNDM3MGJmLi5hYTAyNzUxIDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAorKysgYi9XZWJL
aXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1w
b3J0IDxXZWJLaXQvV2ViRnJhbWUuaD4KIAorQGNsYXNzIERPTUVsZW1lbnQ7CisKIEBpbnRlcmZh
Y2UgV2ViQ29yZVN0YXRpc3RpY3MgOiBOU09iamVjdAogewogfQpAQCAtODEsNCArODMsNSBAQAog
CiBAaW50ZXJmYWNlIFdlYkZyYW1lIChXZWJLaXREZWJ1ZykKIC0gKE5TU3RyaW5nICopcmVuZGVy
VHJlZUFzRXh0ZXJuYWxSZXByZXNlbnRhdGlvbjsKKy0gKE5TU3RyaW5nICopZ2V0Q291bnRlclZh
bHVlOihET01FbGVtZW50KillbGVtZW50OwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9N
aXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0
aWNzLm1tCmluZGV4IDU3YjU5YTQuLjBiZTk1YzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlz
Yy9XZWJDb3JlU3RhdGlzdGljcy5tbQorKysgYi9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRp
c3RpY3MubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiV2ViQ29yZVN0YXRpc3RpY3Mu
aCIKIAorI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJDYWNoZS5o
IgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8cnVudGltZS9KU0xvY2su
aD4KQEAgLTI0NCw0ICsyNDUsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICByZXR1
cm4gZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihfcHJpdmF0ZS0+Y29yZUZyYW1lLT5jb250ZW50UmVu
ZGVyZXIoKSk7CiB9CiAKKy0gKE5TU3RyaW5nICopZ2V0Q291bnRlclZhbHVlOihET01FbGVtZW50
KillbGVtZW50Cit7CisgICAgcmV0dXJuIGdldENvdW50ZXJWYWx1ZShjb3JlKGVsZW1lbnQpKTsK
K30KKwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGYxNDgyMmUuLmMzYzE3NDYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAwOS0xMC0yMiAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUg
YSB3YXkgdG8gZ2V0IGNvdW50ZXIgdmFsdWVzIHdpdGggbGF5b3V0VGVzdENvbnRvbGxlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAg
ICAgICBEZWZpbmUgbGF5b3V0VGVzdENvbnRvbGxlci5nZXRDb3VudGVyVmFsdWVCeUlkLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoZ2V0Q291bnRlclZhbHVlQnlJZENhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRl
c3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmdldENv
dW50ZXJWYWx1ZUJ5SWQpOgorCiAyMDA5LTEwLTIwICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA0
YjhmNDNlLi5mMmQ4ZmI0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zODQsNiArMzg0LDE5IEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIGV4ZWNDb21tYW5kQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGZ1bmN0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwog
fQogCitzdGF0aWMgSlNWYWx1ZVJlZiBnZXRDb3VudGVyVmFsdWVCeUlkQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGVsZW1lbnRJZChBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShj
b250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlv
bik7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0
PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsK
KyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVlKEFkb3B0LCBjb250cm9s
bGVyLT5nZXRDb3VudGVyVmFsdWVCeUlkKGVsZW1lbnRJZC5nZXQoKSkpOworICAgIHJldHVybiBK
U1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBjb3VudGVyVmFsdWUuZ2V0KCkpOworfQorCiBzdGF0
aWMgSlNWYWx1ZVJlZiBncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBXaW5kb3dzIGltcGxl
bWVudGF0aW9uCkBAIC0xMTg3LDYgKzEyMDAsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAiZW5jb2RlSG9zdE5h
bWUiLCBlbmNvZGVIb3N0TmFtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImV2YWx1YXRl
SW5XZWJJbnNwZWN0b3IiLCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAiZXhlY0NvbW1hbmQiLCBleGVjQ29tbWFuZENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisg
ICAgICAgIHsgImdldENvdW50ZXJWYWx1ZUJ5SWQiLCBnZXRDb3VudGVyVmFsdWVCeUlkQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAiZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lv
biIsIGdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LCAK
ICAgICAgICAgeyAiaXNDb21tYW5kRW5hYmxlZCIsIGlzQ29tbWFuZEVuYWJsZWRDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJrZWVwV2ViSGlzdG9yeSIsIGtlZXBXZWJIaXN0b3J5Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCmluZGV4IGU3MzIxNWIuLmFiMGJkZDYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtNTEsNiArNTEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMoKTsKICAgICB2
b2lkIGRpc3BsYXkoKTsKICAgICB2b2lkIGV4ZWNDb21tYW5kKEpTU3RyaW5nUmVmIG5hbWUsIEpT
U3RyaW5nUmVmIHZhbHVlKTsKKyAgICBKU1N0cmluZ1JlZiBnZXRDb3VudGVyVmFsdWVCeUlkKEpT
U3RyaW5nUmVmIGlkKTsKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoSlNTdHJpbmdSZWYgbmFt
ZSk7CiAgICAgdm9pZCBrZWVwV2ViSGlzdG9yeSgpOwogICAgIHZvaWQgbm90aWZ5RG9uZSgpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250
cm9sbGVyTWFjLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RD
b250cm9sbGVyTWFjLm1tCmluZGV4IDAzNzBiODkuLjZlNWI1NmEgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMu
bW0KQEAgLTQyLDYgKzQyLDcgQEAKICNpbXBvcnQgPFdlYktpdC9ET01FbGVtZW50Lmg+CiAjaW1w
b3J0IDxXZWJLaXQvV2ViQXBwbGljYXRpb25DYWNoZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkJh
Y2tGb3J3YXJkTGlzdC5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYkNvcmVTdGF0aXN0aWNzLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViRGF0YWJhc2VNYW5hZ2VyUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dlYkRhdGFTb3VyY2UuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZS5oPgpAQCAtMTUx
LDYgKzE1MiwxNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5KCkKICAgICBk
aXNwbGF5V2ViVmlldygpOwogfQogCitKU1N0cmluZ1JlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
Z2V0Q291bnRlclZhbHVlQnlJZChKU1N0cmluZ1JlZiBpZCkKK3sKKyAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGlkQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgaWQpKTsKKyAgICBOU1N0cmluZyAqaWROUyA9IChOU1N0cmluZyAqKWlkQ0YuZ2V0
KCk7CisKKyAgICBET01FbGVtZW50ICplbGVtZW50ID0gW1ttYWluRnJhbWUgRE9NRG9jdW1lbnRd
IGdldEVsZW1lbnRCeUlkOmlkTlNdOworCisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENG
U3RyaW5nKChDRlN0cmluZ1JlZilbbWFpbkZyYW1lIGdldENvdW50ZXJWYWx1ZTplbGVtZW50XSk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmtlZXBXZWJIaXN0b3J5KCkKIHsKICAg
ICBpZiAoIVtXZWJIaXN0b3J5IG9wdGlvbmFsU2hhcmVkSGlzdG9yeV0pIHs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41910</attachid>
            <date>2009-10-26 16:04:41 -0700</date>
            <delta_ts>2009-10-26 16:06:06 -0700</delta_ts>
            <desc>Patch v6</desc>
            <filename>bug-30555-20091027080438.patch</filename>
            <type>text/plain</type>
            <size>28339</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1Yjc3NzY1Li4zN2RkZTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAt
MjIgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdl
dCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQ29udmVy
dCB0d28gcGl4ZWwgdGVzdHMgdG8gZHVtcEFzVGV4dCB0ZXN0cyB1c2luZyBnZXRDb3VudGVyVmFs
dWVCeUlkLgorCisgICAgICAgICogZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAw
LWMtby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3Qx
MjA0LWluY3JlbWVudC0wMC1jLW8uaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG1sOgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVj
dGVkLmNoZWNrc3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9j
b3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAw
LWMtby1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW06IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWlu
Y3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKwogMjAwOS0xMC0yNiAgUmFodWwgS3VjaGhhbCAgPGt1Y2hoYWxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1l
bnQtMDAtYy1vLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jNjkwODNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRl
cnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitU
aGlzIGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMg
Y2hhbmdlcyB0byAnY291bnRlci1pbmNyZW1lbnQnLgorCitQQVNTIGxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKK1BBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIGlzICcyJwor
UEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhy
ZWUnKSBpcyAnMycKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoJ2ZvdXInKSBpcyAnNCcKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0
bWwKaW5kZXggZTJjZDlhMy4uYWE3MWY5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8uaHRtbApAQCAtOSwyNCAr
OSw0MCBAQAogICAuaW5jcmVtZW50IHsgY291bnRlci1pbmNyZW1lbnQ6IGM7IH0KIAogICA8L3N0
eWxlPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCi0gIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNo
ZWNrQ291bnRlclZhbHVlcygpCisgIHsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykiLCAiJzEnIik7CisgICAgICBz
aG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3R3bycpIiwgIicyJyIpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0aHJlZScpIiwgIiczJyIpOworICAgICAgc2hvdWxk
QmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3Vy
JykiLCAiJzQnIik7CisgICAgICBkZWJ1ZygnJyk7CisgICAgICBkZWJ1ZygnVEVTVCBDT01QTEVU
RScpOworICAgICAgLy8gRWxpbWluYXRlIGNvbmZ1c2luZyBtZXNzYWdlcyAoY291bnRlciB2YWx1
ZXMgd29uJ3QgYmUgZHVtcGVkIGJ5IGR1bXBBc1RleHQpLgorICAgICAgdmFyIHZpZXdFbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZpZXciKTsKKyAgICAgIHZpZXdFbGVtZW50LnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQodmlld0VsZW1lbnQpOworICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICB9CiAKLSAgZnVuY3Rpb24gcnVuKCkgeworICBmdW5jdGlv
biBydW4oKQorICB7CiAgICAgICB2YXIgdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Iik7CiAgICAgICB2YXIgcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAg
IHMuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJpbmNyZW1lbnQiKTsKKyAgICAgIHMuc2V0QXR0cmli
dXRlKCJpZCIsICJ0d28iKTsKICAgICAgIHMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIm5ldy0iKSk7CiAgICAgICB0Lmluc2VydEJlZm9yZShzLCB0LmNoaWxkTm9kZXMuaXRl
bSgxKSk7CiAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgIGNoZWNrQ291
bnRlclZhbHVlcygpOwogICB9Ci0KLSAgLy8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVj
YXVzZSB0aGUgY291bnRlcnMgYXJlIENTUyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4n
dCBkdW1wZWQgYnkgdGhlIGZ1bmN0aW9uLiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9z
Y3JpcHQ+CiAgPC9oZWFkPgogCkBAIC0zNiwxMSArNTIsMTUgQEAKICB0aGUgcHVycG9zZSBvZiB0
aGlzIHRlc3QuIFRoYXQncyB3aHkgd2UgdXNlIHRpbWVvdXQgZm9yIHRoaXMgdGVzdC4gLS0+CiAg
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4oKScsIDApIj4KIAotIDxwPlRoZSBmb2xsb3dp
bmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZTo8L3A+Ci0KLSA8ZGl2IGlkPSJ0ZXN0Ij48
c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9z
cGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48L2Rpdj4KKyA8cD5UaGlzIGlzIHRo
ZSBXZWJLaXQgdmVyc2lvbiBvZiA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdHlsZS9DU1Mv
VGVzdC9DU1MyLjEvMjAwNjEwMTEvaHRtbDQvdDEyMDQtaW5jcmVtZW50LTAwLWMtby5odG0iPkNT
UyAyLjEgVGVzdCBTdWl0ZTogZHluYW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCc8
L2E+LjwvcD4KIAorIDxkaXYgaWQ9InZpZXciPgorIDxwPlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVz
IHNob3VsZCBiZSB0aGUgc2FtZTo8L3A+CisgPGRpdiBpZD0idGVzdCI+PHNwYW4gaWQ9Im9uZSIg
Y2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGlkPSJ0aHJlZSIgY2xhc3M9ImluY3JlbWVu
dCI+PC9zcGFuPjxzcGFuIGlkPSJmb3VyIiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PC9kaXY+
CiAgPGRpdiBpZD0icmVmZXJlbmNlIj4xLTItbmV3LTMtNC08L2Rpdj4KKyA8L2Rpdj4KKworIDxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCiAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQt
MDEtYy1vLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45
YzE0ZGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUaGlz
IGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hh
bmdlcyB0byAnY291bnRlci1pbmNyZW1lbnQnLgorCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIGlzICcyJworUEFT
UyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUn
KSBpcyAnMycKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bWwKaW5kZXggYTA1ZDhk
OS4uZGY1NGMwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAxLWMtby5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbApAQCAtOSwyMSArOSwzNSBAQAogICAuaW5j
cmVtZW50IHsgY291bnRlci1pbmNyZW1lbnQ6IGM7IH0KIAogICA8L3N0eWxlPgorICA8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCi0gIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVl
cygpCisgIHsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgnb25lJykiLCAiJzEnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIiwgIicyJyIp
OworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCd0aHJlZScpIiwgIiczJyIpOworICAgICAgZGVidWcoJycpOworICAgICAgZGVi
dWcoJ1RFU1QgQ09NUExFVEUnKTsKKyAgICAgIC8vIEVsaW1pbmF0ZSBjb25mdXNpbmcgbWVzc2Fn
ZXMgKGNvdW50ZXIgdmFsdWVzIHdvbid0IGJlIGR1bXBlZCBieSBkdW1wQXNUZXh0KS4KKyAgICAg
IHZhciB2aWV3RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2aWV3Iik7CisgICAg
ICB2aWV3RWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHZpZXdFbGVtZW50KTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQogCi0gIGZ1bmN0aW9uIHJ1
bigpIHsKKyAgZnVuY3Rpb24gcnVuKCkKKyAgewogICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGVzdCIpOwogICAgICAgdC5yZW1vdmVDaGlsZCh0LmNoaWxkTm9kZXMuaXRl
bSgxKSk7CiAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgIGNoZWNrQ291
bnRlclZhbHVlcygpOwogICB9Ci0KLSAgLy8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVj
YXVzZSB0aGUgY291bnRlcnMgYXJlIENTUyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4n
dCBkdW1wZWQgYnkgdGhlIGZ1bmN0aW9uLiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9z
Y3JpcHQ+CiAgPC9oZWFkPgogCkBAIC0zMywxMSArNDcsMTUgQEAKICB0aGUgcHVycG9zZSBvZiB0
aGlzIHRlc3QuIFRoYXQncyB3aHkgd2UgdXNlIHRpbWVvdXQgZm9yIHRoaXMgdGVzdC4gLS0+CiAg
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW4oKScsIDApIj4KIAotIDxwPlRoZSBmb2xsb3dp
bmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZTo8L3A+Ci0KLSA8ZGl2IGlkPSJ0ZXN0Ij48
c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+RkFJ
TC08L3NwYW4+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNy
ZW1lbnQiPjwvc3Bhbj48L2Rpdj4KKyA8cD5UaGlzIGlzIHRoZSBXZWJLaXQgdmVyc2lvbiBvZiA8
YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9TdHlsZS9DU1MvVGVzdC9DU1MyLjEvMjAwNjEwMTEv
aHRtbDQvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG0iPkNTUyAyLjEgVGVzdCBTdWl0ZTogZHlu
YW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCc8L2E+LjwvcD4KIAorIDxkaXYgaWQ9
InZpZXciPgorIDxwPlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZTo8
L3A+CisgPGRpdiBpZD0idGVzdCI+PHNwYW4gaWQ9Im9uZSIgY2xhc3M9ImluY3JlbWVudCI+PC9z
cGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPkZBSUwtPC9zcGFuPjxzcGFuIGlkPSJ0d28iIGNs
YXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBpZD0idGhyZWUiIGNsYXNzPSJpbmNyZW1lbnQi
Pjwvc3Bhbj48L2Rpdj4KICA8ZGl2IGlkPSJyZWZlcmVuY2UiPjEtMi0zLTwvZGl2PgorIDwvZGl2
PgorCisgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAKICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGI5MjJhLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNy
ZW1lbnQtMDAtYy1vLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotZWM3ZWU0YTg5NjUxOWY5MTQ4YTUyYmQ0YjA1MTM3MjkKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxOWViZGUuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJz
L3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkODFhMDguLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVu
dC0wMC1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg5NAotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4OTQKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3
ODR4NzAKLSAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgxOAotICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyNzl4MTgKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAyNzk6ICJUaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQg
YmUgdGhlIHNhbWU6IgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzQpIHNpemUgNzg0
eDE4Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAg
ICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAg
ICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgwLDApIHNpemUgOHgxOAotICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4OiAiMSIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQg
KDgsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4LDApIHdpZHRoIDU6
ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgNDV4MTgKLSAg
ICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAg
ICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMTMsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgxMywwKSB3aWR0aCA4OiAiMiIKLSAgICAgICAgICAgIFJlbmRlclRleHQg
YXQgKDIxLDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjEsMCkgd2lk
dGggNTogIi0iCi0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNiwwKSBzaXplIDMy
eDE4Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjYsMCkgd2lkdGggMzI6ICJuZXctIgotICAg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAgICAgICBS
ZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAgICAg
UmVuZGVyQ291bnRlciBhdCAoNTgsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg1OCwwKSB3aWR0aCA4OiAiMyIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDY2LDAp
IHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjYsMCkgd2lkdGggNTogIi0i
Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAg
ICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAgICAg
ICAgICBSZW5kZXJDb3VudGVyIGF0ICg3MSwwKSBzaXplIDh4MTgKLSAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDcxLDApIHdpZHRoIDg6ICI0IgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAo
NzksMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3OSwwKSB3aWR0aCA1
OiAiLSIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDUyKSBzaXplIDc4NHgxOAotICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4NHgxOAotICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDg0OiAiMS0yLW5ldy0zLTQtIgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9j
c3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTcwZTJlMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMt
by1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTQ4NzQwN2I2
ODE3Y2NkYjE2N2M3OGU3NTAzNWY2MzZhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0
LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjBmNGI2Li4wMDAwMDAwCkJpbmFyeSBmaWxl
cyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNy
ZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDYyYTc5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDk0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDcwCi0gICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjc5eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMjc5OiAiVGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1l
OiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBzaXplIDc4NHgxOAotICAgICAg
ICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAgICAgICBSZW5k
ZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAgICAgUmVu
ZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDh4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggODogIjEiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg4LDApIHNpemUg
NXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOCwwKSB3aWR0aCA1OiAiLSIKLSAgICAg
ICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAgICAgICAgUmVu
ZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAgICAgICAgIFJl
bmRlckNvdW50ZXIgYXQgKDEzLDApIHNpemUgOHgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMTMsMCkgd2lkdGggODogIjIiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyMSwwKSBz
aXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIxLDApIHdpZHRoIDU6ICItIgot
ICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAgICAg
ICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAgICAg
ICAgUmVuZGVyQ291bnRlciBhdCAoMjYsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgyNiwwKSB3aWR0aCA4OiAiMyIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDM0
LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzQsMCkgd2lkdGggNTog
Ii0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA3ODR4MTgKLSAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzl4MTgKLSAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAzOTogIjEtMi0zLSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZhZmFjNmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAw
eDEwMwotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAzCi0gICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDc5Ci0gICAgICBSZW5kZXJCbG9jayB7
UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMzEweDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzEwOiAi
VGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDM3KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJJbmxpbmUg
e1NQQU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVy
YXRlZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAo
MCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTog
IjEiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg5LDApIHNpemUgNXgyMQotICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoOSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5l
IHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ5eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5l
cmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQg
KDE0LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsMCkgd2lkdGgg
OTogIjIiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgyMywwKSBzaXplIDV4MjEKLSAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDIzLDApIHdpZHRoIDU6ICItIgotICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMjgsMCkgc2l6ZSAzNXgyMQotICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDI4LDApIHdpZHRoIDM1OiAibmV3LSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDYzLDApIHNp
emUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjMsMCkgd2lkdGggOTogIjMiCi0g
ICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg3MiwwKSBzaXplIDV4MjEKLSAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDcyLDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQ
QU59IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRl
ZCkgYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoNzcs
MCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg3NywwKSB3aWR0aCA5OiAi
NCIKLSAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDg2LDApIHNpemUgNXgyMQotICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoODYsMCkgd2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCw1OCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgOTF4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA5MTog
IjEtMi1uZXctMy00LSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMt
by1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwOGZiMTIuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCAr
MCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCww
KSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDEwMwotICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAzCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsMTYpIHNpemUgNzg0eDc5Ci0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3
ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzEweDIxCi0g
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzEwOiAiVGhlIGZvbGxvd2luZyB0d28g
bGluZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgw
LDM3KSBzaXplIDc4NHgyMQotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNp
emUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6
ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDl4MjEKLSAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTogIjEiCi0gICAgICAgICAgICBS
ZW5kZXJUZXh0IGF0ICg5LDApIHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
OSwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBz
aXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNp
emUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDE0LDApIHNpemUgOXgyMQot
ICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsMCkgd2lkdGggOTogIjIiCi0gICAgICAgICAg
ICBSZW5kZXJUZXh0IGF0ICgyMywwKSBzaXplIDV4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDIzLDApIHdpZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgw
LDApIHNpemUgMTR4MjEKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAs
MCkgc2l6ZSAxNHgyMQotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMjgsMCkgc2l6ZSA5
eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyOCwwKSB3aWR0aCA5OiAiMyIKLSAgICAg
ICAgICAgIFJlbmRlclRleHQgYXQgKDM3LDApIHNpemUgNXgyMQotICAgICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMzcsMCkgd2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCw1OCkgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgNDJ4MjEKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MjogIjEtMi0zLSIK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTk3YmI3YS4uYWYyNWMxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0xMC0yMiAgU2hpbmljaGlybyBI
YW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gZ2V0IGNvdW50ZXIgdmFsdWVz
IHdpdGggbGF5b3V0VGVzdENvbnRvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAgICBFeHBvc2UgV2ViQ29yZTo6Z2V0Q291
bnRlclZhbHVlIGFzIGEgV2ViQ29yZSBBUEkuCisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhw
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmdldENvdW50ZXJWYWx1ZUluQW5vbnltb3VzKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dENvdW50ZXJWYWx1ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaDoK
KwogMjAwOS0xMC0yNiAgS2Vpc2hpIEhhdHRvcmkgIDxjYXNleS5oYXR0b3JpQGdtYWlsLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuYmFzZS5leHAgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXggYzBh
MGU2Ny4uYThiZWQ1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cApAQCAtNDIyLDYgKzQyMiw3IEBAIF9fWk43V2ViQ29y
ZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazExc2V0UG9zaXRpb25FTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfMTFHZW9wb3NpCiBfX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1vY2s4c2V0RXJy
b3JFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTNQb3NpdGlvbkVycm9yRUVFCiBfX1pON1dlYkNvcmUy
MlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQyNmNhblN1c3BlbmRBY3RpdmVET01PYmplY3RzRXYKIF9f
Wk43V2ViQ29yZTIyYXBwbGljYXRpb25Jc0FwcGxlTWFpbEV2CitfX1pON1dlYkNvcmUyMmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRFUE5TXzdFbGVtZW50RQogX19aTjdXZWJDb3JlMjJjcmVhdGVGcmFn
bWVudEZyb21UZXh0RVBOU181UmFuZ2VFUktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMjJleHRl
cm5hbFJlcHJlc2VudGF0aW9uRVBOU18xMlJlbmRlck9iamVjdEUKIF9fWk43V2ViQ29yZTIzQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UxNHNldE1heGltdW1TaXplRXgKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggNWM2ZTczOC4uYjdhYjE5MSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ2hhcmFjdGVyTmFtZXMuaCIK
KyNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNTUzLDQgKzU1NCwzMSBAQCBTdHJp
bmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmplY3QqIG8pCiAgICAgcmV0dXJuIHRz
LnJlbGVhc2UoKTsKIH0KIAorc3RhdGljIHZvaWQgd3JpdGVDb3VudGVyVmFsdWVzRnJvbUNoaWxk
cmVuKFRleHRTdHJlYW0mIHN0cmVhbSwgUmVuZGVyT2JqZWN0KiBwYXJlbnQpCit7CisgICAgZm9y
IChSZW5kZXJPYmplY3QqIGNoaWxkID0gcGFyZW50LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNDb3VudGVy
KCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBzdHIodG9SZW5kZXJUZXh0KGNoaWxkKS0+dGV4dCgp
KTsKKyAgICAgICAgICAgIHN0cmVhbSA8PCBzdHI7CisgICAgICAgIH0KKyAgICB9Cit9CisKK1N0
cmluZyBjb3VudGVyVmFsdWVGb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgLy8g
TWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIG5vdCBmcmVlZCBkdXJpbmcgdGhlIGxheW91dC4KKyAg
ICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudFJlZihlbGVtZW50KTsKKyAgICBlbGVtZW50LT5kb2N1
bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKyAgICBUZXh0U3RyZWFtIHN0cmVhbTsKKyAgICAvLyBU
aGUgY291bnRlciByZW5kZXJlcnMgc2hvdWxkIGJlIGNoaWxkcmVuIG9mIGFub255bW91cyBjaGls
ZHJlbgorICAgIC8vIChpLmUuLCA6YmVmb3JlIG9yIDphZnRlciBwc2V1ZG8tZWxlbWVudHMpLgor
ICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkgewor
ICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSByZW5kZXJlci0+Zmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYg
KGNoaWxkLT5pc0Fub255bW91cygpKQorICAgICAgICAgICAgICAgIHdyaXRlQ291bnRlclZhbHVl
c0Zyb21DaGlsZHJlbihzdHJlYW0sIGNoaWxkKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1
cm4gc3RyZWFtLnJlbGVhc2UoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCmluZGV4IGRhY2EyNTMuLjMyNWYxMDkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmgKQEAgLTI4LDE1ICsyOCwxOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBSZW5kZXJPYmplY3Q7Ci0gICAgY2xhc3MgU3RyaW5n
OwotICAgIGNsYXNzIFRleHRTdHJlYW07CitjbGFzcyBFbGVtZW50OworY2xhc3MgUmVuZGVyT2Jq
ZWN0OworY2xhc3MgU3RyaW5nOworY2xhc3MgVGV4dFN0cmVhbTsKIAotICAgIFN0cmluZyBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFJlbmRlck9iamVjdCopOwotICAgIHZvaWQgd3JpdGUoVGV4dFN0
cmVhbSYsIGNvbnN0IFJlbmRlck9iamVjdCYsIGludCBpbmRlbnQgPSAwKTsKK1N0cmluZyBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFJlbmRlck9iamVjdCopOwordm9pZCB3cml0ZShUZXh0U3RyZWFt
JiwgY29uc3QgUmVuZGVyT2JqZWN0JiwgaW50IGluZGVudCA9IDApOwogCi0gICAgLy8gSGVscGVy
IGZ1bmN0aW9uIHNoYXJlZCB3aXRoIFNWR1JlbmRlclRyZWVBc1RleHQKLSAgICBTdHJpbmcgcXVv
dGVBbmRFc2NhcGVOb25QcmludGFibGVzKGNvbnN0IFN0cmluZyYpOworLy8gSGVscGVyIGZ1bmN0
aW9uIHNoYXJlZCB3aXRoIFNWR1JlbmRlclRyZWVBc1RleHQKK1N0cmluZyBxdW90ZUFuZEVzY2Fw
ZU5vblByaW50YWJsZXMoY29uc3QgU3RyaW5nJik7CisKK1N0cmluZyBjb3VudGVyVmFsdWVGb3JF
bGVtZW50KEVsZW1lbnQqKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGVmNDlm
MTguLjA1MWIyMjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTAtMjIgIFNoaW5pY2hpcm8g
SGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdldCBjb3VudGVyIHZhbHVl
cyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQWRkIGdldENvdW50ZXJWYWx1ZSBp
biBXZWJGcmFtZSB0byBjYWxsIFdlYkNvcmU6OmdldENvdW50ZXJWYWx1ZSBmb3IgdGhlIHJvb3Qg
cmVuZGVyZXIuCisKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmg6CisgICAgICAg
ICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgZ2V0Q291
bnRlclZhbHVlOl0pOgorCiAyMDA5LTEwLTI2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaCBiL1dlYktpdC9tYWMvTWlzYy9X
ZWJDb3JlU3RhdGlzdGljcy5oCmluZGV4IGQ0MzcwYmYuLjdhMTg5YWUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oCisrKyBiL1dlYktpdC9tYWMvTWlzYy9X
ZWJDb3JlU3RhdGlzdGljcy5oCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbXBvcnQgPFdlYktpdC9X
ZWJGcmFtZS5oPgogCitAY2xhc3MgRE9NRWxlbWVudDsKKwogQGludGVyZmFjZSBXZWJDb3JlU3Rh
dGlzdGljcyA6IE5TT2JqZWN0CiB7CiB9CkBAIC04MSw0ICs4Myw1IEBACiAKIEBpbnRlcmZhY2Ug
V2ViRnJhbWUgKFdlYktpdERlYnVnKQogLSAoTlNTdHJpbmcgKilyZW5kZXJUcmVlQXNFeHRlcm5h
bFJlcHJlc2VudGF0aW9uOworLSAoTlNTdHJpbmcgKiljb3VudGVyVmFsdWVGb3JFbGVtZW50OihE
T01FbGVtZW50KillbGVtZW50OwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dl
YkNvcmVTdGF0aXN0aWNzLm1tIGIvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1t
CmluZGV4IDU3YjU5YTQuLjZiYWM0NmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJD
b3JlU3RhdGlzdGljcy5tbQorKysgYi9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3Mu
bW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiV2ViQ29yZVN0YXRpc3RpY3MuaCIKIAor
I2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJDYWNoZS5oIgogI2lt
cG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8cnVudGltZS9KU0xvY2suaD4KQEAg
LTI0NCw0ICsyNDUsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICByZXR1cm4gZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihfcHJpdmF0ZS0+Y29yZUZyYW1lLT5jb250ZW50UmVuZGVyZXIo
KSk7CiB9CiAKKy0gKE5TU3RyaW5nICopY291bnRlclZhbHVlRm9yRWxlbWVudDooRE9NRWxlbWVu
dCopZWxlbWVudAoreworICAgIHJldHVybiBjb3VudGVyVmFsdWVGb3JFbGVtZW50KGNvcmUoZWxl
bWVudCkpOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggODQ2YmE0OS4uNDFiNmE3OSAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDA5LTEwLTIyICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UHJvdmlkZSBhIHdheSB0byBnZXQgY291bnRlciB2YWx1ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9s
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1
NQorCisgICAgICAgIERlZmluZSBsYXlvdXRUZXN0Q29udG9sbGVyLmdldENvdW50ZXJWYWx1ZUJ5
SWQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChnZXRDb3VudGVyVmFsdWVCeUlkQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6Z2V0Q291bnRlclZhbHVlQnlJZCk6CisKIDIwMDktMTAtMjYgIENzYWJhIE9zenRyb2dvbsOh
YyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAppbmRleCBlM2ZlNzI3Li5kYWY4ODhmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zODUsNiArMzg1LDIyIEBA
IHN0YXRpYyBKU1ZhbHVlUmVmIGV4ZWNDb21tYW5kQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBjb3VudGVyVmFsdWVGb3JFbGVtZW50
QnlJZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJn
dW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbGVtZW50SWQoQWRvcHQsIEpT
VmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAg
ICBpZiAoKmV4Y2VwdGlvbikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOworCisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0
KSk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShjb250cm9sbGVy
LT5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChlbGVtZW50SWQuZ2V0KCkpKTsKKyAgICBpZiAo
IWNvdW50ZXJWYWx1ZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBjb3VudGVy
VmFsdWUuZ2V0KCkpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBncmFudERlc2t0b3BOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewog
ICAgIC8vIEhhcyBXaW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0xMjAxLDYgKzEyMTcsNyBAQCBK
U1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkK
ICAgICAgICAgeyAiZXZhbHVhdGVJbldlYkluc3BlY3RvciIsIGV2YWx1YXRlSW5XZWJJbnNwZWN0
b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRX
b3JsZCIsIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAiZXhlY0NvbW1hbmQiLCBleGVjQ29tbWFuZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAg
ICAgIHsgImNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgY291bnRlclZhbHVlRm9yRWxlbWVu
dEJ5SWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJncmFudERlc2t0b3BOb3RpZmljYXRp
b25QZXJtaXNzaW9uIiwgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sIAogICAgICAgICB7ICJpc0NvbW1hbmRFbmFibGVkIiwgaXNDb21tYW5kRW5hYmxl
ZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImtlZXBXZWJIaXN0b3J5Iiwga2VlcFdlYkhp
c3RvcnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNmMzNGIxYi4uNzlmZmI5OSAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0z
MCw2ICszMCw3IEBACiAjZGVmaW5lIExheW91dFRlc3RDb250cm9sbGVyX2gKIAogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHN0
cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+CkBAIC01MSw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwogICAgIHZvaWQgZGlzcGxheSgpOwog
ICAgIHZvaWQgZXhlY0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgdmFsdWUp
OworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZChKU1N0cmluZ1JlZiBpZCk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKEpTU3RyaW5nUmVm
IG5hbWUpOwogICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICB2b2lkIG5vdGlmeURvbmUo
KTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0
Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRU
ZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBjYjk0NGU5Li40MTE3MDk5IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0K
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tCkBAIC00Miw2ICs0Miw3IEBACiAjaW1wb3J0IDxXZWJLaXQvRE9NRWxlbWVudC5oPgog
I2ltcG9ydCA8V2ViS2l0L1dlYkFwcGxpY2F0aW9uQ2FjaGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
ZWJCYWNrRm9yd2FyZExpc3QuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJDb3JlU3RhdGlzdGljcy5o
PgogI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFiYXNlTWFuYWdlclByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9XZWJEYXRhU291cmNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWUuaD4KQEAg
LTE1MSw2ICsxNTIsMTkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAg
ICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KIAorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91
dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBp
ZCkKK3sKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGlkQ0YoQWRvcHRDRiwgSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaWQpKTsKKyAgICBOU1N0cmluZyAqaWRO
UyA9IChOU1N0cmluZyAqKWlkQ0YuZ2V0KCk7CisKKyAgICBET01FbGVtZW50ICplbGVtZW50ID0g
W1ttYWluRnJhbWUgRE9NRG9jdW1lbnRdIGdldEVsZW1lbnRCeUlkOmlkTlNdOworICAgIGlmICgh
ZWxlbWVudCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gY291bnRlclZhbHVlKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZT
dHJpbmdSZWYpW21haW5GcmFtZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50OmVsZW1lbnRdKSk7Cisg
ICAgcmV0dXJuIGNvdW50ZXJWYWx1ZTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
a2VlcFdlYkhpc3RvcnkoKQogewogICAgIGlmICghW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRI
aXN0b3J5XSkgew==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41912</attachid>
            <date>2009-10-26 16:09:33 -0700</date>
            <delta_ts>2009-10-26 22:01:32 -0700</delta_ts>
            <desc>Patch v7</desc>
            <filename>bug-30555-20091027080931.patch</filename>
            <type>text/plain</type>
            <size>28384</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1Yjc3NzY1Li5kYWZjN2E4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAt
MjYgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdl
dCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQ29udmVy
dCB0d28gcGl4ZWwgdGVzdHMgdG8gZHVtcEFzVGV4dCB0ZXN0cyB1c2luZyBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZC4KKworICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jb3Vu
dGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMt
by1leHBlY3RlZC5jaGVja3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmc6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNr
c3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRl
cnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisKIDIwMDktMTAtMjYgIFJhaHVsIEt1Y2hoYWwgIDxrdWNo
aGFsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYzY5MDgzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OSBAQAorVGhpcyBpcyB0aGUgV2ViS2l0IHZlcnNpb24gb2YgQ1NTIDIuMSBUZXN0IFN1aXRlOiBk
eW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5jcmVtZW50Jy4KKworUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykgaXMgJzEnCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSBp
cyAnMicKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3RocmVlJykgaXMgJzMnCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykgaXMgJzQnCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMt
by5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAw
LWMtby5odG1sCmluZGV4IGUyY2Q5YTMuLmFhNzFmOTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwKQEAg
LTksMjQgKzksNDAgQEAKICAgLmluY3JlbWVudCB7IGNvdW50ZXItaW5jcmVtZW50OiBjOyB9CiAK
ICAgPC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAotICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CiAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIH0KKworICBmdW5j
dGlvbiBjaGVja0NvdW50ZXJWYWx1ZXMoKQorICB7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVz
dENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIpOwor
ICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnRCeUlkKCd0d28nKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJv
bGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMyciKTsKKyAgICAg
IHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCgnZm91cicpIiwgIic0JyIpOworICAgICAgZGVidWcoJycpOworICAgICAgZGVidWcoJ1RFU1Qg
Q09NUExFVEUnKTsKKyAgICAgIC8vIEVsaW1pbmF0ZSBjb25mdXNpbmcgbWVzc2FnZXMgKGNvdW50
ZXIgdmFsdWVzIHdvbid0IGJlIGR1bXBlZCBieSBkdW1wQXNUZXh0KS4KKyAgICAgIHZhciB2aWV3
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2aWV3Iik7CisgICAgICB2aWV3RWxl
bWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHZpZXdFbGVtZW50KTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQogCi0gIGZ1bmN0aW9uIHJ1bigpIHsKKyAg
ZnVuY3Rpb24gcnVuKCkKKyAgewogICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdCIpOwogICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CiAgICAgICBzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAiaW5jcmVtZW50Iik7CisgICAgICBzLnNl
dEF0dHJpYnV0ZSgiaWQiLCAidHdvIik7CiAgICAgICBzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJuZXctIikpOwogICAgICAgdC5pbnNlcnRCZWZvcmUocywgdC5jaGlsZE5v
ZGVzLml0ZW0oMSkpOwogCiAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICBj
aGVja0NvdW50ZXJWYWx1ZXMoKTsKICAgfQotCi0gIC8vIFdlIGNhbm5vdCB1c2UgZHVtcEFzVGV4
dCgpIGJlY2F1c2UgdGhlIGNvdW50ZXJzIGFyZSBDU1MgcHJvcGVydGllcyBhbmQKLSAgLy8gdGhl
eSBhcmVuJ3QgZHVtcGVkIGJ5IHRoZSBmdW5jdGlvbi4gTGV0J3MgdXNlIHJlbmRlciB0cmVlLi4u
CiAgIDwvc2NyaXB0PgogIDwvaGVhZD4KIApAQCAtMzYsMTEgKzUyLDE1IEBACiAgdGhlIHB1cnBv
c2Ugb2YgdGhpcyB0ZXN0LiBUaGF0J3Mgd2h5IHdlIHVzZSB0aW1lb3V0IGZvciB0aGlzIHRlc3Qu
IC0tPgogIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAwKSI+CiAKLSA8cD5UaGUg
Zm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6PC9wPgotCi0gPGRpdiBpZD0i
dGVzdCI+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1l
bnQiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PC9kaXY+CisgPHA+VGhp
cyBpcyB0aGUgV2ViS2l0IHZlcnNpb24gb2YgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3R5
bGUvQ1NTL1Rlc3QvQ1NTMi4xLzIwMDYxMDExL2h0bWw0L3QxMjA0LWluY3JlbWVudC0wMC1jLW8u
aHRtIj5DU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0byAnY291bnRlci1pbmNy
ZW1lbnQnPC9hPi48L3A+CiAKKyA8ZGl2IGlkPSJ2aWV3Ij4KKyA8cD5UaGUgZm9sbG93aW5nIHR3
byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6PC9wPgorIDxkaXYgaWQ9InRlc3QiPjxzcGFuIGlk
PSJvbmUiIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBpZD0idGhyZWUiIGNsYXNzPSJp
bmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBpZD0iZm91ciIgY2xhc3M9ImluY3JlbWVudCI+PC9zcGFu
PjwvZGl2PgogIDxkaXYgaWQ9InJlZmVyZW5jZSI+MS0yLW5ldy0zLTQtPC9kaXY+CisgPC9kaXY+
CisKKyA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAogIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1j
LW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5j
cmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOWMxNGRkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBA
QAorVGhpcyBpcyB0aGUgV2ViS2l0IHZlcnNpb24gb2YgQ1NTIDIuMSBUZXN0IFN1aXRlOiBkeW5h
bWljIGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5jcmVtZW50Jy4KKworUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykgaXMgJzEnCitQQVNTIGxh
eW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSBpcyAn
MicKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQo
J3RocmVlJykgaXMgJzMnCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG1sCmluZGV4
IGEwNWQ4ZDkuLmRmNTRjMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bWwKQEAgLTksMjEgKzksMzUgQEAK
ICAgLmluY3JlbWVudCB7IGNvdW50ZXItaW5jcmVtZW50OiBjOyB9CiAKICAgPC9zdHlsZT4KKyAg
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIAotICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIH0KKworICBmdW5jdGlvbiBjaGVja0NvdW50
ZXJWYWx1ZXMoKQorICB7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIpOworICAgICAgc2hvdWxkQmUo
ImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSIs
ICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMyciKTsKKyAgICAgIGRlYnVnKCcnKTsKKyAg
ICAgIGRlYnVnKCdURVNUIENPTVBMRVRFJyk7CisgICAgICAvLyBFbGltaW5hdGUgY29uZnVzaW5n
IG1lc3NhZ2VzIChjb3VudGVyIHZhbHVlcyB3b24ndCBiZSBkdW1wZWQgYnkgZHVtcEFzVGV4dCku
CisgICAgICB2YXIgdmlld0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlldyIp
OworICAgICAgdmlld0VsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh2aWV3RWxlbWVudCk7
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgIH0KIAotICBmdW5j
dGlvbiBydW4oKSB7CisgIGZ1bmN0aW9uIHJ1bigpCisgIHsKICAgICAgIHZhciB0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKICAgICAgIHQucmVtb3ZlQ2hpbGQodC5jaGlsZE5v
ZGVzLml0ZW0oMSkpOwogCiAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICBj
aGVja0NvdW50ZXJWYWx1ZXMoKTsKICAgfQotCi0gIC8vIFdlIGNhbm5vdCB1c2UgZHVtcEFzVGV4
dCgpIGJlY2F1c2UgdGhlIGNvdW50ZXJzIGFyZSBDU1MgcHJvcGVydGllcyBhbmQKLSAgLy8gdGhl
eSBhcmVuJ3QgZHVtcGVkIGJ5IHRoZSBmdW5jdGlvbi4gTGV0J3MgdXNlIHJlbmRlciB0cmVlLi4u
CiAgIDwvc2NyaXB0PgogIDwvaGVhZD4KIApAQCAtMzMsMTEgKzQ3LDE1IEBACiAgdGhlIHB1cnBv
c2Ugb2YgdGhpcyB0ZXN0LiBUaGF0J3Mgd2h5IHdlIHVzZSB0aW1lb3V0IGZvciB0aGlzIHRlc3Qu
IC0tPgogIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAwKSI+CiAKLSA8cD5UaGUg
Zm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6PC9wPgotCi0gPGRpdiBpZD0i
dGVzdCI+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1l
bnQiPkZBSUwtPC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBjbGFz
cz0iaW5jcmVtZW50Ij48L3NwYW4+PC9kaXY+CisgPHA+VGhpcyBpcyB0aGUgV2ViS2l0IHZlcnNp
b24gb2YgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3R5bGUvQ1NTL1Rlc3QvQ1NTMi4xLzIw
MDYxMDExL2h0bWw0L3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtIj5DU1MgMi4xIFRlc3QgU3Vp
dGU6IGR5bmFtaWMgY2hhbmdlcyB0byAnY291bnRlci1pbmNyZW1lbnQnPC9hPi48L3A+CiAKKyA8
ZGl2IGlkPSJ2aWV3Ij4KKyA8cD5UaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhl
IHNhbWU6PC9wPgorIDxkaXYgaWQ9InRlc3QiPjxzcGFuIGlkPSJvbmUiIGNsYXNzPSJpbmNyZW1l
bnQiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij5GQUlMLTwvc3Bhbj48c3BhbiBpZD0i
dHdvIiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gaWQ9InRocmVlIiBjbGFzcz0iaW5j
cmVtZW50Ij48L3NwYW4+PC9kaXY+CiAgPGRpdiBpZD0icmVmZXJlbmNlIj4xLTItMy08L2Rpdj4K
KyA8L2Rpdj4KKworIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCiAgPC9ib2R5PgogPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJz
L3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBiOTIyYS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWVjN2VlNGE4OTY1MTlmOTE0OGE1MmJkNGIwNTEzNzI5ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
Y3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1j
LW8tZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTllYmRlLi4w
MDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9j
b3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxs
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDgxYTA4Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1p
bmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAg
QEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgUmVuZGVyQmxvY2sge0hU
TUx9IGF0ICgwLDApIHNpemUgODAweDk0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYp
IHNpemUgNzg0eDcwCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgK
LSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjc5eDE4Ci0gICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjc5OiAiVGhlIGZvbGxvd2luZyB0d28gbGluZXMg
c2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0KSBz
aXplIDc4NHgxOAotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4
MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gx
OAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDh4MTgKLSAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODogIjEiCi0gICAgICAgICAgICBSZW5kZXJU
ZXh0IGF0ICg4LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOCwwKSB3
aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ1
eDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4
MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDEzLDApIHNpemUgOHgxOAotICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTMsMCkgd2lkdGggODogIjIiCi0gICAgICAgICAgICBSZW5k
ZXJUZXh0IGF0ICgyMSwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIx
LDApIHdpZHRoIDU6ICItIgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjYsMCkg
c2l6ZSAzMngxOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI2LDApIHdpZHRoIDMyOiAibmV3
LSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAg
ICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDU4LDApIHNpemUgOHgxOAotICAgICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoNTgsMCkgd2lkdGggODogIjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0
ICg2NiwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDY2LDApIHdpZHRo
IDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4MTgK
LSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gxOAot
ICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoNzEsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg3MSwwKSB3aWR0aCA4OiAiNCIKLSAgICAgICAgICAgIFJlbmRlclRl
eHQgYXQgKDc5LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzksMCkg
d2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgODR4MTgKLSAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4NDogIjEtMi1uZXctMy00LSIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNy
ZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tz
dW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3MGUyZTEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVu
dC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi00
ODc0MDdiNjgxN2NjZGIxNjdjNzhlNzUwMzVmNjM2YQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVy
cy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVk
LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYwZjRiNi4uMDAwMDAwMApCaW5h
cnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ2MmE3OS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAx
LWMtby1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1sYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LWxheWVyIGF0ICgwLDApIHNpemUgODAweDk0Ci0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHg5NAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHg3
MAotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4Ci0gICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI3OXgxOAotICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDI3OTogIlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0
aGUgc2FtZToiCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNCkgc2l6ZSA3ODR4MTgK
LSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAgICAg
ICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAgICAg
ICAgIFJlbmRlckNvdW50ZXIgYXQgKDAsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDg6ICIxIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoOCww
KSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDgsMCkgd2lkdGggNTogIi0i
Ci0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAgICAg
ICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAgICAg
ICAgICBSZW5kZXJDb3VudGVyIGF0ICgxMywwKSBzaXplIDh4MTgKLSAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDEzLDApIHdpZHRoIDg6ICIyIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAo
MjEsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMSwwKSB3aWR0aCA1
OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0g
ICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAg
ICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDI2LDApIHNpemUgOHgxOAotICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMjYsMCkgd2lkdGggODogIjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0
IGF0ICgzNCwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM0LDApIHdp
ZHRoIDU6ICItIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgNzg0eDE4
Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM5eDE4Ci0gICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzk6ICIxLTItMy0iCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAt
Yy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2YWZhYzZmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBz
aXplIDgwMHgxMDMKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEwMwot
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHg3OQotICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDMxMHgyMQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDMxMDogIlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToiCi0gICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNykgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5l
IChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50
ZXIgYXQgKDAsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDk6ICIxIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoOSwwKSBzaXplIDV4MjEKLSAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDksMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRl
cklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0OXgyMQotICAgICAgICAgIFJlbmRlcklubGlu
ZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3Vu
dGVyIGF0ICgxNCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0LDAp
IHdpZHRoIDk6ICIyIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMjMsMCkgc2l6ZSA1eDIx
Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMywwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI4LDApIHNpemUgMzV4MjEKLSAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgyOCwwKSB3aWR0aCAzNTogIm5ldy0iCi0gICAgICAgIFJlbmRlcklubGluZSB7
U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJh
dGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICg2
MywwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDYzLDApIHdpZHRoIDk6
ICIzIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNzIsMCkgc2l6ZSA1eDIxCi0gICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3MiwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5s
aW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChn
ZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIg
YXQgKDc3LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzcsMCkgd2lk
dGggOTogIjQiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg4NiwwKSBzaXplIDV4MjEKLSAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDApIHdpZHRoIDU6ICItIgotICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsNTgpIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDkxeDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggOTE6ICIxLTItbmV3LTMtNC0iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVu
dC0wMS1jLW8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MDhm
YjEyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMzAgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHgxMDMKLSAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEwMwotICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDE2KSBzaXplIDc4NHg3OQotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDAp
IHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMx
MHgyMQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxMDogIlRoZSBmb2xsb3dp
bmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToiCi0gICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwzNykgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAo
MCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgw
LDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDAsMCkgc2l6ZSA5
eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDk6ICIxIgotICAgICAg
ICAgICAgUmVuZGVyVGV4dCBhdCAoOSwwKSBzaXplIDV4MjEKLSAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDksMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAo
MCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgxNCwwKSBzaXpl
IDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0LDApIHdpZHRoIDk6ICIyIgotICAg
ICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMjMsMCkgc2l6ZSA1eDIxCi0gICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgyMywwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFO
fSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQp
IGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDI4LDAp
IHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjgsMCkgd2lkdGggOTogIjMi
Ci0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgzNywwKSBzaXplIDV4MjEKLSAgICAgICAgICAg
ICAgdGV4dCBydW4gYXQgKDM3LDApIHdpZHRoIDU6ICItIgotICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDAsNTgpIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDQyeDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDI6ICIx
LTItMy0iCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGE5N2JiN2EuLmNlMmRmMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTAtMjYgIFNoaW5p
Y2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdldCBjb3VudGVy
IHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgRXhwb3NlIFdlYkNvcmU6
OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQgYXMgYSBXZWJDb3JlIEFQSS4KKworICAgICAgICAqIFdl
YkNvcmUuYmFzZS5leHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVDb3VudGVyVmFsdWVzRnJvbUNoaWxkcmVuKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUcmVlQXNUZXh0Lmg6CisKIDIwMDktMTAtMjYgIEtlaXNoaSBIYXR0b3JpICA8
Y2FzZXkuaGF0dG9yaUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBI
YXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29yZS9X
ZWJDb3JlLmJhc2UuZXhwCmluZGV4IGMwYTBlNjcuLmE4YmVkNTQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAgLTQy
Miw2ICs0MjIsNyBAQCBfX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1vY2sxMXNldFBv
c2l0aW9uRU4zV1RGMTBQYXNzUmVmUHRySU5TXzExR2VvcG9zaQogX19aTjdXZWJDb3JlMjJHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOHNldEVycm9yRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEzUG9zaXRp
b25FcnJvckVFRQogX19aTjdXZWJDb3JlMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0MjZjYW5TdXNw
ZW5kQWN0aXZlRE9NT2JqZWN0c0V2CiBfX1pON1dlYkNvcmUyMmFwcGxpY2F0aW9uSXNBcHBsZU1h
aWxFdgorX19aTjdXZWJDb3JlMjJjb3VudGVyVmFsdWVGb3JFbGVtZW50RVBOU183RWxlbWVudEUK
IF9fWk43V2ViQ29yZTIyY3JlYXRlRnJhZ21lbnRGcm9tVGV4dEVQTlNfNVJhbmdlRVJLTlNfNlN0
cmluZ0UKIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfMTJSZW5kZXJP
YmplY3RFCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTRzZXRNYXhpbXVt
U2l6ZUV4CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNw
cCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDVjNmU3Mzgu
LmI3YWIxOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQu
Y3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgogI2lu
Y2x1ZGUgIkNoYXJhY3Rlck5hbWVzLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
QEAgLTU1Myw0ICs1NTQsMzEgQEAgU3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVuZGVy
T2JqZWN0KiBvKQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKK3N0YXRpYyB2b2lkIHdy
aXRlQ291bnRlclZhbHVlc0Zyb21DaGlsZHJlbihUZXh0U3RyZWFtJiBzdHJlYW0sIFJlbmRlck9i
amVjdCogcGFyZW50KQoreworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IHBhcmVudC0+
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAg
ICAgICBpZiAoY2hpbGQtPmlzQ291bnRlcigpKSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyKHRv
UmVuZGVyVGV4dChjaGlsZCktPnRleHQoKSk7CisgICAgICAgICAgICBzdHJlYW0gPDwgc3RyOwor
ICAgICAgICB9CisgICAgfQorfQorCitTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudChFbGVt
ZW50KiBlbGVtZW50KQoreworICAgIC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyBub3QgZnJl
ZWQgZHVyaW5nIHRoZSBsYXlvdXQuCisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnRSZWYoZWxl
bWVudCk7CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisgICAgVGV4
dFN0cmVhbSBzdHJlYW07CisgICAgLy8gVGhlIGNvdW50ZXIgcmVuZGVyZXJzIHNob3VsZCBiZSBj
aGlsZHJlbiBvZiBhbm9ueW1vdXMgY2hpbGRyZW4KKyAgICAvLyAoaS5lLiwgOmJlZm9yZSBvciA6
YWZ0ZXIgcHNldWRvLWVsZW1lbnRzKS4KKyAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IGVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxk
ID0gcmVuZGVyZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJs
aW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNBbm9ueW1vdXMoKSkKKyAgICAgICAg
ICAgICAgICB3cml0ZUNvdW50ZXJWYWx1ZXNGcm9tQ2hpbGRyZW4oc3RyZWFtLCBjaGlsZCk7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0cmVhbS5yZWxlYXNlKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRy
ZWVBc1RleHQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaAppbmRleCBk
YWNhMjUzLi4zMjVmMTA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCkBAIC0y
OCwxNSArMjgsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgUmVuZGVy
T2JqZWN0OwotICAgIGNsYXNzIFN0cmluZzsKLSAgICBjbGFzcyBUZXh0U3RyZWFtOworY2xhc3Mg
RWxlbWVudDsKK2NsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFN0cmluZzsKK2NsYXNzIFRleHRT
dHJlYW07CiAKLSAgICBTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmplY3Qq
KTsKLSAgICB2b2lkIHdyaXRlKFRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJPYmplY3QmLCBpbnQg
aW5kZW50ID0gMCk7CitTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmplY3Qq
KTsKK3ZvaWQgd3JpdGUoVGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlck9iamVjdCYsIGludCBpbmRl
bnQgPSAwKTsKIAotICAgIC8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgd2l0aCBTVkdSZW5kZXJU
cmVlQXNUZXh0Ci0gICAgU3RyaW5nIHF1b3RlQW5kRXNjYXBlTm9uUHJpbnRhYmxlcyhjb25zdCBT
dHJpbmcmKTsKKy8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgd2l0aCBTVkdSZW5kZXJUcmVlQXNU
ZXh0CitTdHJpbmcgcXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKGNvbnN0IFN0cmluZyYpOwor
CitTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudChFbGVtZW50Kik7CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCBlZjQ5ZjE4Li43YmIyMzFmIDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDA5LTEwLTI2ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBh
IHdheSB0byBnZXQgY291bnRlciB2YWx1ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisgICAg
ICAgIEFkZCBjb3VudGVyVmFsdWVGb3JFbGVtZW50IGluIFdlYkZyYW1lIHRvIGNhbGwgV2ViQ29y
ZTo6Y291bnRlclZhbHVlRm9yRWxlbWVudC4KKworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRp
c3RpY3MuaDoKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAgICAgICAo
LVtXZWJGcmFtZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50Ol0pOgorCiAyMDA5LTEwLTI2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3Rp
Y3MuaCBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oCmluZGV4IGQ0MzcwYmYu
LjdhMTg5YWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5o
CisrKyBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oCkBAIC0zMCw2ICszMCw4
IEBACiAKICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZS5oPgogCitAY2xhc3MgRE9NRWxlbWVudDsK
KwogQGludGVyZmFjZSBXZWJDb3JlU3RhdGlzdGljcyA6IE5TT2JqZWN0CiB7CiB9CkBAIC04MSw0
ICs4Myw1IEBACiAKIEBpbnRlcmZhY2UgV2ViRnJhbWUgKFdlYktpdERlYnVnKQogLSAoTlNTdHJp
bmcgKilyZW5kZXJUcmVlQXNFeHRlcm5hbFJlcHJlc2VudGF0aW9uOworLSAoTlNTdHJpbmcgKilj
b3VudGVyVmFsdWVGb3JFbGVtZW50OihET01FbGVtZW50KillbGVtZW50OwogQGVuZApkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvV2ViS2l0L21hYy9N
aXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmluZGV4IDU3YjU5YTQuLjZiYWM0NmUgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQorKysgYi9XZWJLaXQvbWFj
L01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAi
V2ViQ29yZVN0YXRpc3RpY3MuaCIKIAorI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgiCiAj
aW1wb3J0ICJXZWJDYWNoZS5oIgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9y
dCA8cnVudGltZS9KU0xvY2suaD4KQEAgLTI0NCw0ICsyNDUsOSBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKICAgICByZXR1cm4gZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihfcHJpdmF0ZS0+Y29y
ZUZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSk7CiB9CiAKKy0gKE5TU3RyaW5nICopY291bnRlclZh
bHVlRm9yRWxlbWVudDooRE9NRWxlbWVudCopZWxlbWVudAoreworICAgIHJldHVybiBjb3VudGVy
VmFsdWVGb3JFbGVtZW50KGNvcmUoZWxlbWVudCkpOworfQorCiBAZW5kCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggODQ2YmE0
OS4uNTc5ZjRiNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDA5LTEwLTI2ICBTaGluaWNoaXJv
IEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0byBnZXQgY291bnRlciB2YWx1
ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisgICAgICAgIERlZmluZSBsYXlvdXRUZXN0Q29u
dG9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoY291bnRlclZhbHVlRm9y
RWxlbWVudEJ5SWRDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCk6CisKIDIwMDktMTAtMjYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBl
M2ZlNzI3Li5kYWY4ODhmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zODUsNiArMzg1LDIyIEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIGV4ZWNDb21tYW5kQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGZ1bmN0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwog
fQogCitzdGF0aWMgSlNWYWx1ZVJlZiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZENhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8
IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbGVtZW50SWQoQWRvcHQsIEpTVmFsdWVUb1N0cmlu
Z0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAgICBpZiAoKmV4Y2Vw
dGlvbikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisg
ICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRU
ZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShjb250cm9sbGVyLT5jb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZChlbGVtZW50SWQuZ2V0KCkpKTsKKyAgICBpZiAoIWNvdW50ZXJWYWx1
ZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBjb3VudGVyVmFsdWUuZ2V0KCkp
OworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNz
aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBX
aW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0xMjAxLDYgKzEyMTcsNyBAQCBKU1N0YXRpY0Z1bmN0
aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAi
ZXZhbHVhdGVJbldlYkluc3BlY3RvciIsIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3JDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCIsIGV2YWx1
YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZXhl
Y0NvbW1hbmQiLCBleGVjQ29tbWFuZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9u
IiwgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAog
ICAgICAgICB7ICJpc0NvbW1hbmRFbmFibGVkIiwgaXNDb21tYW5kRW5hYmxlZENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgImtlZXBXZWJIaXN0b3J5Iiwga2VlcFdlYkhpc3RvcnlDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmgKaW5kZXggNmMzNGIxYi4uNzlmZmI5OSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjZGVmaW5lIExheW91dFRlc3RDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTT2JqZWN0UmVmLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNs
dWRlIDx2ZWN0b3I+CkBAIC01MSw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNo
UGVuZGluZ0xvYWRSZXF1ZXN0cygpOwogICAgIHZvaWQgZGlzcGxheSgpOwogICAgIHZvaWQgZXhl
Y0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgdmFsdWUpOworICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1Jl
ZiBpZCk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKEpTU3RyaW5nUmVmIG5hbWUpOwogICAg
IHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICB2b2lkIG5vdGlmeURvbmUoKTsKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQppbmRleCBjYjk0NGU5Li40MTE3MDk5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC00
Miw2ICs0Miw3IEBACiAjaW1wb3J0IDxXZWJLaXQvRE9NRWxlbWVudC5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dlYkFwcGxpY2F0aW9uQ2FjaGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJCYWNrRm9yd2Fy
ZExpc3QuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJDb3JlU3RhdGlzdGljcy5oPgogI2ltcG9ydCA8
V2ViS2l0L1dlYkRhdGFiYXNlTWFuYWdlclByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJE
YXRhU291cmNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWUuaD4KQEAgLTE1MSw2ICsxNTIs
MTkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdl
YlZpZXcoKTsKIH0KIAorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9s
bGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKK3sKKyAgICBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGlkQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmco
a0NGQWxsb2NhdG9yRGVmYXVsdCwgaWQpKTsKKyAgICBOU1N0cmluZyAqaWROUyA9IChOU1N0cmlu
ZyAqKWlkQ0YuZ2V0KCk7CisKKyAgICBET01FbGVtZW50ICplbGVtZW50ID0gW1ttYWluRnJhbWUg
RE9NRG9jdW1lbnRdIGdldEVsZW1lbnRCeUlkOmlkTlNdOworICAgIGlmICghZWxlbWVudCkKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRl
clZhbHVlKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW21h
aW5GcmFtZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50OmVsZW1lbnRdKSk7CisgICAgcmV0dXJuIGNv
dW50ZXJWYWx1ZTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3Rv
cnkoKQogewogICAgIGlmICghW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRIaXN0b3J5XSkgew==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41928</attachid>
            <date>2009-10-26 22:01:38 -0700</date>
            <delta_ts>2009-10-27 09:49:03 -0700</delta_ts>
            <desc>Patch v8</desc>
            <filename>bug-30555-20091027140136.patch</filename>
            <type>text/plain</type>
            <size>30379</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1Yjc3NzY1Li5kYWZjN2E4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAt
MjYgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdl
dCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQ29udmVy
dCB0d28gcGl4ZWwgdGVzdHMgdG8gZHVtcEFzVGV4dCB0ZXN0cyB1c2luZyBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZC4KKworICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jb3Vu
dGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMt
by1leHBlY3RlZC5jaGVja3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmc6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNr
c3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRl
cnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisKIDIwMDktMTAtMjYgIFJhaHVsIEt1Y2hoYWwgIDxrdWNo
aGFsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYzQ1OWM4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTQgQEAKK1RoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9mIENTUyAyLjEgVGVzdCBTdWl0ZTog
ZHluYW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCcuCisKK0JlZm9yZSB0aGUgZHlu
YW1pYyBjaGFuZ2U6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzInCitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykgaXMgJzMnCitBZnRlciB0
aGUgZHluYW1pYyBjaGFuZ2U6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIGlzICcyJworUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSBpcyAnMycKK1BB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXIn
KSBpcyAnNCcKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwKaW5kZXggZTJjZDlh
My4uN2I1ZTdiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAwLWMtby5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8uaHRtbApAQCAtOSwzOCArOSw2NyBAQAogICAuaW5j
cmVtZW50IHsgY291bnRlci1pbmNyZW1lbnQ6IGM7IH0KIAogICA8L3N0eWxlPgorICA8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCi0gIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVl
c0JlZm9yZUNoYW5nZSgpCisgIHsKKyAgICAgIGRlYnVnKCdCZWZvcmUgdGhlIGR5bmFtaWMgY2hh
bmdlOicpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMici
KTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnZm91cicpIiwgIiczJyIpOworICB9CisKKyAgZnVuY3Rpb24gY2hlY2tDb3Vu
dGVyVmFsdWVzQWZ0ZXJDaGFuZ2UoKQorICB7CisgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFt
aWMgY2hhbmdlOicpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAi
JzInIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSIsICInNCci
KTsKKworICAgICAgZGVidWcoJycpOworICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKKyAg
ICAgIC8vIEVsaW1pbmF0ZSBjb25mdXNpbmcgbWVzc2FnZXMgKGNvdW50ZXIgdmFsdWVzIHdvbid0
IGJlIGR1bXBlZCBieSBkdW1wQXNUZXh0KS4KKyAgICAgIHZhciB2aWV3RWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ2aWV3Iik7CisgICAgICB2aWV3RWxlbWVudC5wYXJlbnROb2Rl
LnJlbW92ZUNoaWxkKHZpZXdFbGVtZW50KTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgfQorCisgIGZ1bmN0aW9uIHJ1bigpCisgIHsKKyAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgY2hlY2tDb3VudGVyVmFsdWVzQmVm
b3JlQ2hhbmdlKCk7CiAKLSAgZnVuY3Rpb24gcnVuKCkgewogICAgICAgdmFyIHQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwogICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CiAgICAgICBzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAiaW5jcmVtZW50
Iik7CisgICAgICBzLnNldEF0dHJpYnV0ZSgiaWQiLCAidHdvIik7CiAgICAgICBzLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJuZXctIikpOwogICAgICAgdC5pbnNlcnRCZWZv
cmUocywgdC5jaGlsZE5vZGVzLml0ZW0oMSkpOwogCiAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICBjaGVja0NvdW50ZXJWYWx1ZXNBZnRlckNoYW5nZSgpOwogICB9Ci0KLSAg
Ly8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVjYXVzZSB0aGUgY291bnRlcnMgYXJlIENT
UyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4ndCBkdW1wZWQgYnkgdGhlIGZ1bmN0aW9u
LiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9zY3JpcHQ+CiAgPC9oZWFkPgogCi0gPCEt
LSBUaGlzIHRlc3QgY2hlY2tzIGlmIHRoZSBjb3VudGVycyB3b3JrIHByb3Blcmx5IHdoZW4gc29t
ZSBlbGVtZW50cyBhcmUKLSBhZGRlZC9yZW1vdmVkICphZnRlciogdGhlIGZpcnN0IHJlbmRlcmlu
ZyBmaW5pc2hlcy4gSWYgd2UgcHV0IHRoZSBzY3JpcHQgaW4KLSA8Ym9keT4sIHRoaXMgb25seSBj
aGVja3MgdGhlIHJlc3VsdHMgb2YgZmlyc3QgcmVuZGVyaW5nIGFuZCB0aGlzIGlzbid0Ci0gdGhl
IHB1cnBvc2Ugb2YgdGhpcyB0ZXN0LiBUaGF0J3Mgd2h5IHdlIHVzZSB0aW1lb3V0IGZvciB0aGlz
IHRlc3QuIC0tPgotIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAwKSI+Ci0KLSA8
cD5UaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6PC9wPgorIDxib2R5
IG9ubG9hZD0icnVuKCk7Ij4KIAotIDxkaXYgaWQ9InRlc3QiPjxzcGFuIGNsYXNzPSJpbmNyZW1l
bnQiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gY2xhc3M9Imlu
Y3JlbWVudCI+PC9zcGFuPjwvZGl2PgorIDxwPlRoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9m
IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0eWxlL0NTUy9UZXN0L0NTUzIuMS8yMDA2MTAx
MS9odG1sNC90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bSI+Q1NTIDIuMSBUZXN0IFN1aXRlOiBk
eW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5jcmVtZW50JzwvYT4uPC9wPgogCisgPGRpdiBp
ZD0idmlldyI+CisgPHA+VGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1l
OjwvcD4KKyA8ZGl2IGlkPSJ0ZXN0Ij48c3BhbiBpZD0ib25lIiBjbGFzcz0iaW5jcmVtZW50Ij48
L3NwYW4+PHNwYW4gaWQ9InRocmVlIiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gaWQ9
ImZvdXIiIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48L2Rpdj4KICA8ZGl2IGlkPSJyZWZlcmVu
Y2UiPjEtMi1uZXctMy00LTwvZGl2PgorIDwvZGl2PgorCisgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CiAKICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzZjQ1YjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEt
Yy1vLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUaGlzIGlzIHRoZSBXZWJLaXQgdmVy
c2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0byAnY291bnRlci1p
bmNyZW1lbnQnLgorCitCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOgorUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykgaXMgJzEnCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSBp
cyAnMycKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3RocmVlJykgaXMgJzQnCitBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6CitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScK
K1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3
bycpIGlzICcyJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGhyZWUnKSBpcyAnMycKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0
bWwKaW5kZXggYTA1ZDhkOS4uODUxZjNkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbApAQCAtOSwzNSAr
OSw2MiBAQAogICAuaW5jcmVtZW50IHsgY291bnRlci1pbmNyZW1lbnQ6IGM7IH0KIAogICA8L3N0
eWxlPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCi0gIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNo
ZWNrQ291bnRlclZhbHVlc0JlZm9yZUNoYW5nZSgpCisgIHsKKyAgICAgIGRlYnVnKCdCZWZvcmUg
dGhlIGR5bmFtaWMgY2hhbmdlOicpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKKyAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dHdvJykiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzQnIik7CisgIH0KKworICBmdW5j
dGlvbiBjaGVja0NvdW50ZXJWYWx1ZXNBZnRlckNoYW5nZSgpCisgIHsKKyAgICAgIGRlYnVnKCdB
ZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIpOworICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0d28nKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMyciKTsKKworICAgICAg
ZGVidWcoJycpOworICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKKyAgICAgIC8vIEVsaW1p
bmF0ZSBjb25mdXNpbmcgbWVzc2FnZXMgKGNvdW50ZXIgdmFsdWVzIHdvbid0IGJlIGR1bXBlZCBi
eSBkdW1wQXNUZXh0KS4KKyAgICAgIHZhciB2aWV3RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ2aWV3Iik7CisgICAgICB2aWV3RWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KHZpZXdFbGVtZW50KTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgfQorCisgIGZ1bmN0aW9uIHJ1bigpCisgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgY2hlY2tDb3VudGVyVmFsdWVzQmVmb3JlQ2hhbmdlKCk7
CiAKLSAgZnVuY3Rpb24gcnVuKCkgewogICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpOwogICAgICAgdC5yZW1vdmVDaGlsZCh0LmNoaWxkTm9kZXMuaXRlbSgxKSk7
CiAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgIGNoZWNrQ291bnRlclZh
bHVlc0FmdGVyQ2hhbmdlKCk7CiAgIH0KLQotICAvLyBXZSBjYW5ub3QgdXNlIGR1bXBBc1RleHQo
KSBiZWNhdXNlIHRoZSBjb3VudGVycyBhcmUgQ1NTIHByb3BlcnRpZXMgYW5kCi0gIC8vIHRoZXkg
YXJlbid0IGR1bXBlZCBieSB0aGUgZnVuY3Rpb24uIExldCdzIHVzZSByZW5kZXIgdHJlZS4uLgog
ICA8L3NjcmlwdD4KICA8L2hlYWQ+CiAKLSA8IS0tIFRoaXMgdGVzdCBjaGVja3MgaWYgdGhlIGNv
dW50ZXJzIHdvcmsgcHJvcGVybHkgd2hlbiBzb21lIGVsZW1lbnRzIGFyZQotIGFkZGVkL3JlbW92
ZWQgKmFmdGVyKiB0aGUgZmlyc3QgcmVuZGVyaW5nIGZpbmlzaGVzLiBJZiB3ZSBwdXQgdGhlIHNj
cmlwdCBpbgotIDxib2R5PiwgdGhpcyBvbmx5IGNoZWNrcyB0aGUgcmVzdWx0cyBvZiBmaXJzdCBy
ZW5kZXJpbmcgYW5kIHRoaXMgaXNuJ3QKLSB0aGUgcHVycG9zZSBvZiB0aGlzIHRlc3QuIFRoYXQn
cyB3aHkgd2UgdXNlIHRpbWVvdXQgZm9yIHRoaXMgdGVzdC4gLS0+Ci0gPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KCdydW4oKScsIDApIj4KLQotIDxwPlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNo
b3VsZCBiZSB0aGUgc2FtZTo8L3A+CisgPGJvZHkgb25sb2FkPSJydW4oKTsiPgogCi0gPGRpdiBp
ZD0idGVzdCI+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNy
ZW1lbnQiPkZBSUwtPC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBj
bGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PC9kaXY+CisgPHA+VGhpcyBpcyB0aGUgV2ViS2l0IHZl
cnNpb24gb2YgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3R5bGUvQ1NTL1Rlc3QvQ1NTMi4x
LzIwMDYxMDExL2h0bWw0L3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtIj5DU1MgMi4xIFRlc3Qg
U3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0byAnY291bnRlci1pbmNyZW1lbnQnPC9hPi48L3A+CiAK
KyA8ZGl2IGlkPSJ2aWV3Ij4KKyA8cD5UaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUg
dGhlIHNhbWU6PC9wPgorIDxkaXYgaWQ9InRlc3QiPjxzcGFuIGlkPSJvbmUiIGNsYXNzPSJpbmNy
ZW1lbnQiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij5GQUlMLTwvc3Bhbj48c3BhbiBp
ZD0idHdvIiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gaWQ9InRocmVlIiBjbGFzcz0i
aW5jcmVtZW50Ij48L3NwYW4+PC9kaXY+CiAgPGRpdiBpZD0icmVmZXJlbmNlIj4xLTItMy08L2Rp
dj4KKyA8L2Rpdj4KKworIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCiAgPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBiOTIyYS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWVjN2VlNGE4OTY1MTlmOTE0OGE1MmJkNGIwNTEzNzI5ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTllYmRl
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9u
dWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3Nz
L2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8t
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDgxYTA4Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICsw
LDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDk0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
MTYpIHNpemUgNzg0eDcwCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjc5eDE4Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjc5OiAiVGhlIGZvbGxvd2luZyB0d28gbGlu
ZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0
KSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
MTN4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAx
M3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDh4MTgKLSAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODogIjEiCi0gICAgICAgICAgICBSZW5k
ZXJUZXh0IGF0ICg4LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOCww
KSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDQ1eDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUg
MTN4MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDEzLDApIHNpemUgOHgxOAotICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMsMCkgd2lkdGggODogIjIiCi0gICAgICAgICAgICBS
ZW5kZXJUZXh0IGF0ICgyMSwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDIxLDApIHdpZHRoIDU6ICItIgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjYs
MCkgc2l6ZSAzMngxOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI2LDApIHdpZHRoIDMyOiAi
bmV3LSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0g
ICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAg
ICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDU4LDApIHNpemUgOHgxOAotICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNTgsMCkgd2lkdGggODogIjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0
IGF0ICg2NiwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDY2LDApIHdp
ZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4
MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gx
OAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoNzEsMCkgc2l6ZSA4eDE4Ci0gICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3MSwwKSB3aWR0aCA4OiAiNCIKLSAgICAgICAgICAgIFJlbmRl
clRleHQgYXQgKDc5LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzks
MCkgd2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA3
ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgODR4MTgKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4NDogIjEtMi1uZXctMy00LSIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1p
bmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3MGUyZTEuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBA
Ci00ODc0MDdiNjgxN2NjZGIxNjdjNzhlNzUwMzVmNjM2YQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3Vu
dGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYwZjRiNi4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ2MmE3OS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50
LTAxLWMtby1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDk0Ci0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg5NAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4
NHg3MAotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4Ci0gICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI3OXgxOAotICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDI3OTogIlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBi
ZSB0aGUgc2FtZToiCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNCkgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAg
ICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDAsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDg6ICIxIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAo
OCwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDgsMCkgd2lkdGggNTog
Ii0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAg
ICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAg
ICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgxMywwKSBzaXplIDh4MTgKLSAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDEzLDApIHdpZHRoIDg6ICIyIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBh
dCAoMjEsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMSwwKSB3aWR0
aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4
Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgK
LSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDI2LDApIHNpemUgOHgxOAotICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMjYsMCkgd2lkdGggODogIjMiCi0gICAgICAgICAgICBSZW5kZXJU
ZXh0IGF0ICgzNCwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM0LDAp
IHdpZHRoIDU6ICItIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgNzg0
eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM5eDE4Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzk6ICIxLTItMy0iCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQt
MDAtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2YWZhYzZmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCww
KSBzaXplIDgwMHgxMDMKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEw
MwotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHg3OQotICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDMxMHgyMQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDMxMDogIlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToiCi0g
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNykgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5s
aW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNv
dW50ZXIgYXQgKDAsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDk6ICIxIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoOSwwKSBzaXplIDV4MjEK
LSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDksMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0OXgyMQotICAgICAgICAgIFJlbmRlcklu
bGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJD
b3VudGVyIGF0ICgxNCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0
LDApIHdpZHRoIDk6ICIyIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMjMsMCkgc2l6ZSA1
eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMywwKSB3aWR0aCA1OiAiLSIKLSAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI4LDApIHNpemUgMzV4MjEKLSAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgyOCwwKSB3aWR0aCAzNTogIm5ldy0iCi0gICAgICAgIFJlbmRlcklubGlu
ZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2Vu
ZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0
ICg2MywwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDYzLDApIHdpZHRo
IDk6ICIzIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNzIsMCkgc2l6ZSA1eDIxCi0gICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3MiwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5l
IChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50
ZXIgYXQgKDc3LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzcsMCkg
d2lkdGggOTogIjQiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg4NiwwKSBzaXplIDV4MjEK
LSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDApIHdpZHRoIDU6ICItIgotICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsNTgpIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDkxeDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggOTE6ICIxLTItbmV3LTMtNC0iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
MDhmYjEyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMzAgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHgxMDMKLSAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEwMwotICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHg3OQotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDApIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDMxMHgyMQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxMDogIlRoZSBmb2xs
b3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToiCi0gICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwzNykgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDAsMCkgc2l6
ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDk6ICIxIgotICAg
ICAgICAgICAgUmVuZGVyVGV4dCBhdCAoOSwwKSBzaXplIDV4MjEKLSAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDksMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0g
YXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBh
dCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgxNCwwKSBz
aXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0LDApIHdpZHRoIDk6ICIyIgot
ICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMjMsMCkgc2l6ZSA1eDIxCi0gICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgyMywwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtT
UEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0
ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDI4
LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjgsMCkgd2lkdGggOTog
IjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgzNywwKSBzaXplIDV4MjEKLSAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDM3LDApIHdpZHRoIDU6ICItIgotICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsNTgpIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDQyeDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDI6
ICIxLTItMy0iCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGE5N2JiN2EuLmNlMmRmMDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTAtMjYgIFNo
aW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdldCBjb3Vu
dGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgRXhwb3NlIFdlYkNv
cmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQgYXMgYSBXZWJDb3JlIEFQSS4KKworICAgICAgICAq
IFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVDb3VudGVyVmFsdWVzRnJvbUNoaWxkcmVuKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0Lmg6CisKIDIwMDktMTAtMjYgIEtlaXNoaSBIYXR0b3Jp
ICA8Y2FzZXkuaGF0dG9yaUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3Ro
eSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29y
ZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IGMwYTBlNjcuLmE4YmVkNTQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAg
LTQyMiw2ICs0MjIsNyBAQCBfX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1vY2sxMXNl
dFBvc2l0aW9uRU4zV1RGMTBQYXNzUmVmUHRySU5TXzExR2VvcG9zaQogX19aTjdXZWJDb3JlMjJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOHNldEVycm9yRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEzUG9z
aXRpb25FcnJvckVFRQogX19aTjdXZWJDb3JlMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0MjZjYW5T
dXNwZW5kQWN0aXZlRE9NT2JqZWN0c0V2CiBfX1pON1dlYkNvcmUyMmFwcGxpY2F0aW9uSXNBcHBs
ZU1haWxFdgorX19aTjdXZWJDb3JlMjJjb3VudGVyVmFsdWVGb3JFbGVtZW50RVBOU183RWxlbWVu
dEUKIF9fWk43V2ViQ29yZTIyY3JlYXRlRnJhZ21lbnRGcm9tVGV4dEVQTlNfNVJhbmdlRVJLTlNf
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfMTJSZW5k
ZXJPYmplY3RFCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTRzZXRNYXhp
bXVtU2l6ZUV4CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDVjNmU3
MzguLmI3YWIxOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgog
I2luY2x1ZGUgIkNoYXJhY3Rlck5hbWVzLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKQEAgLTU1Myw0ICs1NTQsMzEgQEAgU3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVu
ZGVyT2JqZWN0KiBvKQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKK3N0YXRpYyB2b2lk
IHdyaXRlQ291bnRlclZhbHVlc0Zyb21DaGlsZHJlbihUZXh0U3RyZWFtJiBzdHJlYW0sIFJlbmRl
ck9iamVjdCogcGFyZW50KQoreworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IHBhcmVu
dC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewor
ICAgICAgICBpZiAoY2hpbGQtPmlzQ291bnRlcigpKSB7CisgICAgICAgICAgICBTdHJpbmcgc3Ry
KHRvUmVuZGVyVGV4dChjaGlsZCktPnRleHQoKSk7CisgICAgICAgICAgICBzdHJlYW0gPDwgc3Ry
OworICAgICAgICB9CisgICAgfQorfQorCitTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudChF
bGVtZW50KiBlbGVtZW50KQoreworICAgIC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyBub3Qg
ZnJlZWQgZHVyaW5nIHRoZSBsYXlvdXQuCisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnRSZWYo
ZWxlbWVudCk7CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisgICAg
VGV4dFN0cmVhbSBzdHJlYW07CisgICAgLy8gVGhlIGNvdW50ZXIgcmVuZGVyZXJzIHNob3VsZCBi
ZSBjaGlsZHJlbiBvZiBhbm9ueW1vdXMgY2hpbGRyZW4KKyAgICAvLyAoaS5lLiwgOmJlZm9yZSBv
ciA6YWZ0ZXIgcHNldWRvLWVsZW1lbnRzKS4KKyAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNo
aWxkID0gcmVuZGVyZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNBbm9ueW1vdXMoKSkKKyAgICAg
ICAgICAgICAgICB3cml0ZUNvdW50ZXJWYWx1ZXNGcm9tQ2hpbGRyZW4oc3RyZWFtLCBjaGlsZCk7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0cmVhbS5yZWxlYXNlKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRyZWVBc1RleHQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaAppbmRl
eCBkYWNhMjUzLi4zMjVmMTA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCkBA
IC0yOCwxNSArMjgsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgUmVu
ZGVyT2JqZWN0OwotICAgIGNsYXNzIFN0cmluZzsKLSAgICBjbGFzcyBUZXh0U3RyZWFtOworY2xh
c3MgRWxlbWVudDsKK2NsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFN0cmluZzsKK2NsYXNzIFRl
eHRTdHJlYW07CiAKLSAgICBTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmpl
Y3QqKTsKLSAgICB2b2lkIHdyaXRlKFRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJPYmplY3QmLCBp
bnQgaW5kZW50ID0gMCk7CitTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmpl
Y3QqKTsKK3ZvaWQgd3JpdGUoVGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlck9iamVjdCYsIGludCBp
bmRlbnQgPSAwKTsKIAotICAgIC8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgd2l0aCBTVkdSZW5k
ZXJUcmVlQXNUZXh0Ci0gICAgU3RyaW5nIHF1b3RlQW5kRXNjYXBlTm9uUHJpbnRhYmxlcyhjb25z
dCBTdHJpbmcmKTsKKy8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgd2l0aCBTVkdSZW5kZXJUcmVl
QXNUZXh0CitTdHJpbmcgcXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKGNvbnN0IFN0cmluZyYp
OworCitTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudChFbGVtZW50Kik7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJL
aXQvbWFjL0NoYW5nZUxvZwppbmRleCBlZjQ5ZjE4Li43YmIyMzFmIDEwMDY0NAotLS0gYS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDA5LTEwLTI2ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlk
ZSBhIHdheSB0byBnZXQgY291bnRlciB2YWx1ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisg
ICAgICAgIEFkZCBjb3VudGVyVmFsdWVGb3JFbGVtZW50IGluIFdlYkZyYW1lIHRvIGNhbGwgV2Vi
Q29yZTo6Y291bnRlclZhbHVlRm9yRWxlbWVudC4KKworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0
YXRpc3RpY3MuaDoKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAgICAg
ICAoLVtXZWJGcmFtZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50Ol0pOgorCiAyMDA5LTEwLTI2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRp
c3RpY3MuaCBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oCmluZGV4IGQ0Mzcw
YmYuLjdhMTg5YWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGlj
cy5oCisrKyBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5oCkBAIC0zMCw2ICsz
MCw4IEBACiAKICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZS5oPgogCitAY2xhc3MgRE9NRWxlbWVu
dDsKKwogQGludGVyZmFjZSBXZWJDb3JlU3RhdGlzdGljcyA6IE5TT2JqZWN0CiB7CiB9CkBAIC04
MSw0ICs4Myw1IEBACiAKIEBpbnRlcmZhY2UgV2ViRnJhbWUgKFdlYktpdERlYnVnKQogLSAoTlNT
dHJpbmcgKilyZW5kZXJUcmVlQXNFeHRlcm5hbFJlcHJlc2VudGF0aW9uOworLSAoTlNTdHJpbmcg
Kiljb3VudGVyVmFsdWVGb3JFbGVtZW50OihET01FbGVtZW50KillbGVtZW50OwogQGVuZApkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvV2ViS2l0L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmluZGV4IDU3YjU5YTQuLjZiYWM0NmUgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQorKysgYi9XZWJLaXQv
bWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9y
dCAiV2ViQ29yZVN0YXRpc3RpY3MuaCIKIAorI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgi
CiAjaW1wb3J0ICJXZWJDYWNoZS5oIgogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2lt
cG9ydCA8cnVudGltZS9KU0xvY2suaD4KQEAgLTI0NCw0ICsyNDUsOSBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKICAgICByZXR1cm4gZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihfcHJpdmF0ZS0+
Y29yZUZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSk7CiB9CiAKKy0gKE5TU3RyaW5nICopY291bnRl
clZhbHVlRm9yRWxlbWVudDooRE9NRWxlbWVudCopZWxlbWVudAoreworICAgIHJldHVybiBjb3Vu
dGVyVmFsdWVGb3JFbGVtZW50KGNvcmUoZWxlbWVudCkpOworfQorCiBAZW5kCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggODQ2
YmE0OS4uNTc5ZjRiNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDA5LTEwLTI2ICBTaGluaWNo
aXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0byBnZXQgY291bnRlciB2
YWx1ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisgICAgICAgIERlZmluZSBsYXlvdXRUZXN0
Q29udG9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWRDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZCk6CisKIDIwMDktMTAtMjYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRl
eCBlM2ZlNzI3Li5kYWY4ODhmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zODUsNiArMzg1LDIyIEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIGV4ZWNDb21tYW5kQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3Vu
dCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKwor
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbGVtZW50SWQoQWRvcHQsIEpTVmFsdWVUb1N0
cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKKyAgICBpZiAoKmV4
Y2VwdGlvbikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwor
CisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlv
dXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShjb250cm9sbGVyLT5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZChlbGVtZW50SWQuZ2V0KCkpKTsKKyAgICBpZiAoIWNvdW50ZXJW
YWx1ZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OworICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBjb3VudGVyVmFsdWUuZ2V0
KCkpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhh
cyBXaW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0xMjAxLDYgKzEyMTcsNyBAQCBKU1N0YXRpY0Z1
bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAg
eyAiZXZhbHVhdGVJbldlYkluc3BlY3RvciIsIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3JDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCIsIGV2
YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
ZXhlY0NvbW1hbmQiLCBleGVjQ29tbWFuZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNz
aW9uIiwgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
IAogICAgICAgICB7ICJpc0NvbW1hbmRFbmFibGVkIiwgaXNDb21tYW5kRW5hYmxlZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgImtlZXBXZWJIaXN0b3J5Iiwga2VlcFdlYkhpc3RvcnlDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKaW5kZXggNmMzNGIxYi4uNzlmZmI5OSAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0zMCw2ICszMCw3
IEBACiAjZGVmaW5lIExheW91dFRlc3RDb250cm9sbGVyX2gKIAogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTT2JqZWN0UmVmLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHN0cmluZz4KICNp
bmNsdWRlIDx2ZWN0b3I+CkBAIC01MSw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3Bh
dGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwogICAgIHZvaWQgZGlzcGxheSgpOwogICAgIHZvaWQg
ZXhlY0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgdmFsdWUpOworICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmlu
Z1JlZiBpZCk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKEpTU3RyaW5nUmVmIG5hbWUpOwog
ICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICB2b2lkIG5vdGlmeURvbmUoKTsKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQppbmRleCBjYjk0NGU5Li40ZDZhNjA5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBA
IC00Miw2ICs0Miw3IEBACiAjaW1wb3J0IDxXZWJLaXQvRE9NRWxlbWVudC5oPgogI2ltcG9ydCA8
V2ViS2l0L1dlYkFwcGxpY2F0aW9uQ2FjaGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJCYWNrRm9y
d2FyZExpc3QuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJDb3JlU3RhdGlzdGljcy5oPgogI2ltcG9y
dCA8V2ViS2l0L1dlYkRhdGFiYXNlTWFuYWdlclByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
ZWJEYXRhU291cmNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWUuaD4KQEAgLTE1MSw2ICsx
NTIsMTkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxh
eVdlYlZpZXcoKTsKIH0KIAorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250
cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKK3sKKyAg
ICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGlkQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJp
bmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaWQpKTsKKyAgICBOU1N0cmluZyAqaWROUyA9IChOU1N0
cmluZyAqKWlkQ0YuZ2V0KCk7CisKKyAgICBET01FbGVtZW50ICplbGVtZW50ID0gW1ttYWluRnJh
bWUgRE9NRG9jdW1lbnRdIGdldEVsZW1lbnRCeUlkOmlkTlNdOworICAgIGlmICghZWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRl
clZhbHVlKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW21h
aW5GcmFtZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50OmVsZW1lbnRdKSk7CisgICAgcmV0dXJuIGNv
dW50ZXJWYWx1ZTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6a2VlcFdlYkhpc3Rv
cnkoKQogewogICAgIGlmICghW1dlYkhpc3Rvcnkgb3B0aW9uYWxTaGFyZWRIaXN0b3J5XSkgew==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41929</attachid>
            <date>2009-10-26 22:02:16 -0700</date>
            <delta_ts>2009-10-27 09:48:58 -0700</delta_ts>
            <desc>For gtk port</desc>
            <filename>bug-30555-20091027140214.patch</filename>
            <type>text/plain</type>
            <size>4339</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNmVmZWRiMi4uYjBjNzYwNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMC0yNiAg
U2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gZ2V0IGNv
dW50ZXIgdmFsdWVzIHdpdGggbGF5b3V0VGVzdENvbnRvbGxlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAgICBGb3IgZ3RrIHBv
cnQuCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJmcmFtZS5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2NvdW50ZXJf
dmFsdWVfZm9yX2VsZW1lbnRfYnlfaWQpOgorCiAyMDA5LTEwLTI2ICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuIFVwZGF0ZSBkb2N1bWVudGF0aW9uIGNvbnRyb2wgZmlsZXMgZm9yIDEuMS4xNi4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCBiL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCA0NGRhYzA0Li4wYmUwYzA0IDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oCkBAIC0yODUsNiArMjg1LDkgQEAgZXh0ZXJuICJDIiB7CiAgICAg
V0VCS0lUX0FQSSBnY2hhcioKICAgICB3ZWJraXRfd2ViX2ZyYW1lX2R1bXBfcmVuZGVyX3RyZWUg
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSk7CiAKKyAgICBXRUJLSVRfQVBJIGdjaGFyKgorICAgIHdl
YmtpdF93ZWJfZnJhbWVfY291bnRlcl92YWx1ZV9mb3JfZWxlbWVudF9ieV9pZCAoV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogaWQpOworCiAgICAgV0VCS0lUX0FQSSBndWludAog
ICAgIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3BlbmRpbmdfdW5sb2FkX2V2ZW50X2NvdW50KFdlYktp
dFdlYkZyYW1lKiBmcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAppbmRl
eCAxNWIxMWU1Li44NDNmOTIzIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCkBA
IC03OTksNiArNzk5LDI4IEBAIGdjaGFyKiB3ZWJraXRfd2ViX2ZyYW1lX2R1bXBfcmVuZGVyX3Ry
ZWUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfZnJhbWVf
Y291bnRlcl92YWx1ZV9mb3JfZWxlbWVudF9ieV9pZDoKKyAqIEBmcmFtZTogYSAjV2ViS2l0V2Vi
RnJhbWUKKyAqIEBpZDogYW4gZWxlbWVudCBJRCBzdHJpbmcKKyAqCisgKiBSZXR1cm4gdmFsdWU6
IFRoZSBjb3VudGVyIHZhbHVlIG9mIGVsZW1lbnQgQGlkIGluIEBmcmFtZQorICovCitnY2hhciog
d2Via2l0X3dlYl9mcmFtZV9jb3VudGVyX3ZhbHVlX2Zvcl9lbGVtZW50X2J5X2lkKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGlkKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBOVUxMKTsKKworICAgIEZyYW1lKiBjb3Jl
RnJhbWUgPSBjb3JlKGZyYW1lKTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICBFbGVtZW50KiBjb3JlRWxlbWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+
Z2V0RWxlbWVudEJ5SWQoQXRvbWljU3RyaW5nKGlkKSk7CisgICAgaWYgKCFjb3JlRWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgU3RyaW5nIGNvdW50ZXJWYWx1ZSA9IGNvdW50ZXJWYWx1
ZUZvckVsZW1lbnQoY29yZUVsZW1lbnQpOworICAgIHJldHVybiBnX3N0cmR1cChjb3VudGVyVmFs
dWUudXRmOCgpLmRhdGEoKSk7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl9mcmFtZV9nZXRfcGVu
ZGluZ191bmxvYWRfZXZlbnRfY291bnQ6CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCiAg
KgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDk0YWRiZGIuLjk2ODMzMWYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0x
MC0yNiAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8g
Z2V0IGNvdW50ZXIgdmFsdWVzIHdpdGggbGF5b3V0VGVzdENvbnRvbGxlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAgICBGb3Ig
Z3RrIHBvcnQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKToKKwogMjAwOS0xMC0yNCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwCmluZGV4IGIwMWRjZjQuLmZkNDEzOTEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNTIs
NiArNTIsNyBAQCB1bnNpZ25lZCBpbnQgd2Via2l0X3dlYl9mcmFtZV9udW1iZXJfb2ZfYWN0aXZl
X2FuaW1hdGlvbnMoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogdm9pZCB3ZWJraXRfYXBwbGljYXRp
b25fY2FjaGVfc2V0X21heGltdW1fc2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CiB1bnNp
Z25lZCBpbnQgd2Via2l0X3dvcmtlcl90aHJlYWRfY291bnQodm9pZCk7CiB2b2lkIHdlYmtpdF93
aGl0ZV9saXN0X2FjY2Vzc19mcm9tX29yaWdpbihjb25zdCBnY2hhciogc291cmNlT3JpZ2luLCBj
b25zdCBnY2hhciogZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgZ2NoYXIqIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CitnY2hhciogd2Via2l0X3dl
Yl9mcmFtZV9jb3VudGVyX3ZhbHVlX2Zvcl9lbGVtZW50X2J5X2lkKFdlYktpdFdlYkZyYW1lKiBm
cmFtZSwgY29uc3QgZ2NoYXIqIGlkKTsKIH0KIAogc3RhdGljIGdjaGFyKiBjb3B5V2ViU2V0dGlu
Z0tleShnY2hhciogcHJlZmVyZW5jZUtleSkKQEAgLTExOCw2ICsxMTksMTcgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSgpCiAgICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KIAor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKK3sKKyAgICBnY2hhciogaWRHQ2hhciA9
IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKGlkKTsKKyAgICBnY2hhciogY291bnRlclZhbHVlR0No
YXIgPSB3ZWJraXRfd2ViX2ZyYW1lX2NvdW50ZXJfdmFsdWVfZm9yX2VsZW1lbnRfYnlfaWQobWFp
bkZyYW1lLCBpZEdDaGFyKTsKKyAgICBnX2ZyZWUoaWRHQ2hhcik7CisgICAgaWYgKCFjb3VudGVy
VmFsdWVHQ2hhcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IGNvdW50ZXJWYWx1ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY291
bnRlclZhbHVlR0NoYXIpKTsKKyAgICByZXR1cm4gY291bnRlclZhbHVlOworfQorCiB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjprZWVwV2ViSGlzdG9yeSgpCiB7CiAgICAgLy8gRklYTUU6IGlt
cGxlbWVudA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41930</attachid>
            <date>2009-10-26 22:03:36 -0700</date>
            <delta_ts>2009-10-27 09:48:53 -0700</delta_ts>
            <desc>For qt port</desc>
            <filename>bug-30555-20091027140334.patch</filename>
            <type>text/plain</type>
            <size>4140</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcCBiL1dlYktpdC9xdC9BcGkv
cXdlYmZyYW1lLmNwcAppbmRleCAzMmZjMjRhLi44MDY1MmE2IDEwMDY0NAotLS0gYS9XZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZS5jcHAKKysrIGIvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCkBA
IC00NzYsNiArNDc2LDE5IEBAIFFTdHJpbmcgUVdlYkZyYW1lOjpyZW5kZXJUcmVlRHVtcCgpIGNv
bnN0CiB9CiAKIC8qIQorICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIGNvdW50ZXIgaW4gdGhlIGVs
ZW1lbnQgc3BlY2lmaWVkIGJ5IFxhIGlkLgorKi8KK1FTdHJpbmcgUVdlYkZyYW1lOjpjb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZChjb25zdCBRU3RyaW5nICZpZCkgY29uc3QKK3sKKyAgICBpZiAo
RG9jdW1lbnQgKmRvY3VtZW50ID0gZC0+ZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgRWxl
bWVudCAqZWxlbWVudCA9IGRvY3VtZW50LT5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50KGVsZW1lbnQpOworICAgIH0KKyAg
ICByZXR1cm4gUVN0cmluZygpOworCit9CisKKy8qIQogICAgIFxwcm9wZXJ0eSBRV2ViRnJhbWU6
OnRpdGxlCiAgICAgXGJyaWVmIHRoZSB0aXRsZSBvZiB0aGUgZnJhbWUgYXMgZGVmaW5lZCBieSB0
aGUgSFRNTCAmbHQ7dGl0bGUmZ3Q7IGVsZW1lbnQKIApAQCAtMTY4Niw0ICsxNjk5LDMgQEAgUVdl
YkZyYW1lICpRV2ViSGl0VGVzdFJlc3VsdDo6ZnJhbWUoKSBjb25zdAogICAgICAgICByZXR1cm4g
MDsKICAgICByZXR1cm4gZC0+ZnJhbWU7CiB9Ci0KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9BcGkv
cXdlYmZyYW1lLmggYi9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oCmluZGV4IDA4Mjg1ZjguLjg5
ZTBiZTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmgKKysrIGIvV2ViS2l0
L3F0L0FwaS9xd2ViZnJhbWUuaApAQCAtMTM4LDYgKzEzOCw3IEBAIHB1YmxpYzoKICAgICBRU3Ry
aW5nIHRvSHRtbCgpIGNvbnN0OwogICAgIFFTdHJpbmcgdG9QbGFpblRleHQoKSBjb25zdDsKICAg
ICBRU3RyaW5nIHJlbmRlclRyZWVEdW1wKCkgY29uc3Q7CisgICAgUVN0cmluZyBjb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZChjb25zdCBRU3RyaW5nICZpZCkgY29uc3Q7CiAKICAgICBRU3RyaW5n
IHRpdGxlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRVcmwoY29uc3QgUVVybCAmdXJsKTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGI2
NzljY2QuLmZjMzM1NDcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDA5LTEwLTI2ICBTaGluaWNoaXJv
IEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0byBnZXQgY291bnRlciB2YWx1
ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisgICAgICAgIEZvciBxdCBwb3J0LgorCisgICAg
ICAgICogQXBpL3F3ZWJmcmFtZS5jcHA6CisgICAgICAgIChRV2ViRnJhbWU6OmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKToKKyAgICAgICAgKFFXZWJIaXRUZXN0UmVzdWx0OjpmcmFtZSk6Cisg
ICAgICAgICogQXBpL3F3ZWJmcmFtZS5oOgorCiAyMDA5LTEwLTI2ICBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGRv
Y3VtZW50YXRpb24gZml4IGZyb20gRGF2aWQgQm9kZGllIChRdCBEb2MgVGVhbSkKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA5
NGFkYmRiLi4xNmMxNTIyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMTAtMjYgIFNoaW5p
Y2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdldCBjb3VudGVy
IHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgRm9yIHF0IHBvcnQuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisK
IDIwMDktMTAtMjQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IGRhYThmY2YuLjI1ZjRh
YjcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC0xMDgsNiArMTA4LDExIEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OndhaXRVbnRpbERvbmUoKQogICAgIG1fdGltZW91dFRpbWVyLnN0YXJ0KDEx
MDAwLCB0aGlzKTsKIH0KIAorUVN0cmluZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZh
bHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgUVN0cmluZyYgaWQpCit7CisgICAgcmV0dXJuIG1fZHJ0
LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpLT5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChpZCk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmtlZXBXZWJIaXN0b3J5KCkKIHsKICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CkBAIC0zMDcsNCArMzEyLDMgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0
IFFWYXJpYW4KICAgICBlbHNlIGlmIChuYW1lID09ICJXZWJLaXREZWZhdWx0Rm9udFNpemUiKQog
ICAgICAgICBzZXR0aW5ncy0+c2V0Rm9udFNpemUoUVdlYlNldHRpbmdzOjpEZWZhdWx0Rm9udFNp
emUsIHZhbHVlLnRvSW50KCkpOwogfQotCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKaW5kZXggMjc4YmEyNy4uY2FiMDE0
YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9p
ZCBkdW1wU3RhdHVzQ2FsbGJhY2tzKCkgeyBtX2R1bXBTdGF0dXNDYWxsYmFja3MgPSB0cnVlOyB9
CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cygpIHsgbV9jYW5PcGVuV2luZG93cyA9IHRydWU7
IH0KICAgICB2b2lkIHdhaXRVbnRpbERvbmUoKTsKKyAgICBRU3RyaW5nIGNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKGNvbnN0IFFTdHJpbmcmIGlkKTsKICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5
KCk7CiAgICAgdm9pZCBub3RpZnlEb25lKCk7CiAgICAgdm9pZCBkdW1wQmFja0ZvcndhcmRMaXN0
KCkgeyBtX2R1bXBCYWNrRm9yd2FyZExpc3QgPSB0cnVlOyB9
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41995</attachid>
            <date>2009-10-27 16:38:27 -0700</date>
            <delta_ts>2009-10-27 17:16:11 -0700</delta_ts>
            <desc>Patch v9</desc>
            <filename>bug-30555-20091028083824.patch</filename>
            <type>text/plain</type>
            <size>41271</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1Yjc3NzY1Li4yN2IyNTc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAt
MjcgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdl
dCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgQ29udmVy
dCB0d28gcGl4ZWwgdGVzdHMgdG8gZHVtcEFzVGV4dCB0ZXN0cyB1c2luZyBjb3VudGVyVmFsdWVG
b3JFbGVtZW50QnlJZC4KKworICAgICAgICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9jb3Vu
dGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvY291
bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMt
by1leHBlY3RlZC5jaGVja3N1bTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFz
dC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5wbmc6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNr
c3VtOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZzogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRl
cnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisKIDIwMDktMTAtMjYgIFJhaHVsIEt1Y2hoYWwgIDxrdWNo
aGFsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQt
aW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYzQ1OWM4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTQgQEAKK1RoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9mIENTUyAyLjEgVGVzdCBTdWl0ZTog
ZHluYW1pYyBjaGFuZ2VzIHRvICdjb3VudGVyLWluY3JlbWVudCcuCisKK0JlZm9yZSB0aGUgZHlu
YW1pYyBjaGFuZ2U6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykgaXMgJzInCitQQVNTIGxheW91dFRlc3RDb250
cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdmb3VyJykgaXMgJzMnCitBZnRlciB0
aGUgZHluYW1pYyBjaGFuZ2U6CitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIu
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3bycpIGlzICcyJworUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSBpcyAnMycKK1BB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXIn
KSBpcyAnNCcKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bWwKaW5kZXggZTJjZDlh
My4uN2I1ZTdiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvY291bnRlcnMvdDEy
MDQtaW5jcmVtZW50LTAwLWMtby5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8uaHRtbApAQCAtOSwzOCArOSw2NyBAQAogICAuaW5j
cmVtZW50IHsgY291bnRlci1pbmNyZW1lbnQ6IGM7IH0KIAogICA8L3N0eWxlPgorICA8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCi0gIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNoZWNrQ291bnRlclZhbHVl
c0JlZm9yZUNoYW5nZSgpCisgIHsKKyAgICAgIGRlYnVnKCdCZWZvcmUgdGhlIGR5bmFtaWMgY2hh
bmdlOicpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1
ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRU
ZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMici
KTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JF
bGVtZW50QnlJZCgnZm91cicpIiwgIiczJyIpOworICB9CisKKyAgZnVuY3Rpb24gY2hlY2tDb3Vu
dGVyVmFsdWVzQWZ0ZXJDaGFuZ2UoKQorICB7CisgICAgICBkZWJ1ZygnQWZ0ZXIgdGhlIGR5bmFt
aWMgY2hhbmdlOicpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKKyAgICAgIHNob3VsZEJlKCJs
YXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndHdvJykiLCAi
JzInIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0
VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ2ZvdXInKSIsICInNCci
KTsKKworICAgICAgZGVidWcoJycpOworICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKKyAg
ICAgIC8vIEVsaW1pbmF0ZSBjb25mdXNpbmcgbWVzc2FnZXMgKGNvdW50ZXIgdmFsdWVzIHdvbid0
IGJlIGR1bXBlZCBieSBkdW1wQXNUZXh0KS4KKyAgICAgIHZhciB2aWV3RWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ2aWV3Iik7CisgICAgICB2aWV3RWxlbWVudC5wYXJlbnROb2Rl
LnJlbW92ZUNoaWxkKHZpZXdFbGVtZW50KTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgfQorCisgIGZ1bmN0aW9uIHJ1bigpCisgIHsKKyAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgY2hlY2tDb3VudGVyVmFsdWVzQmVm
b3JlQ2hhbmdlKCk7CiAKLSAgZnVuY3Rpb24gcnVuKCkgewogICAgICAgdmFyIHQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwogICAgICAgdmFyIHMgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CiAgICAgICBzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAiaW5jcmVtZW50
Iik7CisgICAgICBzLnNldEF0dHJpYnV0ZSgiaWQiLCAidHdvIik7CiAgICAgICBzLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJuZXctIikpOwogICAgICAgdC5pbnNlcnRCZWZv
cmUocywgdC5jaGlsZE5vZGVzLml0ZW0oMSkpOwogCiAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgICBjaGVja0NvdW50ZXJWYWx1ZXNBZnRlckNoYW5nZSgpOwogICB9Ci0KLSAg
Ly8gV2UgY2Fubm90IHVzZSBkdW1wQXNUZXh0KCkgYmVjYXVzZSB0aGUgY291bnRlcnMgYXJlIENT
UyBwcm9wZXJ0aWVzIGFuZAotICAvLyB0aGV5IGFyZW4ndCBkdW1wZWQgYnkgdGhlIGZ1bmN0aW9u
LiBMZXQncyB1c2UgcmVuZGVyIHRyZWUuLi4KICAgPC9zY3JpcHQ+CiAgPC9oZWFkPgogCi0gPCEt
LSBUaGlzIHRlc3QgY2hlY2tzIGlmIHRoZSBjb3VudGVycyB3b3JrIHByb3Blcmx5IHdoZW4gc29t
ZSBlbGVtZW50cyBhcmUKLSBhZGRlZC9yZW1vdmVkICphZnRlciogdGhlIGZpcnN0IHJlbmRlcmlu
ZyBmaW5pc2hlcy4gSWYgd2UgcHV0IHRoZSBzY3JpcHQgaW4KLSA8Ym9keT4sIHRoaXMgb25seSBj
aGVja3MgdGhlIHJlc3VsdHMgb2YgZmlyc3QgcmVuZGVyaW5nIGFuZCB0aGlzIGlzbid0Ci0gdGhl
IHB1cnBvc2Ugb2YgdGhpcyB0ZXN0LiBUaGF0J3Mgd2h5IHdlIHVzZSB0aW1lb3V0IGZvciB0aGlz
IHRlc3QuIC0tPgotIDxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuKCknLCAwKSI+Ci0KLSA8
cD5UaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUgdGhlIHNhbWU6PC9wPgorIDxib2R5
IG9ubG9hZD0icnVuKCk7Ij4KIAotIDxkaXYgaWQ9InRlc3QiPjxzcGFuIGNsYXNzPSJpbmNyZW1l
bnQiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gY2xhc3M9Imlu
Y3JlbWVudCI+PC9zcGFuPjwvZGl2PgorIDxwPlRoaXMgaXMgdGhlIFdlYktpdCB2ZXJzaW9uIG9m
IDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1N0eWxlL0NTUy9UZXN0L0NTUzIuMS8yMDA2MTAx
MS9odG1sNC90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLmh0bSI+Q1NTIDIuMSBUZXN0IFN1aXRlOiBk
eW5hbWljIGNoYW5nZXMgdG8gJ2NvdW50ZXItaW5jcmVtZW50JzwvYT4uPC9wPgogCisgPGRpdiBp
ZD0idmlldyI+CisgPHA+VGhlIGZvbGxvd2luZyB0d28gbGluZXMgc2hvdWxkIGJlIHRoZSBzYW1l
OjwvcD4KKyA8ZGl2IGlkPSJ0ZXN0Ij48c3BhbiBpZD0ib25lIiBjbGFzcz0iaW5jcmVtZW50Ij48
L3NwYW4+PHNwYW4gaWQ9InRocmVlIiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gaWQ9
ImZvdXIiIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48L2Rpdj4KICA8ZGl2IGlkPSJyZWZlcmVu
Y2UiPjEtMi1uZXctMy00LTwvZGl2PgorIDwvZGl2PgorCisgPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+CiAKICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzZjQ1YjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEt
Yy1vLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUaGlzIGlzIHRoZSBXZWJLaXQgdmVy
c2lvbiBvZiBDU1MgMi4xIFRlc3QgU3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0byAnY291bnRlci1p
bmNyZW1lbnQnLgorCitCZWZvcmUgdGhlIGR5bmFtaWMgY2hhbmdlOgorUEFTUyBsYXlvdXRUZXN0
Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgnb25lJykgaXMgJzEnCitQQVNT
IGxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCd0d28nKSBp
cyAnMycKK1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5
SWQoJ3RocmVlJykgaXMgJzQnCitBZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6CitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSBpcyAnMScK
K1BBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3R3
bycpIGlzICcyJworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVt
ZW50QnlJZCgndGhyZWUnKSBpcyAnMycKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLmh0
bWwKaW5kZXggYTA1ZDhkOS4uODUxZjNkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAxLWMtby5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtbApAQCAtOSwzNSAr
OSw2MiBAQAogICAuaW5jcmVtZW50IHsgY291bnRlci1pbmNyZW1lbnQ6IGM7IH0KIAogICA8L3N0
eWxlPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCi0gIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgfQorCisgIGZ1bmN0aW9uIGNo
ZWNrQ291bnRlclZhbHVlc0JlZm9yZUNoYW5nZSgpCisgIHsKKyAgICAgIGRlYnVnKCdCZWZvcmUg
dGhlIGR5bmFtaWMgY2hhbmdlOicpOworICAgICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9s
bGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKCdvbmUnKSIsICInMSciKTsKKyAgICAgIHNo
b3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgn
dHdvJykiLCAiJzMnIik7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENvbnRyb2xsZXIuY291
bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ3RocmVlJykiLCAiJzQnIik7CisgIH0KKworICBmdW5j
dGlvbiBjaGVja0NvdW50ZXJWYWx1ZXNBZnRlckNoYW5nZSgpCisgIHsKKyAgICAgIGRlYnVnKCdB
ZnRlciB0aGUgZHluYW1pYyBjaGFuZ2U6Jyk7CisgICAgICBzaG91bGRCZSgibGF5b3V0VGVzdENv
bnRyb2xsZXIuY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoJ29uZScpIiwgIicxJyIpOworICAg
ICAgc2hvdWxkQmUoImxheW91dFRlc3RDb250cm9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkKCd0d28nKSIsICInMiciKTsKKyAgICAgIHNob3VsZEJlKCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgndGhyZWUnKSIsICInMyciKTsKKworICAgICAg
ZGVidWcoJycpOworICAgICAgZGVidWcoJ1RFU1QgQ09NUExFVEUnKTsKKyAgICAgIC8vIEVsaW1p
bmF0ZSBjb25mdXNpbmcgbWVzc2FnZXMgKGNvdW50ZXIgdmFsdWVzIHdvbid0IGJlIGR1bXBlZCBi
eSBkdW1wQXNUZXh0KS4KKyAgICAgIHZhciB2aWV3RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ2aWV3Iik7CisgICAgICB2aWV3RWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KHZpZXdFbGVtZW50KTsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgfQorCisgIGZ1bmN0aW9uIHJ1bigpCisgIHsKKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgY2hlY2tDb3VudGVyVmFsdWVzQmVmb3JlQ2hhbmdlKCk7
CiAKLSAgZnVuY3Rpb24gcnVuKCkgewogICAgICAgdmFyIHQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdCIpOwogICAgICAgdC5yZW1vdmVDaGlsZCh0LmNoaWxkTm9kZXMuaXRlbSgxKSk7
CiAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgIGNoZWNrQ291bnRlclZh
bHVlc0FmdGVyQ2hhbmdlKCk7CiAgIH0KLQotICAvLyBXZSBjYW5ub3QgdXNlIGR1bXBBc1RleHQo
KSBiZWNhdXNlIHRoZSBjb3VudGVycyBhcmUgQ1NTIHByb3BlcnRpZXMgYW5kCi0gIC8vIHRoZXkg
YXJlbid0IGR1bXBlZCBieSB0aGUgZnVuY3Rpb24uIExldCdzIHVzZSByZW5kZXIgdHJlZS4uLgog
ICA8L3NjcmlwdD4KICA8L2hlYWQ+CiAKLSA8IS0tIFRoaXMgdGVzdCBjaGVja3MgaWYgdGhlIGNv
dW50ZXJzIHdvcmsgcHJvcGVybHkgd2hlbiBzb21lIGVsZW1lbnRzIGFyZQotIGFkZGVkL3JlbW92
ZWQgKmFmdGVyKiB0aGUgZmlyc3QgcmVuZGVyaW5nIGZpbmlzaGVzLiBJZiB3ZSBwdXQgdGhlIHNj
cmlwdCBpbgotIDxib2R5PiwgdGhpcyBvbmx5IGNoZWNrcyB0aGUgcmVzdWx0cyBvZiBmaXJzdCBy
ZW5kZXJpbmcgYW5kIHRoaXMgaXNuJ3QKLSB0aGUgcHVycG9zZSBvZiB0aGlzIHRlc3QuIFRoYXQn
cyB3aHkgd2UgdXNlIHRpbWVvdXQgZm9yIHRoaXMgdGVzdC4gLS0+Ci0gPGJvZHkgb25sb2FkPSJz
ZXRUaW1lb3V0KCdydW4oKScsIDApIj4KLQotIDxwPlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNo
b3VsZCBiZSB0aGUgc2FtZTo8L3A+CisgPGJvZHkgb25sb2FkPSJydW4oKTsiPgogCi0gPGRpdiBp
ZD0idGVzdCI+PHNwYW4gY2xhc3M9ImluY3JlbWVudCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNy
ZW1lbnQiPkZBSUwtPC9zcGFuPjxzcGFuIGNsYXNzPSJpbmNyZW1lbnQiPjwvc3Bhbj48c3BhbiBj
bGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PC9kaXY+CisgPHA+VGhpcyBpcyB0aGUgV2ViS2l0IHZl
cnNpb24gb2YgPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvU3R5bGUvQ1NTL1Rlc3QvQ1NTMi4x
LzIwMDYxMDExL2h0bWw0L3QxMjA0LWluY3JlbWVudC0wMS1jLW8uaHRtIj5DU1MgMi4xIFRlc3Qg
U3VpdGU6IGR5bmFtaWMgY2hhbmdlcyB0byAnY291bnRlci1pbmNyZW1lbnQnPC9hPi48L3A+CiAK
KyA8ZGl2IGlkPSJ2aWV3Ij4KKyA8cD5UaGUgZm9sbG93aW5nIHR3byBsaW5lcyBzaG91bGQgYmUg
dGhlIHNhbWU6PC9wPgorIDxkaXYgaWQ9InRlc3QiPjxzcGFuIGlkPSJvbmUiIGNsYXNzPSJpbmNy
ZW1lbnQiPjwvc3Bhbj48c3BhbiBjbGFzcz0iaW5jcmVtZW50Ij5GQUlMLTwvc3Bhbj48c3BhbiBp
ZD0idHdvIiBjbGFzcz0iaW5jcmVtZW50Ij48L3NwYW4+PHNwYW4gaWQ9InRocmVlIiBjbGFzcz0i
aW5jcmVtZW50Ij48L3NwYW4+PC9kaXY+CiAgPGRpdiBpZD0icmVmZXJlbmNlIj4xLTItMy08L2Rp
dj4KKyA8L2Rpdj4KKworIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCiAgPC9ib2R5PgogPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50
ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50LTAwLWMtby1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBiOTIyYS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAwLWMtby1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWVjN2VlNGE4OTY1MTlmOTE0OGE1MmJkNGIwNTEzNzI5ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0w
MC1jLW8tZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTllYmRl
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nz
cy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9u
dWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3Nz
L2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8t
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZDgxYTA4Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIw
NC1pbmNyZW1lbnQtMDAtYy1vLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICsw
LDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4OTQKLSAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDk0Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
MTYpIHNpemUgNzg0eDcwCi0gICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjc5eDE4Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjc5OiAiVGhlIGZvbGxvd2luZyB0d28gbGlu
ZXMgc2hvdWxkIGJlIHRoZSBzYW1lOiIKLSAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM0
KSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUg
MTN4MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAx
M3gxOAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoMCwwKSBzaXplIDh4MTgKLSAgICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggODogIjEiCi0gICAgICAgICAgICBSZW5k
ZXJUZXh0IGF0ICg4LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoOCww
KSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXpl
IDQ1eDE4Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUg
MTN4MTgKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDEzLDApIHNpemUgOHgxOAotICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTMsMCkgd2lkdGggODogIjIiCi0gICAgICAgICAgICBS
ZW5kZXJUZXh0IGF0ICgyMSwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDIxLDApIHdpZHRoIDU6ICItIgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjYs
MCkgc2l6ZSAzMngxOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDI2LDApIHdpZHRoIDMyOiAi
bmV3LSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0g
ICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAg
ICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDU4LDApIHNpemUgOHgxOAotICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoNTgsMCkgd2lkdGggODogIjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0
IGF0ICg2NiwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDY2LDApIHdp
ZHRoIDU6ICItIgotICAgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTN4
MTgKLSAgICAgICAgICBSZW5kZXJJbmxpbmUgKGdlbmVyYXRlZCkgYXQgKDAsMCkgc2l6ZSAxM3gx
OAotICAgICAgICAgICAgUmVuZGVyQ291bnRlciBhdCAoNzEsMCkgc2l6ZSA4eDE4Ci0gICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICg3MSwwKSB3aWR0aCA4OiAiNCIKLSAgICAgICAgICAgIFJlbmRl
clRleHQgYXQgKDc5LDApIHNpemUgNXgxOAotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzks
MCkgd2lkdGggNTogIi0iCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Mikgc2l6ZSA3
ODR4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgODR4MTgKLSAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA4NDogIjEtMi1uZXctMy00LSIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1p
bmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3MGUyZTEuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMS1jLW8tZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBA
Ci00ODc0MDdiNjgxN2NjZGIxNjdjNzhlNzUwMzVmNjM2YQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3Vu
dGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYwZjRiNi4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMv
dDEyMDQtaW5jcmVtZW50LTAxLWMtby1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2Nzcy9jb3VudGVycy90
MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmQ2MmE3OS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9jc3MvY291bnRlcnMvdDEyMDQtaW5jcmVtZW50
LTAxLWMtby1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDk0Ci0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg5NAotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4
NHg3MAotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4Ci0gICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI3OXgxOAotICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDI3OTogIlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBi
ZSB0aGUgc2FtZToiCi0gICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNCkgc2l6ZSA3ODR4
MTgKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAg
ICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgKLSAgICAg
ICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDAsMCkgc2l6ZSA4eDE4Ci0gICAgICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDg6ICIxIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAo
OCwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDgsMCkgd2lkdGggNTog
Ii0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxM3gxOAotICAg
ICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDEzeDE4Ci0gICAg
ICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgxMywwKSBzaXplIDh4MTgKLSAgICAgICAgICAgICAg
dGV4dCBydW4gYXQgKDEzLDApIHdpZHRoIDg6ICIyIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBh
dCAoMjEsMCkgc2l6ZSA1eDE4Ci0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMSwwKSB3aWR0
aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEzeDE4
Ci0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTN4MTgK
LSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDI2LDApIHNpemUgOHgxOAotICAgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMjYsMCkgd2lkdGggODogIjMiCi0gICAgICAgICAgICBSZW5kZXJU
ZXh0IGF0ICgzNCwwKSBzaXplIDV4MTgKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM0LDAp
IHdpZHRoIDU6ICItIgotICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTIpIHNpemUgNzg0
eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM5eDE4Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzk6ICIxLTItMy0iCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQt
MDAtYy1vLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2YWZhYzZmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMC1jLW8tZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCww
KSBzaXplIDgwMHgxMDMKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEw
MwotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHg3OQotICAgICAgUmVu
ZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDMxMHgyMQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDMxMDogIlRoZSBmb2xsb3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToiCi0g
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNykgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVu
ZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5s
aW5lIChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNv
dW50ZXIgYXQgKDAsMCkgc2l6ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDk6ICIxIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoOSwwKSBzaXplIDV4MjEK
LSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDksMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJl
bmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0OXgyMQotICAgICAgICAgIFJlbmRlcklu
bGluZSAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJD
b3VudGVyIGF0ICgxNCwwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0
LDApIHdpZHRoIDk6ICIyIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMjMsMCkgc2l6ZSA1
eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMywwKSB3aWR0aCA1OiAiLSIKLSAgICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI4LDApIHNpemUgMzV4MjEKLSAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgyOCwwKSB3aWR0aCAzNTogIm5ldy0iCi0gICAgICAgIFJlbmRlcklubGlu
ZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2Vu
ZXJhdGVkKSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0
ICg2MywwKSBzaXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDYzLDApIHdpZHRo
IDk6ICIzIgotICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoNzIsMCkgc2l6ZSA1eDIxCi0gICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICg3MiwwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVy
SW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5l
IChnZW5lcmF0ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50
ZXIgYXQgKDc3LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzcsMCkg
d2lkdGggOTogIjQiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICg4NiwwKSBzaXplIDV4MjEK
LSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDg2LDApIHdpZHRoIDU6ICItIgotICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsNTgpIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDkxeDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggOTE6ICIxLTItbmV3LTMtNC0iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9mYXN0L2Nzcy9jb3VudGVycy90MTIwNC1pbmNyZW1lbnQtMDEtYy1vLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2NvdW50ZXJzL3QxMjA0LWluY3Jl
bWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
MDhmYjEyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvY3NzL2Nv
dW50ZXJzL3QxMjA0LWluY3JlbWVudC0wMS1jLW8tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMzAgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHgxMDMKLSAg
UmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEwMwotICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHg3OQotICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDApIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDMxMHgyMQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxMDogIlRoZSBmb2xs
b3dpbmcgdHdvIGxpbmVzIHNob3VsZCBiZSB0aGUgc2FtZToiCi0gICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwzNykgc2l6ZSA3ODR4MjEKLSAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBh
dCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0ZWQpIGF0
ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDAsMCkgc2l6
ZSA5eDIxCi0gICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDk6ICIxIgotICAg
ICAgICAgICAgUmVuZGVyVGV4dCBhdCAoOSwwKSBzaXplIDV4MjEKLSAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDksMCkgd2lkdGggNTogIi0iCi0gICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0g
YXQgKDAsMCkgc2l6ZSAxNHgyMQotICAgICAgICAgIFJlbmRlcklubGluZSAoZ2VuZXJhdGVkKSBh
dCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgICBSZW5kZXJDb3VudGVyIGF0ICgxNCwwKSBz
aXplIDl4MjEKLSAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDE0LDApIHdpZHRoIDk6ICIyIgot
ICAgICAgICAgICAgUmVuZGVyVGV4dCBhdCAoMjMsMCkgc2l6ZSA1eDIxCi0gICAgICAgICAgICAg
IHRleHQgcnVuIGF0ICgyMywwKSB3aWR0aCA1OiAiLSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtT
UEFOfSBhdCAoMCwwKSBzaXplIDE0eDIxCi0gICAgICAgICAgUmVuZGVySW5saW5lIChnZW5lcmF0
ZWQpIGF0ICgwLDApIHNpemUgMTR4MjEKLSAgICAgICAgICAgIFJlbmRlckNvdW50ZXIgYXQgKDI4
LDApIHNpemUgOXgyMQotICAgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjgsMCkgd2lkdGggOTog
IjMiCi0gICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgzNywwKSBzaXplIDV4MjEKLSAgICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDM3LDApIHdpZHRoIDU6ICItIgotICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsNTgpIHNpemUgNzg0eDIxCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDQyeDIxCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDI6
ICIxLTItMy0iCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGE5N2JiN2EuLjA5YmE5MjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMTAtMjcgIFNo
aW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdldCBjb3Vu
dGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAgICAgRXhwb3NlIFdlYkNv
cmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQgYXMgYSBXZWJDb3JlIEFQSS4KKworICAgICAgICAq
IFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVDb3VudGVyVmFsdWVzRnJvbUNoaWxkcmVuKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0Lmg6CisKIDIwMDktMTAtMjYgIEtlaXNoaSBIYXR0b3Jp
ICA8Y2FzZXkuaGF0dG9yaUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3Ro
eSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29y
ZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IGMwYTBlNjcuLmE4YmVkNTQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAg
LTQyMiw2ICs0MjIsNyBAQCBfX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1vY2sxMXNl
dFBvc2l0aW9uRU4zV1RGMTBQYXNzUmVmUHRySU5TXzExR2VvcG9zaQogX19aTjdXZWJDb3JlMjJH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOHNldEVycm9yRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEzUG9z
aXRpb25FcnJvckVFRQogX19aTjdXZWJDb3JlMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0MjZjYW5T
dXNwZW5kQWN0aXZlRE9NT2JqZWN0c0V2CiBfX1pON1dlYkNvcmUyMmFwcGxpY2F0aW9uSXNBcHBs
ZU1haWxFdgorX19aTjdXZWJDb3JlMjJjb3VudGVyVmFsdWVGb3JFbGVtZW50RVBOU183RWxlbWVu
dEUKIF9fWk43V2ViQ29yZTIyY3JlYXRlRnJhZ21lbnRGcm9tVGV4dEVQTlNfNVJhbmdlRVJLTlNf
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfMTJSZW5k
ZXJPYmplY3RFCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTRzZXRNYXhp
bXVtU2l6ZUV4CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IDVjNmU3
MzguLmI3YWIxOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgog
I2luY2x1ZGUgIkNoYXJhY3Rlck5hbWVzLmgiCisjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKQEAgLTU1Myw0ICs1NTQsMzEgQEAgU3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24oUmVu
ZGVyT2JqZWN0KiBvKQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKK3N0YXRpYyB2b2lk
IHdyaXRlQ291bnRlclZhbHVlc0Zyb21DaGlsZHJlbihUZXh0U3RyZWFtJiBzdHJlYW0sIFJlbmRl
ck9iamVjdCogcGFyZW50KQoreworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IHBhcmVu
dC0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewor
ICAgICAgICBpZiAoY2hpbGQtPmlzQ291bnRlcigpKSB7CisgICAgICAgICAgICBTdHJpbmcgc3Ry
KHRvUmVuZGVyVGV4dChjaGlsZCktPnRleHQoKSk7CisgICAgICAgICAgICBzdHJlYW0gPDwgc3Ry
OworICAgICAgICB9CisgICAgfQorfQorCitTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudChF
bGVtZW50KiBlbGVtZW50KQoreworICAgIC8vIE1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyBub3Qg
ZnJlZWQgZHVyaW5nIHRoZSBsYXlvdXQuCisgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnRSZWYo
ZWxlbWVudCk7CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisgICAg
VGV4dFN0cmVhbSBzdHJlYW07CisgICAgLy8gVGhlIGNvdW50ZXIgcmVuZGVyZXJzIHNob3VsZCBi
ZSBjaGlsZHJlbiBvZiBhbm9ueW1vdXMgY2hpbGRyZW4KKyAgICAvLyAoaS5lLiwgOmJlZm9yZSBv
ciA6YWZ0ZXIgcHNldWRvLWVsZW1lbnRzKS4KKyAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNo
aWxkID0gcmVuZGVyZXItPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRT
aWJsaW5nKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNBbm9ueW1vdXMoKSkKKyAgICAg
ICAgICAgICAgICB3cml0ZUNvdW50ZXJWYWx1ZXNGcm9tQ2hpbGRyZW4oc3RyZWFtLCBjaGlsZCk7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0cmVhbS5yZWxlYXNlKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRyZWVBc1RleHQuaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuaAppbmRl
eCBkYWNhMjUzLi4zMjVmMTA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5oCkBA
IC0yOCwxNSArMjgsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgUmVu
ZGVyT2JqZWN0OwotICAgIGNsYXNzIFN0cmluZzsKLSAgICBjbGFzcyBUZXh0U3RyZWFtOworY2xh
c3MgRWxlbWVudDsKK2NsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFN0cmluZzsKK2NsYXNzIFRl
eHRTdHJlYW07CiAKLSAgICBTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmpl
Y3QqKTsKLSAgICB2b2lkIHdyaXRlKFRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJPYmplY3QmLCBp
bnQgaW5kZW50ID0gMCk7CitTdHJpbmcgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJPYmpl
Y3QqKTsKK3ZvaWQgd3JpdGUoVGV4dFN0cmVhbSYsIGNvbnN0IFJlbmRlck9iamVjdCYsIGludCBp
bmRlbnQgPSAwKTsKIAotICAgIC8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgd2l0aCBTVkdSZW5k
ZXJUcmVlQXNUZXh0Ci0gICAgU3RyaW5nIHF1b3RlQW5kRXNjYXBlTm9uUHJpbnRhYmxlcyhjb25z
dCBTdHJpbmcmKTsKKy8vIEhlbHBlciBmdW5jdGlvbiBzaGFyZWQgd2l0aCBTVkdSZW5kZXJUcmVl
QXNUZXh0CitTdHJpbmcgcXVvdGVBbmRFc2NhcGVOb25QcmludGFibGVzKGNvbnN0IFN0cmluZyYp
OworCitTdHJpbmcgY291bnRlclZhbHVlRm9yRWxlbWVudChFbGVtZW50Kik7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2ZWZlZGIyLi45NTg0MzAxIDEwMDY0NAotLS0gYS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDA5LTEwLTI3ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlk
ZSBhIHdheSB0byBnZXQgY291bnRlciB2YWx1ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisg
ICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViZnJhbWUuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9jb3VudGVyX3ZhbHVlX2Zv
cl9lbGVtZW50X2J5X2lkKToKKwogMjAwOS0xMC0yNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBVbnJldmlld2VkLiBV
cGRhdGUgZG9jdW1lbnRhdGlvbiBjb250cm9sIGZpbGVzIGZvciAxLjEuMTYuCmRpZmYgLS1naXQg
YS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRwcml2YXRlLmgKaW5kZXggNDRkYWMwNC4uMGJlMGMwNCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHByaXZhdGUuaApAQCAtMjg1LDYgKzI4NSw5IEBAIGV4dGVybiAiQyIgewogICAgIFdFQktJVF9B
UEkgZ2NoYXIqCiAgICAgd2Via2l0X3dlYl9mcmFtZV9kdW1wX3JlbmRlcl90cmVlIChXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpOwogCisgICAgV0VCS0lUX0FQSSBnY2hhcioKKyAgICB3ZWJraXRfd2Vi
X2ZyYW1lX2NvdW50ZXJfdmFsdWVfZm9yX2VsZW1lbnRfYnlfaWQgKFdlYktpdFdlYkZyYW1lKiBm
cmFtZSwgY29uc3QgZ2NoYXIqIGlkKTsKKwogICAgIFdFQktJVF9BUEkgZ3VpbnQKICAgICB3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9wZW5kaW5nX3VubG9hZF9ldmVudF9jb3VudChXZWJLaXRXZWJGcmFt
ZSogZnJhbWUpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKaW5kZXggMTViMTFl
NS4uODQzZjkyMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUu
Y3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcApAQCAtNzk5LDYg
Kzc5OSwyOCBAQCBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9kdW1wX3JlbmRlcl90cmVlKFdlYktp
dFdlYkZyYW1lKiBmcmFtZSkKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX2ZyYW1lX2NvdW50ZXJf
dmFsdWVfZm9yX2VsZW1lbnRfYnlfaWQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCisg
KiBAaWQ6IGFuIGVsZW1lbnQgSUQgc3RyaW5nCisgKgorICogUmV0dXJuIHZhbHVlOiBUaGUgY291
bnRlciB2YWx1ZSBvZiBlbGVtZW50IEBpZCBpbiBAZnJhbWUKKyAqLworZ2NoYXIqIHdlYmtpdF93
ZWJfZnJhbWVfY291bnRlcl92YWx1ZV9mb3JfZWxlbWVudF9ieV9pZChXZWJLaXRXZWJGcmFtZSog
ZnJhbWUsIGNvbnN0IGdjaGFyKiBpZCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgTlVMTCk7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0g
Y29yZShmcmFtZSk7CisgICAgaWYgKCFjb3JlRnJhbWUpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgRWxlbWVudCogY29yZUVsZW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1l
bnRCeUlkKEF0b21pY1N0cmluZyhpZCkpOworICAgIGlmICghY29yZUVsZW1lbnQpCisgICAgICAg
IHJldHVybiAwOworICAgIFN0cmluZyBjb3VudGVyVmFsdWUgPSBjb3VudGVyVmFsdWVGb3JFbGVt
ZW50KGNvcmVFbGVtZW50KTsKKyAgICByZXR1cm4gZ19zdHJkdXAoY291bnRlclZhbHVlLnV0Zjgo
KS5kYXRhKCkpOworfQorCisvKioKICAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3BlbmRpbmdfdW5s
b2FkX2V2ZW50X2NvdW50OgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQogICoKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
ZWY0OWYxOC4uZDBjMmUxMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMC0yNyAgU2hpbmlj
aGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gZ2V0IGNvdW50ZXIg
dmFsdWVzIHdpdGggbGF5b3V0VGVzdENvbnRvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA1NTUKKworICAgICAgICBBZGQgY291bnRlclZhbHVl
Rm9yRWxlbWVudCBpbiBXZWJGcmFtZSB0byBjYWxsIFdlYkNvcmU6OmNvdW50ZXJWYWx1ZUZvckVs
ZW1lbnQuCisKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmg6CisgICAgICAgICog
TWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgY291bnRlclZh
bHVlRm9yRWxlbWVudDpdKToKKwogMjAwOS0xMC0yNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLmggYi9XZWJLaXQvbWFjL01p
c2MvV2ViQ29yZVN0YXRpc3RpY3MuaAppbmRleCBkNDM3MGJmLi43YTE4OWFlIDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MuaAorKysgYi9XZWJLaXQvbWFjL01p
c2MvV2ViQ29yZVN0YXRpc3RpY3MuaApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0IDxXZWJL
aXQvV2ViRnJhbWUuaD4KIAorQGNsYXNzIERPTUVsZW1lbnQ7CisKIEBpbnRlcmZhY2UgV2ViQ29y
ZVN0YXRpc3RpY3MgOiBOU09iamVjdAogewogfQpAQCAtODEsNCArODMsNSBAQAogCiBAaW50ZXJm
YWNlIFdlYkZyYW1lIChXZWJLaXREZWJ1ZykKIC0gKE5TU3RyaW5nICopcmVuZGVyVHJlZUFzRXh0
ZXJuYWxSZXByZXNlbnRhdGlvbjsKKy0gKE5TU3RyaW5nICopY291bnRlclZhbHVlRm9yRWxlbWVu
dDooRE9NRWxlbWVudCopZWxlbWVudDsKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlz
Yy9XZWJDb3JlU3RhdGlzdGljcy5tbSBiL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGlj
cy5tbQppbmRleCA1N2I1OWE0Li42YmFjNDZlIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL01pc2Mv
V2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0
aWNzLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbXBvcnQgIldlYkNvcmVTdGF0aXN0aWNzLmgi
CiAKKyNpbXBvcnQgIkRPTUVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViQ2FjaGUuaCIK
ICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKICNpbXBvcnQgPHJ1bnRpbWUvSlNMb2NrLmg+
CkBAIC0yNDQsNCArMjQ1LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgcmV0dXJu
IGV4dGVybmFsUmVwcmVzZW50YXRpb24oX3ByaXZhdGUtPmNvcmVGcmFtZS0+Y29udGVudFJlbmRl
cmVyKCkpOwogfQogCistIChOU1N0cmluZyAqKWNvdW50ZXJWYWx1ZUZvckVsZW1lbnQ6KERPTUVs
ZW1lbnQqKWVsZW1lbnQKK3sKKyAgICByZXR1cm4gY291bnRlclZhbHVlRm9yRWxlbWVudChjb3Jl
KGVsZW1lbnQpKTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2ViZnJh
bWUuY3BwIGIvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuY3BwCmluZGV4IDMyZmMyNGEuLjgwNjUy
YTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9BcGkvcXdlYmZyYW1lLmNwcAorKysgYi9XZWJLaXQv
cXQvQXBpL3F3ZWJmcmFtZS5jcHAKQEAgLTQ3Niw2ICs0NzYsMTkgQEAgUVN0cmluZyBRV2ViRnJh
bWU6OnJlbmRlclRyZWVEdW1wKCkgY29uc3QKIH0KIAogLyohCisgICAgUmV0dXJucyB0aGUgdmFs
dWUgb2YgY291bnRlciBpbiB0aGUgZWxlbWVudCBzcGVjaWZpZWQgYnkgXGEgaWQuCisqLworUVN0
cmluZyBRV2ViRnJhbWU6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IFFTdHJpbmcg
JmlkKSBjb25zdAoreworICAgIGlmIChEb2N1bWVudCAqZG9jdW1lbnQgPSBkLT5mcmFtZS0+ZG9j
dW1lbnQoKSkgeworICAgICAgICBFbGVtZW50ICplbGVtZW50ID0gZG9jdW1lbnQtPmdldEVsZW1l
bnRCeUlkKGlkKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OmNvdW50ZXJWYWx1ZUZvckVsZW1l
bnQoZWxlbWVudCk7CisgICAgfQorICAgIHJldHVybiBRU3RyaW5nKCk7CisKK30KKworLyohCiAg
ICAgXHByb3BlcnR5IFFXZWJGcmFtZTo6dGl0bGUKICAgICBcYnJpZWYgdGhlIHRpdGxlIG9mIHRo
ZSBmcmFtZSBhcyBkZWZpbmVkIGJ5IHRoZSBIVE1MICZsdDt0aXRsZSZndDsgZWxlbWVudAogCkBA
IC0xNjg2LDQgKzE2OTksMyBAQCBRV2ViRnJhbWUgKlFXZWJIaXRUZXN0UmVzdWx0OjpmcmFtZSgp
IGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBkLT5mcmFtZTsKIH0KLQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2ViZnJhbWUuaCBiL1dlYktpdC9xdC9BcGkvcXdlYmZy
YW1lLmgKaW5kZXggMDgyODVmOC4uODllMGJlMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0FwaS9x
d2ViZnJhbWUuaAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJmcmFtZS5oCkBAIC0xMzgsNiArMTM4
LDcgQEAgcHVibGljOgogICAgIFFTdHJpbmcgdG9IdG1sKCkgY29uc3Q7CiAgICAgUVN0cmluZyB0
b1BsYWluVGV4dCgpIGNvbnN0OwogICAgIFFTdHJpbmcgcmVuZGVyVHJlZUR1bXAoKSBjb25zdDsK
KyAgICBRU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IFFTdHJpbmcgJmlk
KSBjb25zdDsKIAogICAgIFFTdHJpbmcgdGl0bGUoKSBjb25zdDsKICAgICB2b2lkIHNldFVybChj
b25zdCBRVXJsICZ1cmwpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKaW5kZXggNjQyYzgzNi4uYzY5YzE3MCAxMDA2NDQKLS0tIGEvV2ViS2l0
L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMDktMTAtMjcgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEg
d2F5IHRvIGdldCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91dFRlc3RDb250b2xsZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNTU1CisKKyAgICAg
ICAgKiBBcGkvcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6Y291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQpOgorICAgICAgICAoUVdlYkhpdFRlc3RSZXN1bHQ6OmZyYW1lKToKKyAg
ICAgICAgKiBBcGkvcXdlYmZyYW1lLmg6CisKIDIwMDktMTAtMjYgIEJlbmphbWluIFBvdWxhaW4g
IDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb3Ig
QXJuZSBWZXN0YsO4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQv
d2luL0NoYW5nZUxvZwppbmRleCBhNWQ0YjdlLi5hYWIyMGM4IDEwMDY0NAotLS0gYS9XZWJLaXQv
d2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDA5LTEwLTI3ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBh
IHdheSB0byBnZXQgY291bnRlciB2YWx1ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisgICAg
ICAgICogSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJGcmFt
ZS5jcHA6CisgICAgICAgIChXZWJGcmFtZTo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQpOgor
ICAgICAgICAqIFdlYkZyYW1lLmg6CisKIDIwMDktMTAtMjUgIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsIGIvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsCmluZGV4IGMyOWVkM2QuLmQ1NjIz
OWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlk
bAorKysgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGwKQEAgLTU3
LDYgKzU3LDcgQEAgdHlwZWRlZiBlbnVtIHsKIGludGVyZmFjZSBJV2ViRnJhbWVQcml2YXRlIDog
SVVua25vd24KIHsKICAgICBIUkVTVUxUIHJlbmRlclRyZWVBc0V4dGVybmFsUmVwcmVzZW50YXRp
b24oW291dCwgcmV0dmFsXSBCU1RSKiByZXN1bHQpOworICAgIEhSRVNVTFQgY291bnRlclZhbHVl
Rm9yRWxlbWVudEJ5SWQoW2luXSBCU1RSIGlkLCBbb3V0LCByZXR2YWxdIEJTVFIqIHJlc3VsdCk7
CiAgICAgSFJFU1VMVCBzY3JvbGxPZmZzZXQoW291dCwgcmV0dmFsXSBTSVpFKiBvZmZzZXQpOwog
CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkbid0IGJlIG5lZWRlZCBvbmNlIElXZWJEb2N1bWVu
dFZpZXcgaXMgaW1wbGVtZW50ZWQuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkZyYW1lLmNw
cCBiL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCmluZGV4IGVhMmM0ZjkuLjhlNzFiOTUgMTAwNjQ0
Ci0tLSBhL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViRnJhbWUu
Y3BwCkBAIC04MjQsNiArODI0LDI1IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRnJh
bWU6OnJlbmRlclRyZWVBc0V4dGVybmFsUmVwcmVzZW50YXRpb24oCiAgICAgcmV0dXJuIFNfT0s7
CiB9CiAKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViRnJhbWU6OmNvdW50ZXJWYWx1ZUZv
ckVsZW1lbnRCeUlkKAorICAgIC8qIFtpbl0gKi8gQlNUUiBpZCwgLyogW3JldHZhbF1bb3V0XSAq
LyBCU1RSICpyZXN1bHQpCit7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBFX1BP
SU5URVI7CisKKyAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZSh0aGlzKTsKKyAgICBpZiAoIWNv
cmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIEVfRkFJTDsKKworICAgIFN0cmluZyBjb3JlSWQgPSBT
dHJpbmcoaWQsIFN5c1N0cmluZ0xlbihpZCkpOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IGNv
cmVGcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoY29yZUlkKTsKKyAgICBpZiAoIWVs
ZW1lbnQpCisgICAgICAgIHJldHVybiBFX0ZBSUw7CisgICAgKnJlc3VsdCA9IEJTdHJpbmcoY291
bnRlclZhbHVlRm9yRWxlbWVudChlbGVtZW50KSkucmVsZWFzZSgpOworICAgIHJldHVybiBTX09L
OworfQorCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYkZyYW1lOjpzY3JvbGxPZmZzZXQo
CiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gU0laRSogb2Zmc2V0KQogewpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCmluZGV4IGZj
Mzc4NWQuLmQwZjZhZGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViRnJhbWUuaAorKysgYi9X
ZWJLaXQvd2luL1dlYkZyYW1lLmgKQEAgLTE1OCw2ICsxNTgsMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW5kZXJUcmVlQXNFeHRlcm5hbFJlcHJl
c2VudGF0aW9uKAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJTVFIgKnJlc3VsdCk7CiAK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY291bnRlclZhbHVlRm9yRWxl
bWVudEJ5SWQoCisgICAgICAgIC8qIFtpbl0gKi8gQlNUUiBpZCwKKyAgICAgICAgLyogW3JldHZh
bF1bb3V0XSAqLyBCU1RSICpyZXN1bHQpOworCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHNjcm9sbE9mZnNldCgKICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBTSVpF
KiBvZmZzZXQpOwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKaW5kZXggODQ2YmE0OS4uZDA4MjY4NiAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDA5LTEwLTI3ICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlk
ZSBhIHdheSB0byBnZXQgY291bnRlciB2YWx1ZXMgd2l0aCBsYXlvdXRUZXN0Q29udG9sbGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDU1NQorCisg
ICAgICAgIERlZmluZSBsYXlvdXRUZXN0Q29udG9sbGVyLmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRC
eUlkLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWRDYWxsYmFjayk6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCk6CisKIDIwMDktMTAtMjYgIENz
YWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBlM2ZlNzI3Li5kYWY4ODhmIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0z
ODUsNiArMzg1LDIyIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGV4ZWNDb21tYW5kQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uCiAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBjb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbGVt
ZW50SWQoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBl
eGNlcHRpb24pKTsKKyAgICBpZiAoKmV4Y2VwdGlvbikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRy
b2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJW
YWx1ZShjb250cm9sbGVyLT5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChlbGVtZW50SWQuZ2V0
KCkpKTsKKyAgICBpZiAoIWNvdW50ZXJWYWx1ZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBjb3VudGVyVmFsdWUuZ2V0KCkpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBncmFu
dERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3Qg
YXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBXaW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0xMjAx
LDYgKzEyMTcsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAiZXZhbHVhdGVJbldlYkluc3BlY3RvciIsIGV2YWx1
YXRlSW5XZWJJbnNwZWN0b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJldmFsdWF0ZVNj
cmlwdEluSXNvbGF0ZWRXb3JsZCIsIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAiZXhlY0NvbW1hbmQiLCBleGVjQ29tbWFuZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCisgICAgICAgIHsgImNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgY291bnRl
clZhbHVlRm9yRWxlbWVudEJ5SWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJncmFudERl
c2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uIiwgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVy
bWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAogICAgICAgICB7ICJpc0NvbW1hbmRFbmFibGVkIiwg
aXNDb21tYW5kRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImtlZXBXZWJIaXN0
b3J5Iiwga2VlcFdlYkhpc3RvcnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNmMzNGIxYi4uNzlm
ZmI5OSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjZGVmaW5lIExheW91dFRlc3RDb250cm9sbGVy
X2gKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+CisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+CkBAIC01MSw2ICs1Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwogICAgIHZv
aWQgZGlzcGxheSgpOwogICAgIHZvaWQgZXhlY0NvbW1hbmQoSlNTdHJpbmdSZWYgbmFtZSwgSlNT
dHJpbmdSZWYgdmFsdWUpOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFi
bGVkKEpTU3RyaW5nUmVmIG5hbWUpOwogICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICB2
b2lkIG5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IGIwMWRjZjQuLmZkNDEz
OTEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNTIsNiArNTIsNyBAQCB1bnNpZ25lZCBpbnQg
d2Via2l0X3dlYl9mcmFtZV9udW1iZXJfb2ZfYWN0aXZlX2FuaW1hdGlvbnMoV2ViS2l0V2ViRnJh
bWUqIGZyYW1lKQogdm9pZCB3ZWJraXRfYXBwbGljYXRpb25fY2FjaGVfc2V0X21heGltdW1fc2l6
ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSk7CiB1bnNpZ25lZCBpbnQgd2Via2l0X3dvcmtlcl90
aHJlYWRfY291bnQodm9pZCk7CiB2b2lkIHdlYmtpdF93aGl0ZV9saXN0X2FjY2Vzc19mcm9tX29y
aWdpbihjb25zdCBnY2hhciogc291cmNlT3JpZ2luLCBjb25zdCBnY2hhciogZGVzdGluYXRpb25Q
cm90b2NvbCwgY29uc3QgZ2NoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucyk7CitnY2hhciogd2Via2l0X3dlYl9mcmFtZV9jb3VudGVyX3ZhbHVlX2Zv
cl9lbGVtZW50X2J5X2lkKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGlkKTsK
IH0KIAogc3RhdGljIGdjaGFyKiBjb3B5V2ViU2V0dGluZ0tleShnY2hhciogcHJlZmVyZW5jZUtl
eSkKQEAgLTExOCw2ICsxMTksMTcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxh
eSgpCiAgICAgZGlzcGxheVdlYlZpZXcoKTsKIH0KIAorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IExheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmlu
Z1JlZiBpZCkKK3sKKyAgICBnY2hhciogaWRHQ2hhciA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5n
KGlkKTsKKyAgICBnY2hhciogY291bnRlclZhbHVlR0NoYXIgPSB3ZWJraXRfd2ViX2ZyYW1lX2Nv
dW50ZXJfdmFsdWVfZm9yX2VsZW1lbnRfYnlfaWQobWFpbkZyYW1lLCBpZEdDaGFyKTsKKyAgICBn
X2ZyZWUoaWRHQ2hhcik7CisgICAgaWYgKCFjb3VudGVyVmFsdWVHQ2hhcikKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGNvdW50ZXJWYWx1ZShBZG9wdCwg
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY291bnRlclZhbHVlR0NoYXIpKTsKKyAgICBy
ZXR1cm4gY291bnRlclZhbHVlOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjprZWVw
V2ViSGlzdG9yeSgpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1t
CmluZGV4IGNiOTQ0ZTkuLjRkNmE2MDkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTQyLDYgKzQy
LDcgQEAKICNpbXBvcnQgPFdlYktpdC9ET01FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2Vi
QXBwbGljYXRpb25DYWNoZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkJhY2tGb3J3YXJkTGlzdC5o
PgorI2ltcG9ydCA8V2ViS2l0L1dlYkNvcmVTdGF0aXN0aWNzLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V2ViRGF0YWJhc2VNYW5hZ2VyUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3Vy
Y2UuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJGcmFtZS5oPgpAQCAtMTUxLDYgKzE1MiwxOSBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5KCkKICAgICBkaXNwbGF5V2ViVmlldygp
OwogfQogCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQoreworICAgIFJldGFpblB0
cjxDRlN0cmluZ1JlZj4gaWRDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBpZCkpOworICAgIE5TU3RyaW5nICppZE5TID0gKE5TU3RyaW5nICopaWRD
Ri5nZXQoKTsKKworICAgIERPTUVsZW1lbnQgKmVsZW1lbnQgPSBbW21haW5GcmFtZSBET01Eb2N1
bWVudF0gZ2V0RWxlbWVudEJ5SWQ6aWROU107CisgICAgaWYgKCFlbGVtZW50KQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBjb3VudGVyVmFsdWUoQWRv
cHQsIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbbWFpbkZyYW1lIGNv
dW50ZXJWYWx1ZUZvckVsZW1lbnQ6ZWxlbWVudF0pKTsKKyAgICByZXR1cm4gY291bnRlclZhbHVl
OworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjprZWVwV2ViSGlzdG9yeSgpCiB7CiAg
ICAgaWYgKCFbV2ViSGlzdG9yeSBvcHRpb25hbFNoYXJlZEhpc3RvcnldKSB7CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNw
cCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
Y3BwCmluZGV4IGRhYThmY2YuLjI1ZjRhYjcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC0xMDgsNiAr
MTA4LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRVbnRpbERvbmUoKQogICAg
IG1fdGltZW91dFRpbWVyLnN0YXJ0KDExMDAwLCB0aGlzKTsKIH0KIAorUVN0cmluZyBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoY29uc3QgUVN0cmluZyYg
aWQpCit7CisgICAgcmV0dXJuIG1fZHJ0LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpLT5jb3VudGVy
VmFsdWVGb3JFbGVtZW50QnlJZChpZCk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmtlZXBXZWJIaXN0b3J5KCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CkBAIC0zMDcsNCAr
MzEyLDMgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKGNv
bnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFWYXJpYW4KICAgICBlbHNlIGlmIChuYW1lID09ICJX
ZWJLaXREZWZhdWx0Rm9udFNpemUiKQogICAgICAgICBzZXR0aW5ncy0+c2V0Rm9udFNpemUoUVdl
YlNldHRpbmdzOjpEZWZhdWx0Rm9udFNpemUsIHZhbHVlLnRvSW50KCkpOwogfQotCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmgKaW5kZXggMjc4YmEyNy4uY2FiMDE0YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApAQCAtODMsNiArODMsNyBA
QCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBkdW1wU3RhdHVzQ2FsbGJhY2tzKCkgeyBtX2R1bXBT
dGF0dXNDYWxsYmFja3MgPSB0cnVlOyB9CiAgICAgdm9pZCBzZXRDYW5PcGVuV2luZG93cygpIHsg
bV9jYW5PcGVuV2luZG93cyA9IHRydWU7IH0KICAgICB2b2lkIHdhaXRVbnRpbERvbmUoKTsKKyAg
ICBRU3RyaW5nIGNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKGNvbnN0IFFTdHJpbmcmIGlkKTsK
ICAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgdm9pZCBub3RpZnlEb25lKCk7CiAgICAg
dm9pZCBkdW1wQmFja0ZvcndhcmRMaXN0KCkgeyBtX2R1bXBCYWNrRm9yd2FyZExpc3QgPSB0cnVl
OyB9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVz
dENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBiNWVlMmRlLi5kM2NhYzdhIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJv
bGxlcldpbi5jcHAKQEAgLTk3NSwzICs5NzUsMjMgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCkKIAogICAgIHNoYXJlZEhpc3RvcnlQcml2YXRlLT5y
ZW1vdmVBbGxWaXNpdGVkTGlua3MoKTsKIH0KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExh
eW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChKU1N0cmluZ1Jl
ZiBpZCkKK3sKKyAgICBDT01QdHI8SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5
LCBmcmFtZSk7CisgICAgaWYgKCFmcmFtZVByaXZhdGUpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgd3N0cmluZyBpZFdzdHJpbmcgPSBqc1N0cmluZ1JlZlRvV1N0cmluZyhpZCk7CisgICAgQlNU
UiBpZEJTVFIgPSBTeXNBbGxvY1N0cmluZ0xlbigoT0xFQ0hBUiopaWRXc3RyaW5nLmNfc3RyKCks
IGlkV3N0cmluZy5sZW5ndGgoKSk7CisgICAgQlNUUiBjb3VudGVyVmFsdWVCU1RSOworICAgIGlm
IChGQUlMRUQoZnJhbWVQcml2YXRlLT5jb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZChpZEJTVFIs
ICZjb3VudGVyVmFsdWVCU1RSKSkpCisgICAgICAgIHJldHVybiAwOworCisgICAgd3N0cmluZyBj
b3VudGVyVmFsdWUoY291bnRlclZhbHVlQlNUUiwgU3lzU3RyaW5nTGVuKGNvdW50ZXJWYWx1ZUJT
VFIpKTsKKyAgICBTeXNGcmVlU3RyaW5nKGlkQlNUUik7CisgICAgU3lzRnJlZVN0cmluZyhjb3Vu
dGVyVmFsdWVCU1RSKTsKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gY291bnRlclZhbHVl
SlMoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoY291bnRlclZhbHVlLmRhdGEo
KSwgY291bnRlclZhbHVlLmxlbmd0aCgpKSk7CisgICAgcmV0dXJuIGNvdW50ZXJWYWx1ZUpTOwor
fQor
</data>
<flag name="review"
          id="23480"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>