<?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>50380</bug_id>
          
          <creation_ts>2010-12-02 01:15:35 -0800</creation_ts>
          <short_desc>Implement &quot;required&quot; attribute for select tags</short_desc>
          <delta_ts>2012-03-06 07:32:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43887</dependson>
    
    <dependson>50691</dependson>
          <blocked>19264</blocked>
    
    <blocked>80419</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dai Mikurube">dmikurube</reporter>
          <assigned_to name="Dai Mikurube">dmikurube</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>316042</commentid>
    <comment_count>0</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-02 01:15:35 -0800</bug_when>
    <thetext>Implementing &quot;required&quot; attribute for &lt;select&gt;.

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#attr-select-required</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316073</commentid>
    <comment_count>1</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-02 03:33:30 -0800</bug_when>
    <thetext>This bug depends on the bug 43887 because an attribute &quot;required&quot; refers an attribute &quot;size&quot; of &lt;select&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316077</commentid>
    <comment_count>2</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-02 03:44:38 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; This bug depends on the bug 43887 because an attribute &quot;required&quot; refers an attribute &quot;size&quot; of &lt;select&gt;.

I don&apos;t think this depends on Bug 43887.  We don&apos;t need to change the external behavior of HTMLSelectElement::size to refer &quot;display size&quot; internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316118</commentid>
    <comment_count>3</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-02 06:49:23 -0800</bug_when>
    <thetext>(In reply to comment #2)
It looks like &quot;display size&quot; differs from &quot;size&quot; or default size, only if &quot;size&quot; cannot be parsed by rules for non-negative integers. In my understanding, &quot;display size&quot; must be the default &quot;size&quot; if &quot;size&quot; is absent.

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#concept-select-size
&gt; The display size of a select element is the result of applying the rules for parsing non-negative integers to the value of element&apos;s size attribute, if it has one and parsing it is successful. If applying those rules to the attribute&apos;s value is not successful, or if the size attribute is absent, the element&apos;s display size is the default value of the attribute.


In addition, the internal value corresponding to &quot;display size&quot; is only in the WebCore/renderer. Referring values inside the renderer from WebCore/html is unreasonable, I think. To introduce &quot;display size&quot; appropriately, it is better to add a new member variable into HTMLSelectElement. But it may be redundant.

Reading the discussion at the bug 43887, IFMO, ignoring &quot;required&quot; if size &gt; 1 and non-multiple may be reasonable. (Though ignoring it if size == 1 and non-multiple is compliant.) What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316503</commentid>
    <comment_count>4</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-02 16:36:13 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; It looks like &quot;display size&quot; differs from &quot;size&quot; or default size, only if &quot;size&quot; cannot be parsed by rules for non-negative integers. In my understanding, &quot;display size&quot; must be the default &quot;size&quot; if &quot;size&quot; is absent.

It&apos;s misleading. &quot;display size&quot; differs from &quot;size&quot; only if &quot;size&quot; is absent or cannot be parsed. In this case, &quot;display size&quot; must be the default value of &quot;size&quot;. Otherwise, &quot;display size&quot; must be the result of applying rules for parsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316657</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-02 21:10:16 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; In addition, the internal value corresponding to &quot;display size&quot; is only in the WebCore/renderer.
&gt; Referring values inside the renderer from WebCore/html is unreasonable, I think. To introduce &quot;display
&gt; size&quot; appropriately, it is better to add a new member variable into HTMLSelectElement. But it may be
&gt; redundant.

We can calculate the display-size on the fly in HTMLSelectElement, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316668</commentid>
    <comment_count>6</comment_count>
      <attachid>75465</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-02 22:07:05 -0800</bug_when>
    <thetext>Created attachment 75465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316669</commentid>
    <comment_count>7</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-02 22:08:14 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; We can calculate the display-size on the fly in HTMLSelectElement, right?

My note was misleading. We can calculate display-size on the fly, but :

1. The display-size must not be different from external size eventually. (unless size is absent or invalid.)
2. It&apos;s still redundant since a similar calculation is done in the renderer.
3. This calculation has no special difference from ignoring &quot;required&quot; if size &gt; 1 and non-multiple.


Attached a patch with &quot;size &gt; 1&quot;. It can be replaced with on-the-fly calculating display-size, if required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316692</commentid>
    <comment_count>8</comment_count>
      <attachid>75465</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-02 23:25:30 -0800</bug_when>
    <thetext>Comment on attachment 75465
Patch

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

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-001.html:30
&gt; +        shouldBe(&apos;v[0].validity.valueMissing&apos;, &apos;true&apos;);
&gt; +        shouldBe(&apos;v[1].validity.valueMissing&apos;, &apos;true&apos;);
&gt; +        shouldBe(&apos;v[2].validity.valueMissing&apos;, &apos;true&apos;);
&gt; +        shouldBe(&apos;v[3].validity.valueMissing&apos;, &apos;false&apos;);
&gt; +        shouldBe(&apos;v[4].validity.valueMissing&apos;, &apos;false&apos;);
&gt; +        shouldBe(&apos;v[5].validity.valueMissing&apos;, &apos;false&apos;);
&gt; +        shouldBe(&apos;v[6].validity.valueMissing&apos;, &apos;false&apos;);
&gt; +        shouldBe(&apos;v[7].validity.valueMissing&apos;, &apos;false&apos;);
&gt; +        shouldBe(&apos;v[8].validity.valueMissing&apos;, &apos;false&apos;);
&gt; +        shouldBe(&apos;v[9].validity.valueMissing&apos;, &apos;false&apos;);

The resultant text doesn&apos;t have good readability.
How about adding id= attributes to the victims, and change these checks like

function valueMissingFor(id) { return document.getElmeentById(id).validity.valueMissing; }
shouldBeTrue(&apos;valueMissingFor(&quot;input-requied&quot;)&apos;);
shouldBeFalse(&apos;valueMissingFor(&quot;select-without-placeholder-label&quot;)&apos;);

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-001.html:40
&gt;  &lt;body onload=&quot;test()&quot;&gt;

We don&apos;t need to make this test async though It&apos;s not your responsibility.
We can move the &lt;script&gt; element into &lt;body&gt;, and add &lt;script&gt; for js-test-post.js like tests you have updated before.

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-002.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Same comments as ValidityState-valueMissing-001.html.

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-003.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Same comments as ValidityState-valueMissing-001.html.

&gt; LayoutTests/fast/forms/checkValidity-002.html:31
&gt; +shouldBe(&quot;v[0].checkValidity()&quot;, &quot;false&quot;);
&gt; +shouldBe(&quot;v[1].checkValidity()&quot;, &quot;false&quot;);
&gt; +shouldBe(&quot;v[2].checkValidity()&quot;, &quot;false&quot;);
&gt; +shouldBe(&quot;v[3].checkValidity()&quot;, &quot;false&quot;);
&gt; +shouldBe(&quot;v[4].checkValidity()&quot;, &quot;true&quot;);

Same comments as ValidityState-valueMissing-001.html.

&gt; LayoutTests/fast/forms/required-attribute-001.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Same comments as ValidityState-valueMissing-001.html.

&gt; LayoutTests/fast/forms/required-attribute-002.html:1
&gt; +&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

Same comments as ValidityState-valueMissing-001.html.

&gt; LayoutTests/fast/forms/resources/select-live-pseudo-selectors.js:10
&gt; +    var i = document.createElement(&apos;select&apos;);

Using the name &quot;i&quot; for this is not reasonable.

&gt; WebCore/html/HTMLSelectElement.cpp:115
&gt; +    if (!isRequiredFormControl() || disabled() || multiple() || size() &gt; 1)

We don&apos;t need to check disabled() here.  It&apos;s responsibility of willValidate().

We should not return false for multiple() unconditionally.  The specification says we never have placeholder label option for multiple, but required should work with multiple.

&gt; WebCore/html/HTMLSelectElement.cpp:297
&gt; +    bool result = SelectElement::appendFormData(m_data, this, list);
&gt; +    if (result)
&gt; +        setNeedsValidityCheck();

Why is this needed?

&gt; WebCore/html/HTMLSelectElement.cpp:417
&gt; +    setNeedsValidityCheck();

We don&apos;t need this.  setAttribute() calls parseMappedAttribute().

&gt; WebCore/html/HTMLSelectElement.cpp:423
&gt; +    setNeedsValidityCheck();

We should handle this in parseMappedAttribtue().

&gt; WebCore/html/HTMLSelectElement.cpp:502
&gt; +    setNeedsValidityCheck();

Why is this needed?

&gt; WebCore/html/HTMLSelectElement.h:48
&gt; +    bool valueMissing(const String&amp;) const;
&gt; +    bool isValidValue(const String&amp; candidate) const { return !valueMissing(candidate); }

isValidValue() is not used.  We don&apos;t need to add it.
So, the parameter of valueMissing() is not needed.  It&apos;s always this-&gt;value().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316774</commentid>
    <comment_count>9</comment_count>
      <attachid>75465</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-03 03:46:23 -0800</bug_when>
    <thetext>Comment on attachment 75465
Patch

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

For tests, later.

&gt;&gt; WebCore/html/HTMLSelectElement.cpp:115
&gt;&gt; +    if (!isRequiredFormControl() || disabled() || multiple() || size() &gt; 1)
&gt; 
&gt; We don&apos;t need to check disabled() here.  It&apos;s responsibility of willValidate().
&gt; 
&gt; We should not return false for multiple() unconditionally.  The specification says we never have placeholder label option for multiple, but required should work with multiple.

Thanks, the code is wrong. Revised.

&gt;&gt; WebCore/html/HTMLSelectElement.cpp:297
&gt;&gt; +        setNeedsValidityCheck();
&gt; 
&gt; Why is this needed?

I misunderstood the role of appendFormData(). It looks better to change the first argument, data, of appendForData to const.

&gt;&gt; WebCore/html/HTMLSelectElement.cpp:417
&gt;&gt; +    setNeedsValidityCheck();
&gt; 
&gt; We don&apos;t need this.  setAttribute() calls parseMappedAttribute().

Thanks. Removed.

&gt;&gt; WebCore/html/HTMLSelectElement.cpp:502
&gt;&gt; +    setNeedsValidityCheck();
&gt; 
&gt; Why is this needed?

Exactly. Removed. It looks better to change data to const, too.

&gt;&gt; WebCore/html/HTMLSelectElement.h:48
&gt;&gt; +    bool isValidValue(const String&amp; candidate) const { return !valueMissing(candidate); }
&gt; 
&gt; isValidValue() is not used.  We don&apos;t need to add it.
&gt; So, the parameter of valueMissing() is not needed.  It&apos;s always this-&gt;value().

Removed. It followed HTMLInputElement and HTMLTextAreaElement. Isn&apos;t it required? It looks a kind of inconsistent.
HTMLTextAreaElement::isValidValue() looks not called. (It is called from WebKit/chromium as for HTMLInputElement.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316787</commentid>
    <comment_count>10</comment_count>
      <attachid>75465</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-03 05:02:41 -0800</bug_when>
    <thetext>Comment on attachment 75465
Patch

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

&gt;&gt;&gt; WebCore/html/HTMLSelectElement.cpp:115
&gt;&gt;&gt; +    if (!isRequiredFormControl() || disabled() || multiple() || size() &gt; 1)
&gt;&gt; 
&gt;&gt; We don&apos;t need to check disabled() here.  It&apos;s responsibility of willValidate().
&gt;&gt; 
&gt;&gt; We should not return false for multiple() unconditionally.  The specification says we never have placeholder label option for multiple, but required should work with multiple.
&gt; 
&gt; Thanks, the code is wrong. Revised.

wilValidate() is checked at checkValidity(), but not checked when directly reading properties validity.*. So it is required to check disable() (or willValidate()) here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316790</commentid>
    <comment_count>11</comment_count>
      <attachid>75491</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-03 05:11:50 -0800</bug_when>
    <thetext>Created attachment 75491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316796</commentid>
    <comment_count>12</comment_count>
      <attachid>75494</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-03 06:01:44 -0800</bug_when>
    <thetext>Created attachment 75494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316798</commentid>
    <comment_count>13</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-03 06:03:52 -0800</bug_when>
    <thetext>I missed the description on optgroups and disabled :
&gt;  the value of the first option element  ... and that option is not disabled, and, finally, that option element&apos;s parent node is the select element (and not an optgroup element),</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317427</commentid>
    <comment_count>14</comment_count>
      <attachid>75494</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-05 18:16:24 -0800</bug_when>
    <thetext>Comment on attachment 75494
Patch

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

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-001-expected.txt:2
&gt; -There are two form control elements below, both required and blank: validity.valueMissing should be true in both cases.
&gt; +This test checks validity.valueMissing with blank values, blank options selected, or nothing selected.
&gt;  

The purpose of ValidityState-valueMissing-001.html was test cases for validity.valueMissing==true.
If you follow it, you should remove cases with valueMissing==false.

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-001.html:71
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.waitUntilDone();

We don&apos;t need to call waitUntilDone() and notifyDone().  The document text is dumped automatically when the document loading is completed.

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-001.html:91
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.notifyDone();

ditto.

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-002.html:53
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.waitUntilDone();

ditto

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-002.html:69
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.notifyDone();

ditto.

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-003-expected.txt:15
&gt; +FAIL valueMissingFor(&quot;select-none-selected-multiple&quot;) should be false. Was true.
&gt; +PASS valueMissingFor(&quot;select-fake-placeholder-selected-multiple&quot;) is false
&gt; +PASS valueMissingFor(&quot;select-without-fake-placeholder-multiple&quot;) is false
&gt; +FAIL valueMissingFor(&quot;select-none-selected-size2-multiple&quot;) should be false. Was true.

The result contains FAIL lines.

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-003.html:61
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.waitUntilDone();

waitUntilDone() and notifyDone() are not needed.

&gt; LayoutTests/fast/forms/ValidityState-valueMissing-003.html:79
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.notifyDone();

ditto.

&gt; LayoutTests/fast/forms/checkValidity-002-expected.txt:11
&gt; +PASS checkValidityFor(&quot;select-non-placeholder&quot;) is true

checkValidity-002.html was for cases with checkValidity()==false.  You shouldn&apos;t include checkValidity()==true case if you follow it.

&gt; LayoutTests/fast/forms/required-attribute-001.html:25
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.waitUntilDone();

waitUntilDone() and notifyDone() are not needed.

&gt; LayoutTests/fast/forms/required-attribute-001.html:34
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.notifyDone();

ditto.

&gt; LayoutTests/fast/forms/required-attribute-002.html:25
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.waitUntilDone();

ditto.

&gt; LayoutTests/fast/forms/required-attribute-002.html:46
&gt; +    if (window.layoutTestController)
&gt; +        layoutTestController.notifyDone();

ditto.

&gt; LayoutTests/fast/forms/resources/select-live-pseudo-selectors.js:76
&gt; +// --------------------------------
&gt; +//     value change
&gt; +// --------------------------------

We need more test cases for this.
You added some setNeedsValidityCheck() calls.  The test should cover all of code paths with them.

&gt; WebCore/dom/SelectElement.cpp:217
&gt; -void SelectElement::scrollToSelection(SelectElementData&amp; data, Element* element)
&gt; +void SelectElement::scrollToSelection(const SelectElementData&amp; data, Element* element)

Adding &quot;const&quot; to existing code is not related to the bug.  Please make a separated bug and patch.

&gt; WebCore/html/HTMLSelectElement.cpp:119
&gt; +    // The number of the first option selected.
&gt; +    int index = selectedIndex();

The variable name should be &quot;firstSelectionIndex&quot; and the comment should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317429</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-05 18:27:00 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt;&gt;&gt; WebCore/html/HTMLSelectElement.cpp:115
&gt; &gt;&gt;&gt; +    if (!isRequiredFormControl() || disabled() || multiple() || size() &gt; 1)
&gt; &gt;&gt; 
&gt; &gt;&gt; We don&apos;t need to check disabled() here.  It&apos;s responsibility of willValidate().

&gt; wilValidate() is checked at checkValidity(), but not checked when directly reading properties validity.*. So it is required to check disable() (or willValidate()) here.

Oh, your understanding of the current code is correct.
I found the current code is wrong.  If willValidate is false, ValidityState::valueMissing() should return false and we should not call HTMLSelectElement::valueMissing().  Each of exposed functions of ValidityState should check willValidate() at their beginning like ValidityState::validationMessage() is doing.
Would you fix ValidityState::valueMissing() in this bug, and fix other functions of ValidityState in another bug please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317430</commentid>
    <comment_count>16</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-05 18:31:02 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt;&gt; WebCore/html/HTMLSelectElement.h:48
&gt; &gt;&gt; +    bool isValidValue(const String&amp; candidate) const { return !valueMissing(candidate); }
&gt; &gt; 
&gt; &gt; isValidValue() is not used.  We don&apos;t need to add it.
&gt; &gt; So, the parameter of valueMissing() is not needed.  It&apos;s always this-&gt;value().
&gt; 
&gt; Removed. It followed HTMLInputElement and HTMLTextAreaElement. Isn&apos;t it required? It looks a kind of inconsistent.
&gt; HTMLTextAreaElement::isValidValue() looks not called. (It is called from WebKit/chromium as for HTMLInputElement.)

isValidValue() was introduced in orde that browsers can set valid values by their auto-fill / completion features.  Setting valid value to &lt;select&gt; is easy because it&apos;s just setting an index, and checking a string value doesn&apos;t make much sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317447</commentid>
    <comment_count>17</comment_count>
      <attachid>75494</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-05 22:16:00 -0800</bug_when>
    <thetext>Comment on attachment 75494
Patch

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

&gt;&gt; LayoutTests/fast/forms/ValidityState-valueMissing-001-expected.txt:2
&gt;&gt;  
&gt; 
&gt; The purpose of ValidityState-valueMissing-001.html was test cases for validity.valueMissing==true.
&gt; If you follow it, you should remove cases with valueMissing==false.

I considered it as test cases for validity.valueMissing when blank values are given.
&quot;required&quot; attributes are common in these elements, though they may have different results in some conditions.

So, IFMO, collecting cases by similar conditions (e.g. with empty values / with some non-empty values) may be convenient than separating them by their results to refer and compare them later.
Do you think it is better to keep &quot;valueMissing==false&quot; ?

&gt;&gt; LayoutTests/fast/forms/ValidityState-valueMissing-003-expected.txt:15
&gt;&gt; +FAIL valueMissingFor(&quot;select-none-selected-size2-multiple&quot;) should be false. Was true.
&gt; 
&gt; The result contains FAIL lines.

Oh, I missed to replace the the test case after changing the source and my understanding of the spec. &quot;true&quot; is correct for the FAIL cases, without any selected options.

&gt;&gt; LayoutTests/fast/forms/checkValidity-002-expected.txt:11
&gt;&gt; +PASS checkValidityFor(&quot;select-non-placeholder&quot;) is true
&gt; 
&gt; checkValidity-002.html was for cases with checkValidity()==false.  You shouldn&apos;t include checkValidity()==true case if you follow it.

As ValidityState-valueMissing-001.html, this test collects cases for checkValidity().

&gt;&gt; LayoutTests/fast/forms/resources/select-live-pseudo-selectors.js:76
&gt;&gt; +// --------------------------------
&gt; 
&gt; We need more test cases for this.
&gt; You added some setNeedsValidityCheck() calls.  The test should cover all of code paths with them.

Ok, adding the cases.

&gt;&gt; WebCore/html/HTMLSelectElement.cpp:119
&gt;&gt; +    int index = selectedIndex();
&gt; 
&gt; The variable name should be &quot;firstSelectionIndex&quot; and the comment should be removed.

Exactly, done it. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317448</commentid>
    <comment_count>18</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-05 22:41:03 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; The purpose of ValidityState-valueMissing-001.html was test cases for validity.valueMissing==true.
&gt; &gt; If you follow it, you should remove cases with valueMissing==false.
&gt; 
&gt; I considered it as test cases for validity.valueMissing when blank values are given.
&gt; &quot;required&quot; attributes are common in these elements, though they may have different results in some conditions.

Probably I was wrong.  Your policy for this looks better.  It&apos;s ok to go ahead as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317541</commentid>
    <comment_count>19</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-06 04:09:17 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Oh, your understanding of the current code is correct.
&gt; I found the current code is wrong.  If willValidate is false, ValidityState::valueMissing() should return false and we should not call HTMLSelectElement::valueMissing().  Each of exposed functions of ValidityState should check willValidate() at their beginning like ValidityState::validationMessage() is doing.
&gt; Would you fix ValidityState::valueMissing() in this bug, and fix other functions of ValidityState in another bug please?

Ok, I&apos;ll fix them in this and another bugs.


(In reply to comment #16)
&gt; isValidValue() was introduced in orde that browsers can set valid values by their auto-fill / completion features.  Setting valid value to &lt;select&gt; is easy because it&apos;s just setting an index, and checking a string value doesn&apos;t make much sense.

Thanks, I understand. Keep it removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317558</commentid>
    <comment_count>20</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-06 04:43:44 -0800</bug_when>
    <thetext>(In reply to comment #17)
I&apos;m adding test cases for calling sites of setNeedsValidityCheck(). But I found that no existing tests for HTMLSelectElement::listBoxSelectItem() and updateListBoxSelection(). (No existing tests have passed these functions.)

Do you have any ideas to test them?

For updateListBoxSelection(), I found it is called in &quot;autoscroll&quot; by mouse-dragging from WebCore/renderer/RenderListBox.cpp. But I&apos;m not sure how to cause it explicitly (by a kind of events?).

For listBoxSelectItem, I could not find when it is called...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317972</commentid>
    <comment_count>21</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-06 17:40:18 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #17)
&gt; I&apos;m adding test cases for calling sites of setNeedsValidityCheck(). But I found that no existing tests for HTMLSelectElement::listBoxSelectItem() and updateListBoxSelection(). (No existing tests have passed these functions.)
&gt; 
&gt; Do you have any ideas to test them?
&gt; 
&gt; For updateListBoxSelection(), I found it is called in &quot;autoscroll&quot; by mouse-dragging from WebCore/renderer/RenderListBox.cpp. But I&apos;m not sure how to cause it explicitly (by a kind of events?).

I&apos;m not sure how updateListBoxSelection() is called.  Anyway, if you can make it be called by mouse operations, DumpRenderTree can simulate it by window.eventSender.
If it&apos;s very hard to write a test for updateListBoxSelection(), you may skip to make it.

&gt; For listBoxSelectItem, I could not find when it is called...

http://trac.webkit.org/changeset/56180
It seems that it&apos;s not called yet.  We can ignore it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318076</commentid>
    <comment_count>22</comment_count>
      <attachid>75788</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 00:25:49 -0800</bug_when>
    <thetext>Created attachment 75788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318077</commentid>
    <comment_count>23</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 00:27:51 -0800</bug_when>
    <thetext>(In reply to comment #21)
Hi Kent-san,

Thanks,

&gt; I&apos;m not sure how updateListBoxSelection() is called.  Anyway, if you can make it be called by mouse operations, DumpRenderTree can simulate it by window.eventSender.
&gt; If it&apos;s very hard to write a test for updateListBoxSelection(), you may skip to make it.

Finally I&apos;ve skipped to make that test. I could not tell the condition to occur &quot;autoscroll&quot;.

&gt; &gt; For listBoxSelectItem, I could not find when it is called...
&gt; 
&gt; http://trac.webkit.org/changeset/56180
&gt; It seems that it&apos;s not called yet.  We can ignore it.

Ok, I&apos;ve ignored it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318098</commentid>
    <comment_count>24</comment_count>
      <attachid>75788</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-07 01:55:44 -0800</bug_when>
    <thetext>Comment on attachment 75788
Patch

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

Please rebase.  Unfortunately, another patch which conflicts with this has been committed.

&gt; WebCore/html/HTMLSelectElement.cpp:134
&gt; +    // If nothing is selected, it&apos;s value-missing.

Translating simple code to English is not helpful.  Please remove the comment.
We usually add a comment which describes a reason of unclear code.  So the above comment about size() is good.

&gt; WebCore/html/HTMLSelectElement.cpp:137
&gt; +    // If a non-placeholer label option is selected, it&apos;s not value-missing.

This is a good comment.  It explains why 0 is not included.

&gt; WebCore/html/HTMLSelectElement.cpp:142
&gt; +    // It may be a placeholder label option.
&gt; +    // Check if the option is not disabled and not under optgroup elements, and the value is the empty string.

This comment is not good because it doesn&apos;t explain the reason of the code, but the code is unclear for one who doesn&apos;t know &quot;placeholder label option&quot; concept.
So, we should introduce a new function, hasPlaceholderLabelOption(), and should remove the comment.

&gt; WebCore/html/HTMLSelectElement.cpp:206
&gt; -String HTMLSelectElement::value()
&gt; +String HTMLSelectElement::value() const

This change is not related to this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318109</commentid>
    <comment_count>25</comment_count>
      <attachid>75788</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 02:56:53 -0800</bug_when>
    <thetext>Comment on attachment 75788
Patch

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

&gt;&gt; WebCore/html/HTMLSelectElement.cpp:206
&gt;&gt; +String HTMLSelectElement::value() const
&gt; 
&gt; This change is not related to this bug.

Actually, it is required for the new function bool HTMLSelectElement::valueMissing() const.
Without this const, we have to make valueMissing() non-const, because of &quot;value().isEmtpy()&quot; at the end of valueMissing(). But it looks unreasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318111</commentid>
    <comment_count>26</comment_count>
      <attachid>75795</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 02:59:16 -0800</bug_when>
    <thetext>Created attachment 75795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318117</commentid>
    <comment_count>27</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-07 03:48:07 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; &gt;&gt; WebCore/html/HTMLSelectElement.cpp:206
&gt; &gt;&gt; +String HTMLSelectElement::value() const
&gt; &gt; 
&gt; &gt; This change is not related to this bug.
&gt; 
&gt; Actually, it is required for the new function bool HTMLSelectElement::valueMissing() const.
&gt; Without this const, we have to make valueMissing() non-const, because of &quot;value().isEmtpy()&quot; at the end of valueMissing(). But it looks unreasonable.

ok, I understand.  So WebCore/ChangeLog should have an item for HTMLSelectElement::value, and it has this explanation.  The ChangeLog seems out of sync.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318119</commentid>
    <comment_count>28</comment_count>
      <attachid>75797</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 03:55:02 -0800</bug_when>
    <thetext>Created attachment 75797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318120</commentid>
    <comment_count>29</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 03:55:39 -0800</bug_when>
    <thetext>(In reply to comment #27)
Thanks for the feedback. I&apos;ve added it to WebCore/ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318121</commentid>
    <comment_count>30</comment_count>
      <attachid>75795</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-07 04:03:48 -0800</bug_when>
    <thetext>Comment on attachment 75795
Patch

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

&gt; WebCore/html/HTMLSelectElement.cpp:121
&gt; +bool HTMLSelectElement::hasPlaceholderLabelOption() const
&gt; +{
&gt; +    int listIndex = optionToListIndex(0);
&gt; +    ASSERT(listIndex &gt;= 0);
&gt; +    if (listIndex &lt; 0)
&gt; +        return false;
&gt; +    HTMLOptionElement* option = static_cast&lt;HTMLOptionElement*&gt;(listItems()[listIndex]);
&gt; +    return !option-&gt;disabled() &amp;&amp; !listIndex &amp;&amp; value().isEmpty();
&gt; +}

value() should not be used here.  It should be the value of the &quot;option&quot;.

Because this function might be called by others in the future, the implementation had better follow the definition of the specification as possible.
- multiple()-check should be moved here.
- size()-check should be moved here.

Then, valueMissing() implementation can be cleaner like:
return firstSelectionIndex &lt; 0 || (!firstSelectedIndex &amp;&amp; hasPlaceholderLabelOption());

&gt; WebCore/html/ValidityState.cpp:109
&gt;  bool ValidityState::valueMissing() const
&gt;  {
&gt; +    if (!m_control-&gt;willValidate())
&gt; +        return false;
&gt; +
&gt;      if (m_control-&gt;hasTagName(inputTag)) {

This part conflicts with the latest WebKit.  Please rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318221</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 08:55:29 -0800</bug_when>
    <thetext>Attachment 75797 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318274</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 09:56:39 -0800</bug_when>
    <thetext>Attachment 75797 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318321</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 10:57:51 -0800</bug_when>
    <thetext>Attachment 75797 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318372</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 11:59:10 -0800</bug_when>
    <thetext>Attachment 75797 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318548</commentid>
    <comment_count>35</comment_count>
      <attachid>75861</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 19:21:38 -0800</bug_when>
    <thetext>Created attachment 75861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318549</commentid>
    <comment_count>36</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 19:23:02 -0800</bug_when>
    <thetext>(In reply to comment #30)
Thank you for comments. Rebased again and modified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318555</commentid>
    <comment_count>37</comment_count>
      <attachid>75861</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-07 19:46:54 -0800</bug_when>
    <thetext>Comment on attachment 75861
Patch

Almost OK.  We should have test cases for &lt;select&gt; without any options in ValidityState-valueMissing-xxx.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318557</commentid>
    <comment_count>38</comment_count>
      <attachid>75863</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 19:56:21 -0800</bug_when>
    <thetext>Created attachment 75863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318558</commentid>
    <comment_count>39</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-07 19:57:04 -0800</bug_when>
    <thetext>(In reply to comment #37)
Ok, I&apos;ve added &quot;select-no-option&quot; for ValidityState-valueMissing-001 and ValidityState-valueMissing-003.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318562</commentid>
    <comment_count>40</comment_count>
      <attachid>75863</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-07 20:10:39 -0800</bug_when>
    <thetext>Comment on attachment 75863
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318599</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 21:36:37 -0800</bug_when>
    <thetext>Attachment 75797 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2
Updating OpenSource
Incomplete data: Delta source ended unexpectedly at /usr/lib/git-core/git-svn line 5061

Died at WebKitTools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318688</commentid>
    <comment_count>42</comment_count>
      <attachid>75863</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-08 00:44:00 -0800</bug_when>
    <thetext>Comment on attachment 75863
Patch

Clearing flags on attachment: 75863

Committed r73494: &lt;http://trac.webkit.org/changeset/73494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318689</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-08 00:44:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319088</commentid>
    <comment_count>44</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-08 15:43:52 -0800</bug_when>
    <thetext>(In reply to comment #42)
&gt; (From update of attachment 75863 [details])
&gt; Clearing flags on attachment: 75863
&gt; 
&gt; Committed r73494: &lt;http://trac.webkit.org/changeset/73494&gt;

It caused an assertion failure, and was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319267</commentid>
    <comment_count>45</comment_count>
      <attachid>76013</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-08 21:52:58 -0800</bug_when>
    <thetext>Created attachment 76013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319269</commentid>
    <comment_count>46</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-08 21:58:19 -0800</bug_when>
    <thetext>(In reply to comment #44)
Fixed and checked with assertion.

It was because changing &quot;multiple&quot; attribute causes validity check inside SelectElement::parseMultipleAttribute(). It&apos;s to replace a menulist with a listbox when changed.

I&apos;ve added calling HTMLSelectElement::setNeedsValidityCheck() in SelectElement::parseMultipleAttribute() here. But I&apos;d like to make sure that it is ok to call WebCore/html functions from WebCore/dom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319275</commentid>
    <comment_count>47</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-08 22:11:15 -0800</bug_when>
    <thetext>(In reply to comment #46)
&gt; I&apos;ve added calling HTMLSelectElement::setNeedsValidityCheck() in SelectElement::parseMultipleAttribute() here. But I&apos;d like to make sure that it is ok to call WebCore/html functions from WebCore/dom.

It&apos;s not ok. The element can be HTMLKeygenElement or WMLSelectElement.

Is is too late to call setNeedsValdityCheck() in HTMLSelectElement::parseMappedAttribute() just after calling parseMultipleAttribute()?
If it doesn&apos;t work, we should add pure virtual setNeedsValidityCheck() to SelectElement interface and add an empty implemention to WMLSelectElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319277</commentid>
    <comment_count>48</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-08 22:22:54 -0800</bug_when>
    <thetext>(In reply to comment #47)
&gt; Is is too late to call setNeedsValdityCheck() in HTMLSelectElement::parseMappedAttribute() just after calling parseMultipleAttribute()?
&gt; If it doesn&apos;t work, we should add pure virtual setNeedsValidityCheck() to SelectElement interface and add an empty implemention to WMLSelectElement.

Unfortunately, it doesn&apos;t work. setNeedsValidityCheck() is required between data.setMultiple(...) and element-&gt;attach().
In addition, HTMLSelectElement&apos;s setNeedsValidityCheck() comes from HTMLFormControlElementWithState. HTMLSelectElement extends both SelectElement and HTMLFormControlElementWithState. Then, adding a function &quot;setNeedsValidityCheck&quot; to SelectElement makes a conflict with HTMLFormControlElementWithState.

Another option is to check &quot;element&quot; is HTMLSelectElement or not in SelectElement::parseMultipleAttribute(). What do you think on it?

Separating SelectElement::parseMultipleAttribute into two functions may be an option. But it requires to change all sites calling parseMultipleAttribute().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319278</commentid>
    <comment_count>49</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-08 22:32:11 -0800</bug_when>
    <thetext>(In reply to comment #48)
&gt; Unfortunately, it doesn&apos;t work. setNeedsValidityCheck() is required between data.setMultiple(...) and element-&gt;attach().

ok.

&gt; In addition, HTMLSelectElement&apos;s setNeedsValidityCheck() comes from HTMLFormControlElementWithState. HTMLSelectElement extends both SelectElement and HTMLFormControlElementWithState. Then, adding a function &quot;setNeedsValidityCheck&quot; to SelectElement makes a conflict with HTMLFormControlElementWithState.

So, it&apos;s ok to change the function name.
- Add pure virtual SelectElement::updateValidity().
- Implement an empty updateValidity() in WMLSelectElement
- Implement HTMLSelectElement::updateValidity(), which just calls setNeedsValidityCheck().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319281</commentid>
    <comment_count>50</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-08 22:43:25 -0800</bug_when>
    <thetext>(In reply to comment #49)
Ok, no need to add empty updateValidity() in HTMLKeygenElement to do nothing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319283</commentid>
    <comment_count>51</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-08 22:47:48 -0800</bug_when>
    <thetext>(In reply to comment #50)
&gt; (In reply to comment #49)
&gt; Ok, no need to add empty updateValidity() in HTMLKeygenElement to do nothing?

It should not be needed.  HTMLKeygenElement is a subclass of HTMLSelectElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319287</commentid>
    <comment_count>52</comment_count>
      <attachid>76017</attachid>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-08 22:59:59 -0800</bug_when>
    <thetext>Created attachment 76017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319288</commentid>
    <comment_count>53</comment_count>
    <who name="Dai Mikurube">dmikurube</who>
    <bug_when>2010-12-08 23:00:57 -0800</bug_when>
    <thetext>(In reply to comment #51)
&gt; It should not be needed.  HTMLKeygenElement is a subclass of HTMLSelectElement.

Ok, fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319293</commentid>
    <comment_count>54</comment_count>
      <attachid>76017</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-08 23:40:17 -0800</bug_when>
    <thetext>Comment on attachment 76017
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319405</commentid>
    <comment_count>55</comment_count>
      <attachid>76017</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-09 05:07:27 -0800</bug_when>
    <thetext>Comment on attachment 76017
Patch

Clearing flags on attachment: 76017

Committed r73606: &lt;http://trac.webkit.org/changeset/73606&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319406</commentid>
    <comment_count>56</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-09 05:07:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75465</attachid>
            <date>2010-12-02 22:07:05 -0800</date>
            <delta_ts>2010-12-03 05:11:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101203150713.patch</filename>
            <type>text/plain</type>
            <size>45175</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OGYxNjQxMmRmNjUyZWNhMTJmNWIwNmVhOThhNTFhOWY0NGMwYTY0Li5kMmFlZWEx
NGYyOGIzYWUwZmEwMWIwN2ExYjU0MjUzYjgxOGVlNDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTAtMTItMDIgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0xMi0wMSAgSnVsaWUgUGFyZW50ICA8
anBhcmVudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFJlbW92aW5nIG91
dCBvZiBkYXRlIGV4cGVjdGF0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0
CmluZGV4IGIwNjlhNzRlMDVkZTUxZTM3N2MzMGMwNTg1ZWY1NTU0ZDRhZmNhYWYuLjc3MDg2Y2Rl
Y2U3OWRjNzJhY2MyMjM4NGM3M2Y1NzZkNDg4ZmY1YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAw
MS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwxOSBAQAotVGhlcmUgYXJlIHR3byBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIGJsYW5rOiB2YWxpZGl0eS52YWx1
ZU1pc3Npbmcgc2hvdWxkIGJlIHRydWUgaW4gYm90aCBjYXNlcy4KK1RoZXJlIGFyZSB0d28gdGV4
dCBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGFsbCByZXF1aXJlZCBhbmQgYmxhbms6IHZh
bGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgdHJ1ZSBpbiBhbGwgdGV4dCBjYXNlcy4gQW5k
LCB0aGVyZSBhcmUgZWlnaHQgc2VsZWN0IGVsZW1lbnRzIGJlbG93LCBhbGwgcmVxdWlyZWQgYW5k
IGJsYW5rIG9wdGlvbnMgYXJlIHNlbGVjdGVkOiB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxk
IGJlIHRydWUgdGhlIGZpcnN0IHRocmVlIGNhc2VzLCBhbmQgc2hvdWxkIGJlIGZhbHNlIGluIHRo
ZSBvdGhlciBjYXNlcy4KIAotIAotU1VDQ0VTUworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgdHJ1ZQorUEFTUyB2WzFdLnZh
bGlkaXR5LnZhbHVlTWlzc2luZyBpcyB0cnVlCitQQVNTIHZbMl0udmFsaWRpdHkudmFsdWVNaXNz
aW5nIGlzIHRydWUKK1BBU1MgdlszXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BB
U1Mgdls0XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mgdls1XS52YWxpZGl0
eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mgdls2XS52YWxpZGl0eS52YWx1ZU1pc3Npbmcg
aXMgZmFsc2UKK1BBU1Mgdls3XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mg
dls4XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mgdls5XS52YWxpZGl0eS52
YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEuaHRtbAppbmRleCBkYzg4ODc5
Mjk0NjRiODE0ZjUyNmYwMzMxNmYwYjUxM2Y0YTQzMWI1Li5lZWViZGI2ZjRiZGYzMjBmMjE0ODAz
NzFlZWJmZDhiNzlkODE1MWQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWwKQEAgLTEsMjcgKzEsNzgg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1s
PgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYW5kIGJhc2ljIHZhbHVlTWlzc2luZzwvdGl0bGU+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgbGFuZ3Vh
Z2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKLSAgICB9Ci0KICAgICBmdW5jdGlv
biB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBkZXNj
cmlwdGlvbigiVGhlcmUgYXJlIHR3byB0ZXh0IGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywg
YWxsIHJlcXVpcmVkIGFuZCBibGFuazogIiArCisgICAgICAgICAgICAgICAgICAgICJ2YWxpZGl0
eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIHRydWUgaW4gYWxsIHRleHQgY2FzZXMuICIgKworICAg
ICAgICAgICAgICAgICAgICAiQW5kLCB0aGVyZSBhcmUgZWlnaHQgc2VsZWN0IGVsZW1lbnRzIGJl
bG93LCBhbGwgcmVxdWlyZWQgYW5kIGJsYW5rIG9wdGlvbnMgYXJlIHNlbGVjdGVkOiAiICsKKyAg
ICAgICAgICAgICAgICAgICAgInZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgdHJ1ZSB0
aGUgZmlyc3QgdGhyZWUgY2FzZXMsIGFuZCBzaG91bGQgYmUgZmFsc2UgaW4gdGhlIG90aGVyIGNh
c2VzLiIpOworCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
fQogCiAgICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CiAK
LSAgICAgICAgbG9nKCh2WzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyAmJiB2WzFdLnZhbGlkaXR5
LnZhbHVlTWlzc2luZykgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOworICAgICAgICBzaG91bGRC
ZSgndlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAndHJ1ZScpOworICAgICAgICBzaG91bGRC
ZSgndlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAndHJ1ZScpOworICAgICAgICBzaG91bGRC
ZSgndlsyXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAndHJ1ZScpOworICAgICAgICBzaG91bGRC
ZSgndlszXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAnZmFsc2UnKTsKKyAgICAgICAgc2hvdWxk
QmUoJ3ZbNF0udmFsaWRpdHkudmFsdWVNaXNzaW5nJywgJ2ZhbHNlJyk7CisgICAgICAgIHNob3Vs
ZEJlKCd2WzVdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycsICdmYWxzZScpOworICAgICAgICBzaG91
bGRCZSgndls2XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAnZmFsc2UnKTsKKyAgICAgICAgc2hv
dWxkQmUoJ3ZbN10udmFsaWRpdHkudmFsdWVNaXNzaW5nJywgJ2ZhbHNlJyk7CisgICAgICAgIHNo
b3VsZEJlKCd2WzhdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycsICdmYWxzZScpOworICAgICAgICBz
aG91bGRCZSgndls5XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAnZmFsc2UnKTsKKworICAgICAg
ICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OwogICAgIH0KKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+
CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0g
Y29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZCBhbmQgYmxhbms6Ci12YWxpZGl0
eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIHRydWUgaW4gYm90aCBjYXNlcy48L3A+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPGlucHV0IG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQvPgogPHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90
ZXh0YXJlYT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzxzZWxlY3QgbmFtZT0idmlj
dGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9u
IHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBy
ZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVl
PSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBtdWx0aXBs
ZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZh
bHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBtdWx0
aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9u
IHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBz
aXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0
aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGlt
IiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8
b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmlj
dGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxl
Y3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3Nl
bGVjdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4
dAppbmRleCAzNjA2OWI4NTNjOTEyOWM0NTllZTdjMDNmNmI3ZTM1ODllNDNhYWE0Li5jYWM3Yjg5
OTc4NTM5MTNjMmRhYWUwZDAyYjQ5NTFkMjIyZmVkZjlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTkgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250
cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6IHZh
bGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy4KK1RoZXJl
IGFyZSB0ZW4gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBhbGwgcmVxdWlyZWQgYW5kIHdp
dGggc29tZSB2YWx1ZSAob3B0aW9ucyB3aXRoIHNvbWUgdmFsdWUgYXJlIHNlbGVjdGVkIGZvciBz
ZWxlY3QgZWxlbWVudHMpOnZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4g
YWxsIGNhc2VzLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB2WzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyB2WzFdLnZhbGlk
aXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyB2WzJdLnZhbGlkaXR5LnZhbHVlTWlzc2lu
ZyBpcyBmYWxzZQorUEFTUyB2WzNdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFT
UyB2WzRdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyB2WzVdLnZhbGlkaXR5
LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyB2WzZdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBp
cyBmYWxzZQorUEFTUyB2WzddLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyB2
WzhdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyB2WzldLnZhbGlkaXR5LnZh
bHVlTWlzc2luZyBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisgICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi5odG1sCmluZGV4IDZmMDZmOWY0
MzY0NWY0OWNjMzNmNzgwYjVhZjk2MmIxNDdhN2U4MzUuLjQ5Njg5NjBlOTlhZTE3YzA0OTgzZjIw
ZmI0ZjQ5NDUyY2MwNWJjYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDIuaHRtbApAQCAtMSwyNyArMSw3NiBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+
CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhbmQgYmFzaWMgdmFsdWVNaXNzaW5nIDI8L3RpdGxl
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGxhbmd1
YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCiAgICAgZnVuY3Rp
b24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgZGVz
Y3JpcHRpb24oIlRoZXJlIGFyZSB0ZW4gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBhbGwg
cmVxdWlyZWQgYW5kIHdpdGggc29tZSB2YWx1ZSAob3B0aW9ucyB3aXRoIHNvbWUgdmFsdWUgYXJl
IHNlbGVjdGVkIGZvciBzZWxlY3QgZWxlbWVudHMpOiIgKworICAgICAgICAgICAgICAgICAgICAi
dmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBiZSBmYWxzZSBpbiBhbGwgY2FzZXMuIik7CisK
KyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CiAKICAgICAg
ICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKIAotICAgICAgICBs
b2coKCF2WzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyAmJiAhdlsxXS52YWxpZGl0eS52YWx1ZU1p
c3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKKyAgICAgICAgc2hvdWxkQmUoJ3ZbMF0u
dmFsaWRpdHkudmFsdWVNaXNzaW5nJywgJ2ZhbHNlJyk7CisgICAgICAgIHNob3VsZEJlKCd2WzFd
LnZhbGlkaXR5LnZhbHVlTWlzc2luZycsICdmYWxzZScpOworICAgICAgICBzaG91bGRCZSgndlsy
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAnZmFsc2UnKTsKKyAgICAgICAgc2hvdWxkQmUoJ3Zb
M10udmFsaWRpdHkudmFsdWVNaXNzaW5nJywgJ2ZhbHNlJyk7CisgICAgICAgIHNob3VsZEJlKCd2
WzRdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycsICdmYWxzZScpOworICAgICAgICBzaG91bGRCZSgn
dls1XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAnZmFsc2UnKTsKKyAgICAgICAgc2hvdWxkQmUo
J3ZbNl0udmFsaWRpdHkudmFsdWVNaXNzaW5nJywgJ2ZhbHNlJyk7CisgICAgICAgIHNob3VsZEJl
KCd2WzddLnZhbGlkaXR5LnZhbHVlTWlzc2luZycsICdmYWxzZScpOworICAgICAgICBzaG91bGRC
ZSgndls4XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcnLCAnZmFsc2UnKTsKKyAgICAgICAgc2hvdWxk
QmUoJ3ZbOV0udmFsaWRpdHkudmFsdWVNaXNzaW5nJywgJ2ZhbHNlJyk7CisKKyAgICAgICAgaXNT
dWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAg
ICB9CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPC9o
ZWFkPgogPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIHdpdGggc29tZSB2YWx1ZToKLXZh
bGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy48L3A+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPGlucHV0
IG5hbWU9InZpY3RpbSIgdmFsdWU9InNvbWV0aGluZyIgcmVxdWlyZWQvPgogPHRleHRhcmVhIG5h
bWU9InZpY3RpbSIgcmVxdWlyZWQ+c29tZXRoaW5nPC90ZXh0YXJlYT4KLTxocj4KLTxvbCBpZD0i
Y29uc29sZSI+PC9vbD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlv
biB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8
L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVj
dD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8L3Nl
bGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlv
biB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8
L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9w
dGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+
Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAg
PG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIi
IC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiBy
ZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxl
Y3RlZD5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgbmFtZT0idmljdGltIiBtdWx0aXBs
ZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0
aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVjdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1p
c3NpbmctMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlT
dGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dAppbmRleCBkZmUzMzk4NjkwZTE5YmYz
MmVhMjIwMGZjNDE1OGZhOWVhYjM4NTcyLi5jMWM0Y2MxYTljMzZhNDE3OThjMTRiNGE4NTcxZWUy
MWJmMDYyNzU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsMTkgQEAKLVRoZXJlIGFyZSB0d28gZGlzYWJsZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJl
bG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6IHZhbGlkaXR5LnZhbHVlTWlz
c2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy4KK1RoZXJlIGFyZSB0ZW4gZGlzYWJs
ZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBhbGwgcmVxdWlyZWQgYW5kIGJsYW5rIChi
bGFuayBvcHRpb25zIGFyZSBzZWxlY3RlZCBmb3Igc2VsZWN0IGVsZW1lbnRzKTp2YWxpZGl0eS52
YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIGZhbHNlIGluIGFsbCBjYXNlcy4KIAotIAotU1VDQ0VTUwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdlswXS52YWxpZGl0eS52YWx1ZU1p
c3NpbmcgaXMgZmFsc2UKK1BBU1MgdlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UK
K1BBU1MgdlsyXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1MgdlszXS52YWxp
ZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mgdls0XS52YWxpZGl0eS52YWx1ZU1pc3Np
bmcgaXMgZmFsc2UKK1BBU1Mgdls1XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BB
U1Mgdls2XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mgdls3XS52YWxpZGl0
eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mgdls4XS52YWxpZGl0eS52YWx1ZU1pc3Npbmcg
aXMgZmFsc2UKK1BBU1Mgdls5XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgaXMgZmFsc2UKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAgICAgICAgCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNz
aW5nLTAwMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVl
TWlzc2luZy0wMDMuaHRtbAppbmRleCA5ZDkyZmZiMzRiNzIyNDZmY2RhNzIwN2M0NTczMzdhMWVm
MmZmZDRjLi5kNWFkY2E4YjcyMDI0Y2Q2Y2M2MzMwY2NmM2Y0MzJhN2M2ZjkyNGQ0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAw
My5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1p
c3NpbmctMDAzLmh0bWwKQEAgLTEsMjcgKzEsNzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQg
YW5kIHZhbHVlTWlzc2luZyBvbiBkaXNhYmxlZCBlbGVtZW50czwvdGl0bGU+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3Jp
cHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsK
LSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0g
IjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKLSAgICB9Ci0KICAgICBmdW5jdGlvbiB0ZXN0KCkgewot
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBkZXNjcmlwdGlvbigiVGhl
cmUgYXJlIHRlbiBkaXNhYmxlZCBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGFsbCByZXF1
aXJlZCBhbmQgYmxhbmsgKGJsYW5rIG9wdGlvbnMgYXJlIHNlbGVjdGVkIGZvciBzZWxlY3QgZWxl
bWVudHMpOiIgKworICAgICAgICAgICAgICAgICAgICAidmFsaWRpdHkudmFsdWVNaXNzaW5nIHNo
b3VsZCBiZSBmYWxzZSBpbiBhbGwgY2FzZXMuIik7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgICB9CiAKICAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlOYW1lKCJ2aWN0aW0iKTsKIAotICAgICAgICBsb2coKCF2WzBdLnZhbGlkaXR5LnZhbHVl
TWlzc2luZyAmJiAhdlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZB
SUxVUkUiKTsKKyAgICAgICAgc2hvdWxkQmUoJ3ZbMF0udmFsaWRpdHkudmFsdWVNaXNzaW5nJywg
J2ZhbHNlJyk7CisgICAgICAgIHNob3VsZEJlKCd2WzFdLnZhbGlkaXR5LnZhbHVlTWlzc2luZycs
ICdmYWxzZScpOworICAgICAgICBzaG91bGRCZSgndlsyXS52YWxpZGl0eS52YWx1ZU1pc3Npbmcn
LCAnZmFsc2UnKTsKKyAgICAgICAgc2hvdWxkQmUoJ3ZbM10udmFsaWRpdHkudmFsdWVNaXNzaW5n
JywgJ2ZhbHNlJyk7CisgICAgICAgIHNob3VsZEJlKCd2WzRdLnZhbGlkaXR5LnZhbHVlTWlzc2lu
ZycsICdmYWxzZScpOworICAgICAgICBzaG91bGRCZSgndls1XS52YWxpZGl0eS52YWx1ZU1pc3Np
bmcnLCAnZmFsc2UnKTsKKyAgICAgICAgc2hvdWxkQmUoJ3ZbNl0udmFsaWRpdHkudmFsdWVNaXNz
aW5nJywgJ2ZhbHNlJyk7CisgICAgICAgIHNob3VsZEJlKCd2WzddLnZhbGlkaXR5LnZhbHVlTWlz
c2luZycsICdmYWxzZScpOworICAgICAgICBzaG91bGRCZSgndls4XS52YWxpZGl0eS52YWx1ZU1p
c3NpbmcnLCAnZmFsc2UnKTsKKyAgICAgICAgc2hvdWxkQmUoJ3ZbOV0udmFsaWRpdHkudmFsdWVN
aXNzaW5nJywgJ2ZhbHNlJyk7CisKKyAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICB9CisKKyAgICB2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJ0ZXN0
KCkiPgotPHA+VGhlcmUgYXJlIHR3byBkaXNhYmxlZCBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVs
b3csIGJvdGggcmVxdWlyZWQgYW5kIHdpdGggc29tZSB2YWx1ZToKLXZhbGlkaXR5LnZhbHVlTWlz
c2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy48L3A+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogPGlucHV0IG5hbWU9InZpY3RpbSIg
ZGlzYWJsZWQgcmVxdWlyZWQgLz4KIDx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJl
cXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2VsZWN0
IG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2Vs
ZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2Vs
ZWN0IG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9Ilgi
Plg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8
c2VsZWN0IG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRp
b24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgor
PC9zZWxlY3Q+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWly
ZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBz
ZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSIgc2l6ZT0iMiIgZGlz
YWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlv
biB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSIg
c2l6ZT0iMiIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IG5h
bWU9InZpY3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRp
b24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgor
PC9zZWxlY3Q+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgZGlzYWJs
ZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2
YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQudHh0
CmluZGV4IDE4NTc5NDQ0ODcwZDM5NDA1NWQzYTkyMDM3NDRjN2VkODQwYzhlODQuLjc1ZDc5ZmU4
MjA5MzQzOWQwZGY2MzMzYzg0ZTIyMDNmMmNkMjhlMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQudHh0CkBAIC0xLDEyICsx
LDE0IEBACi1UaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJl
Y3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQgb24gaW52YWxpZCBlbGVtZW50cy4K
K1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEg
ZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRzLCBhbmQgcmV0
dXJucyBhIHRydWUgcmVzdWx0IG9uIGEgYmxhbmsgYnV0IHZhbGlkIGVsZW1lbnRzLiBCbGFuayBi
dXQgbm9uLXBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbnMgYXJlIHZhbGlkLgogCiBPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCiAKIAotICAKLVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFs
c2UKLVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKLVBBU1MgdltpXS5jaGVja1Zh
bGlkaXR5KCkgaXMgZmFsc2UKKyAgICAKK1BBU1MgdlswXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFs
c2UKK1BBU1MgdlsxXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKK1BBU1MgdlsyXS5jaGVja1Zh
bGlkaXR5KCkgaXMgZmFsc2UKK1BBU1MgdlszXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKK1BB
U1Mgdls0XS5jaGVja1ZhbGlkaXR5KCkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNr
VmFsaWRpdHktMDAyLmh0bWwKaW5kZXggMjg3MmZhZDM1YmVlODJlNDY1YmVlMTdlZmJmMTFmNTgw
ZmY0MmNjOS4uZTYxZDlhNjEwMDZhZDAxNzIyMGYwYmI3MTI5OGIwMjRlYzk0NjIxNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbApAQCAtMTAsMTQg
KzEwLDI1IEBACiA8aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZC8+CiA8
aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFs
dWU9IkxvcmVtaXBzdW0iLz4KIDx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4
dGFyZWE+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9
IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+
Cis8c2VsZWN0IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8
L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+CiA8L2Zv
cm0+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhp
cyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBmYWxz
ZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMuIik7CitkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0
bHkgYSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMsIGFu
ZCByZXR1cm5zIGEgdHJ1ZSByZXN1bHQgb24gYSBibGFuayBidXQgdmFsaWQgZWxlbWVudHMuIEJs
YW5rIGJ1dCBub24tcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9ucyBhcmUgdmFsaWQuIik7CiAKIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7Ci1mb3IgKGkgPSAwOyBpIDwg
di5sZW5ndGg7IGkrKykKLSAgICBzaG91bGRCZSgidltpXS5jaGVja1ZhbGlkaXR5KCkiLCAiZmFs
c2UiKTsKK3Nob3VsZEJlKCJ2WzBdLmNoZWNrVmFsaWRpdHkoKSIsICJmYWxzZSIpOworc2hvdWxk
QmUoInZbMV0uY2hlY2tWYWxpZGl0eSgpIiwgImZhbHNlIik7CitzaG91bGRCZSgidlsyXS5jaGVj
a1ZhbGlkaXR5KCkiLCAiZmFsc2UiKTsKK3Nob3VsZEJlKCJ2WzNdLmNoZWNrVmFsaWRpdHkoKSIs
ICJmYWxzZSIpOworc2hvdWxkQmUoInZbNF0uY2hlY2tWYWxpZGl0eSgpIiwgInRydWUiKTsKIAog
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQu
dHh0CmluZGV4IDliMjAxNDMxOGEzZTUwYmQzZWY1ZDQwMDEzNmMzMDI0NjkxZjg5Y2QuLmUyNjdk
OTUyNmIwMjI3ZWJlMWRmZTA2YmMzZDkyNDZkMWFiOWMzODggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDEyIEBACi1UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBi
ZWxvdywgYm90aCByZXF1aXJlZC4KK1RoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVu
dHMgYmVsb3csIGFsbCByZXF1aXJlZC4KIAotIAotU1VDQ0VTUworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgdlswXS5yZXF1aXJlZCBpcyB0cnVlCitQQVNTIHZbMV0ucmVxdWly
ZWQgaXMgdHJ1ZQorUEFTUyB2WzJdLnJlcXVpcmVkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKaW5kZXggMmYzNGMxNjFhY2Y2
YTNmNWY0MDAwODczZmQ4MjY2YzAxN2ZlMDM2MC4uYTEyMjg5MjZmNzFkZDk1NzUzNmM0NWJiNjVi
ODhiNWFiMmExOTBlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJl
ZC1hdHRyaWJ1dGUtMDAxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJl
ZC1hdHRyaWJ1dGUtMDAxLmh0bWwKQEAgLTEsMjYgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVx
dWlyZWQgYXR0cmlidXRlIHByZXNlbmNlIHRlc3Q8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1m
dW5jdGlvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+Iitt
ZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCiAgICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoZXJlIGFyZSB0
aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGFsbCByZXF1aXJlZC4iKTsKKworICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KIAogICAgICAgICB2
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAgICAgIGxvZygo
dlswXS5yZXF1aXJlZCAmJiB2WzFdLnJlcXVpcmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7
CisgICAgICAgIHNob3VsZEJlKCd2WzBdLnJlcXVpcmVkJywgJ3RydWUnKTsKKyAgICAgICAgc2hv
dWxkQmUoJ3ZbMV0ucmVxdWlyZWQnLCAndHJ1ZScpOworICAgICAgICBzaG91bGRCZSgndlsyXS5y
ZXF1aXJlZCcsICd0cnVlJyk7CisKKyAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKKyAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICB9CisKKyAgICB2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJ0ZXN0
KCkiPgotPHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGgg
cmVxdWlyZWQuPC9wPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KIDxpbnB1dCBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkIC8+CiA8dGV4dGFyZWEgbmFt
ZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48
L29sPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIi
IHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0Pgog
PC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1
aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
cmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3RlZC50eHQKaW5kZXggYWM1YzBmZmYyMjg2NmUx
MTVmZjBjYzQzY2Q0ZGI0OWM4ZTk4ZmJmYS4uNDkzZWQzOGQzZWVkODFiYjU3MjFlNmNmYWUzMmJj
YjYyMDg3NWVhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1h
dHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jl
cXVpcmVkLWF0dHJpYnV0ZS0wMDItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTkgQEAKLVRoZXJl
IGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIG9wdGlvbmFsLiBUaGV5
J3JlIHNldCBhcyByZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0ZS4KK1RoZXJlIGFy
ZSB0aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGFsbCBvcHRpb25hbC4gVGhleSdy
ZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUuCiAKLSAKLVNVQ0NF
U1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitCZWZvcmUgc2V0OgorUEFTUyB2WzBd
LnJlcXVpcmVkIGlzIGZhbHNlCitQQVNTIHZbMV0ucmVxdWlyZWQgaXMgZmFsc2UKK1BBU1Mgdlsy
XS5yZXF1aXJlZCBpcyBmYWxzZQorCitBZnRlciBzZXQ6CitQQVNTIHZbMF0ucmVxdWlyZWQgaXMg
dHJ1ZQorUEFTUyB2WzFdLnJlcXVpcmVkIGlzIHRydWUKK1BBU1MgdlsyXS5yZXF1aXJlZCBpcyB0
cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
ICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRl
LTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAy
Lmh0bWwKaW5kZXggYWE4NWU4OTU0ZWUwNzgxOGQxYzI4YmQ1NTIwYTk1YjIyMWM3N2I5MC4uYWRm
ZDNlMWZlYmFjODM0OWM4MTdlYTM0MWFhOTM2M2FhNTg4MjMzMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLmh0bWwKQEAgLTEsMzIgKzEs
NTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxo
dG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYXR0cmlidXRlIEpTIHNldDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9
IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1l
c3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5l
ckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKLSAgICB9Ci0KICAgICBmdW5jdGlvbiB0
ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBkZXNjcmlw
dGlvbigiVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYWxsIG9w
dGlvbmFsLiBUaGV5J3JlIHNldCBhcyByZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0
ZS4iKTsKKworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0K
IAogICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0g
ICAgICAgIGlmICh2WzBdLnJlcXVpcmVkID09IGZhbHNlICYmIHZbMV0ucmVxdWlyZWQgPT0gZmFs
c2UpIHsKLSAgICAgICAgICAgIHZbMF0ucmVxdWlyZWQgPSB0cnVlOwotICAgICAgICAgICAgdlsx
XS5yZXF1aXJlZCA9IHRydWU7Ci0gICAgICAgICAgICBsb2cgKCh2WzBdLnJlcXVpcmVkICYmIHZb
MV0ucmVxdWlyZWQpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICAgICAgfQotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBsb2coIkZBSUxVUkUiKTsKKyAgICAgICAgZGVidWcoIkJlZm9y
ZSBzZXQ6Iik7CisgICAgICAgIHNob3VsZEJlKCd2WzBdLnJlcXVpcmVkJywgJ2ZhbHNlJyk7Cisg
ICAgICAgIHNob3VsZEJlKCd2WzFdLnJlcXVpcmVkJywgJ2ZhbHNlJyk7CisgICAgICAgIHNob3Vs
ZEJlKCd2WzJdLnJlcXVpcmVkJywgJ2ZhbHNlJyk7CisgICAgICAgIGRlYnVnKCIiKTsKKworICAg
ICAgICB2WzBdLnJlcXVpcmVkID0gdHJ1ZTsKKyAgICAgICAgdlsxXS5yZXF1aXJlZCA9IHRydWU7
CisgICAgICAgIHZbMl0ucmVxdWlyZWQgPSB0cnVlOworCisgICAgICAgIGRlYnVnKCJBZnRlciBz
ZXQ6Iik7CisgICAgICAgIHNob3VsZEJlKCd2WzBdLnJlcXVpcmVkJywgJ3RydWUnKTsKKyAgICAg
ICAgc2hvdWxkQmUoJ3ZbMV0ucmVxdWlyZWQnLCAndHJ1ZScpOworICAgICAgICBzaG91bGRCZSgn
dlsyXS5yZXF1aXJlZCcsICd0cnVlJyk7CisgICAgICAgIGRlYnVnKCIiKTsKKworICAgICAgICBp
c1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwog
ICAgIH0KKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiA8
L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29u
dHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWly
ZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUuPC9wPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxpbnB1dCBuYW1lPSJ2aWN0aW0iIC8+CiA8
dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xl
Ij48L29sPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVj
dGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgogPC9ib2R5
PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMv
c2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
cmVzb3VyY2VzL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU0
ZTkwZDhkZjQxNmViYzdiNGQ2M2ZiY2E3NWE0MWZkZjIxZmUyZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3NlbGVjdC1saXZlLXBzZXVkby1zZWxl
Y3RvcnMuanMKQEAgLTAsMCArMSwxMDggQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgcGVyZm9y
bXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBs
aXZlbHkgYXBwbGllZC4iKTsKKworLy8gU2V0dXAgZm9yIHN0YXRpYyBlbGVtZW50cy4KK3ZhciBm
b3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChmb3JtKTsKK3ZhciBub25Gb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5vbkZvcm0pOworCitmdW5jdGlvbiBtYWtl
SW52YWxpZCgpIHsKKyAgICB2YXIgaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcp
OworICAgIGkubmFtZSA9ICdmb28nOworICAgIGkucmVxdWlyZWQgPSB0cnVlOworICAgIGkudmFs
dWUgPSAnJzsKKyAgICBmb3JtLmFwcGVuZENoaWxkKGkpOworICAgIHJldHVybiBpOworfQorCitm
dW5jdGlvbiBhcHBlbmRPcHRpb24odmFsdWUsIHNlbGVjdCkgeworICAgIHZhciBvID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CisgICAgby52YWx1ZSA9IHZhbHVlOworICAgIG8u
aW5uZXJUZXh0ID0gdmFsdWU7CisgICAgc2VsZWN0LmFwcGVuZENoaWxkKG8pOworICAgIHJldHVy
biBvOworfQorCitmdW5jdGlvbiBiYWNrZ3JvdW5kT2YoZWwpIHsKKyAgICByZXR1cm4gZG9jdW1l
bnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1
ZSgnYmFja2dyb3VuZC1jb2xvcicpOworfQorCit2YXIgZWxCYWNrZ3JvdW5kID0gJ2JhY2tncm91
bmRPZihlbCknOwordmFyIGludmFsaWRDb2xvciA9ICdyZ2IoMjU1LCAwLCAwKSc7Cit2YXIgbm9y
bWFsQ29sb3IgPSAncmdiKDI1NSwgMjU1LCAyNTUpJzsKK3ZhciBkaXNhYmxlZENvbG9yID0gJ3Jn
YigwLCAwLCAwKSc7Cit2YXIgcmVhZE9ubHlDb2xvciA9ICdyZ2IoMCwgMjU1LCAwKScKK3ZhciB2
YWxpZENvbG9yID0gJ3JnYigwLCAwLCAyNTUpJzsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKy8vICAgICB3aWxsVmFsaWRhdGUgY2hhbmdlCisvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQordmFyIGVsID0gbWFrZUludmFsaWQoKTsKK3ZhciBvMSA9IGFw
cGVuZE9wdGlvbignJywgZWwpOwordmFyIG8yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEu
c2VsZWN0ZWQgPSB0cnVlOworLy8gQ29uZmlybSB0aGlzIGVsZW1lbnQgaXMgaW52YWxpZC4KK2Rl
YnVnKCdDaGVjayB0aGUgaW5pdGlhbCBzdGF0ZTonKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIG5hbWU6Jyk7CitlbC5uYW1lID0gJyc7
CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK2VsLm5hbWUgPSAnYmFy
JzsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hh
bmdlIGRpc2FibGVkOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24o
JycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVl
OworZWwuZGlzYWJsZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnZGlzYWJsZWRD
b2xvcicpOworZWwuZGlzYWJsZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2lu
dmFsaWRDb2xvcicpOworCitkZWJ1ZygnSW5zaWRlL291dHNpZGUgb2YgYSBmb3JtOicpOworZWwg
PSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5k
T3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworbm9uRm9ybS5hcHBlbmRDaGls
ZChlbCk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK2Zvcm0uYXBw
ZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisK
Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgdmFsdWUgY2hhbmdl
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZGVidWcoJ0NoYW5nZSB0aGUg
dmFsdWUgYnkgRE9NIGF0dHJpYnV0ZSB3aXRoIGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uOicp
OworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0g
YXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzIuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxC
YWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUo
ZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdDaGFuZ2UgdGhlIHZhbHVl
IGJ5IERPTSBhdHRyaWJ1dGUgd2l0aG91dCBhIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbjonKTsK
K2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzIgPSBh
cHBlbmRPcHRpb24oJycsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFj
a2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVs
QmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vICAgICBDb25zdHJhaW50cyBjaGFuZ2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitkZWJ1ZygnQ2hhbmdlIHJlcXVpcmVkOicpOworZWwgPSBtYWtlSW52
YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdY
JywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworZWwucmVxdWlyZWQgPSBmYWxzZTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLnJlcXVpcmVkID0gdHJ1ZTsKK3No
b3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKaW5kZXggZDY4MjZkZTE4MmUzMTM3N2FjMGM0
OGQ5NDY4Y2I3NmE4YTU2ZjQ3MS4uNWM1NjU0MjcwMTUxNDJlZDJkMDZmNDQ0NjJjN2FjYzg1NWQ3
YTVmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFs
aWRhdGlvbk1lc3NhZ2UuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKQEAgLTI0LDYgKzI0LDEzIEBAIHJlcXVpcmVkVGV4dEFy
ZWEucmVxdWlyZWQgPSB0cnVlOwogZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsK
IHNob3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBt
aXNzaW5nJyIpOwogCisvLyBBIHJlcXVpcmVkIHNlbGVjdCB3aXRoIGFuIGVtcHR5IHZhbHVlCit2
YXIgcmVxdWlyZWRTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKK3Jl
cXVpcmVkU2VsZWN0Lm5hbWUgPSAicmVxdWlyZWRTZWxlY3QiOworcmVxdWlyZWRTZWxlY3QucmVx
dWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFNlbGVjdCk7CitzaG91bGRC
ZSgicmVxdWlyZWRTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVlIG1pc3NpbmcnIik7
CisKIC8vIEEgdHlwZT1lbWFpbCBpbnB1dCBmb3IgdGhlICJ0eXBlIG1pc21hdGNoIiBmbGFnCiB2
YXIgZW1haWxJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiBlbWFpbElu
cHV0Lm5hbWUgPSAiZW1haWxJbnB1dCI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YjAzNzA2YTg3YzAxZjM2YmIyY2ZlNTY4NWU3M2VhMDI3MzZhNDMwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitUaGlzIHRlc3QgcGVyZm9y
bXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBs
aXZlbHkgYXBwbGllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoZWNrIHRo
ZSBpbml0aWFsIHN0YXRlOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgor
Q2hhbmdlIG5hbWU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgZGlzYWJsZWQ6CitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgZGlzYWJsZWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwp
IGlzIGludmFsaWRDb2xvcgorSW5zaWRlL291dHNpZGUgb2YgYSBmb3JtOgorUEFTUyBiYWNrZ3Jv
dW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFs
aWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSBieSBET00gYXR0cmlidXRlIHdpdGggYSBwbGFjZWhv
bGRlciBsYWJlbCBvcHRpb246CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgor
UEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSBi
eSBET00gYXR0cmlidXRlIHdpdGhvdXQgYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRpb246CitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IHZhbGlkQ29sb3IKK0NoYW5nZSByZXF1aXJlZDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2
YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAyZTlmODc2NTBjNGQzYmZhYzg5ZDRhODFhYzFkYzU5MTYyNWZmZGIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbAorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9saXZlLXBzZXVkby1zZWxlY3RvcnMu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1
ZG8tc2VsZWN0b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKaW5k
ZXggMGUxMmQ4YTI3MWU1ZGQ4ZjU1M2EyMWQxYTljMmJkN2FiZTVkZDYzMS4uZTkxOTYxZDEwMDlm
Mzk5MTkwY2RhZGUzMzAwZjkzYWIzNDQ0NjY0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKQEAgLTYsNiArNiw3IEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIHBhdHRlcm5JbnB1dC52YWxpZGF0aW9uTWVz
c2FnZSBpcyAncGF0dGVybiBtaXNtYXRjaCcKIFBBU1MgcmVxdWlyZWRJbnB1dC52YWxpZGF0aW9u
TWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKIFBBU1MgcmVxdWlyZWRUZXh0QXJlYS52YWxpZGF0
aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgcmVxdWlyZWRTZWxlY3QudmFsaWRh
dGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIGVtYWlsSW5wdXQudmFsaWRhdGlv
bk1lc3NhZ2UgaXMgJ3R5cGUgbWlzbWF0Y2gnCiBQQVNTIGJ1dC52YWxpZGF0aW9uTWVzc2FnZSBp
cyAnJwogUEFTUyBhbm9uaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJycKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkZGRlNTk4OTM0
MTQyMGM1NDZiNjkzZGQwYTZlNWNlMzFjMTAzOS4uYTU4NGEyMGZhMWQ0MDhkMTg2M2RkMjQ4NmVj
NjUyOGRjNjI4NmZhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0xMi0wMiAgRGFpIE1pa3VydWJlICA8
ZG1pa3VydWJlQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW1wbGVtZW50ICJyZXF1aXJlZCIgYXR0cmlidXRlIGZvciBzZWxlY3Qg
dGFncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAz
ODAKKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3Rv
cnMuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyk6IEFkZGVkIGNhbGxp
bmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkgdG8gZW5hYmxlIHZhbGlkaXR5IGNoZWNrIGFmdGVy
IGNoYW5naW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVj
dGVkSW5kZXgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIpOiBB
ZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlTWlzc2luZyk6IEFkZGVkIHZhbHVlTWlzc2luZygpIHRv
IGNoZWNrIGlmIHNlbGVjdGluZyBhbiBpbnZhbGlkIG9yIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlv
biB3aGVuIGEgdmFsaWQgcmVxdWlyZWQgYXR0cmlidXRlIGlzIHNwZWNpZmllZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2VsZWN0SXRlbSk6IEFkZGVkIGNh
bGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Vs
ZWN0RWxlbWVudDo6YWRkKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUpOiBBZGRlZCBjYWxs
aW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVj
dEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogQWRkZWQgY2FsbGluZyBzZXROZWVk
c1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojpw
YXJzZU1hcHBlZEF0dHJpYnV0ZSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNr
KCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0QWxsKTogQWRk
ZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTZWxlY3RFbGVtZW50OjphcHBlbmRGb3JtRGF0YSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNW
YWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cmVz
ZXQpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4KTog
QWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxTZWxlY3RFbGVtZW50OjpzZXRBY3RpdmVTZWxlY3Rpb25FbmRJbmRleCk6IEFkZGVkIGNh
bGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Vs
ZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbik6IEFkZGVkIGNhbGxpbmcgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6
c2V0TXVsdGlwbGUpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNpemUpOiBBZGRlZCBjYWxsaW5n
IHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVs
ZW1lbnQ6OnNldExlbmd0aCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCku
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2Nyb2xsVG9TZWxlY3Rpb24p
OiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3JtQ29udHJvbCk6IENoZWNrIGlmIHJl
cXVpcmVkIG9yIG5vdC4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aXNWYWxpZFZhbHVlKTogQ2hlY2sgaWYg
dmFsaWRNaXNzaW5nKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aXNP
cHRpb25hbEZvcm1Db250cm9sKTogQ2hlY2sgaWYgbm90IHJlcXVpcmVkLgorICAgICAgICAqIGh0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBBZGRlZCBhIHJlcXVpcmVkIGF0dHJpYnV0ZSB0byBz
ZWxlY3QgZWxlbWVudHMuLgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3NpbmcpOiBBZGRlZCB2YWx1ZU1p
c3NpbmcgY2hlY2sgZm9yIHNlbGVjdCBlbGVtZW50cyBpbnRvIHRoZSBnbG9iYWwgY2hlY2tlciwg
VmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKCkuCisKIDIwMTAtMTItMDEgIEdlb2ZmcmV5IEdh
cmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXg6IEFkZGVkIGEgZm9y
d2FyZGluZyBoZWFkZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBjNjgwZTky
ZTQwYWE5NTEyYWE4MjdlZTg5YTI3YzBhYWVhY2UzODAwLi4zMGVlY2EzM2Q2YmE5NDdmYzBlOTA5
OTA4ZDQ5YWQ0OTI4MDEyNzc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTc4
LDExICs3OCwxMyBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdGVkSW5kZXgoKSBjb25z
dAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyhIVE1MT3B0aW9uRWxlbWVu
dCogZXhjbHVkZUVsZW1lbnQpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyht
X2RhdGEsIHRoaXMsIGV4Y2x1ZGVFbGVtZW50KTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2so
KTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChpbnQgb3B0
aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0
ZWRJbmRleChtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBkZXNlbGVjdCwgZmFsc2UsIGZhbHNl
KTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxl
bWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxl
Y3QsIGJvb2wgZmlyZU9uQ2hhbmdlTm93LCBib29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pCkBA
IC05MSw2ICs5Myw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhC
eVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0LCBiCiAgICAgLy8gbW91c2Vkb3du
IGV2ZW50cy4gVGhpcyBhbGxvd3MgdGhhdCBzYW1lIGJlaGF2aW9yIHByb2dyYW1tYXRpY2FsbHku
CiAgICAgaWYgKCFtX2RhdGEudXNlc01lbnVMaXN0KCkpIHsKICAgICAgICAgdXBkYXRlU2VsZWN0
ZWRTdGF0ZShtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBhbGxvd011bHRpcGxlU2VsZWN0aW9u
LCBmYWxzZSk7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgICAgICBpZiAo
ZmlyZU9uQ2hhbmdlTm93KQogICAgICAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7CiAgICAgICAg
IHJldHVybjsKQEAgLTEwNCw2ICsxMDcsMjIgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0
U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QsIGIKICAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgIFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgo
bV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZpcmVPbkNoYW5nZU5vdywgdHJ1
ZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Cit9CisKK2Jvb2wgSFRNTFNlbGVjdEVs
ZW1lbnQ6OnZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAoreworICAgIGlm
ICghaXNSZXF1aXJlZEZvcm1Db250cm9sKCkgfHwgZGlzYWJsZWQoKSB8fCBtdWx0aXBsZSgpIHx8
IHNpemUoKSA+IDEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGludCBpbmRleCA9IHNl
bGVjdGVkSW5kZXgoKTsKKyAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHZhbHVl
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGZhbHNlOwogfQog
CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2VsZWN0SXRlbShpbnQgbGlzdEluZGV4
LCBib29sIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBib29sIHNoaWZ0LCBib29sIGZpcmVPbkNo
YW5nZU5vdykKQEAgLTExMiw2ICsxMzEsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0
Qm94U2VsZWN0SXRlbShpbnQgbGlzdEluZGV4LCBib29sIGFsbG93TXVsdGlwbHlTZWxlYwogICAg
ICAgICBzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGxpc3RUb09wdGlvbkluZGV4KGxpc3RJbmRleCks
IHRydWUsIGZpcmVPbkNoYW5nZU5vdyk7CiAgICAgZWxzZSB7CiAgICAgICAgIHVwZGF0ZVNlbGVj
dGVkU3RhdGUobV9kYXRhLCB0aGlzLCBsaXN0SW5kZXgsIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25z
LCBzaGlmdCk7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgICAgICBpZiAo
ZmlyZU9uQ2hhbmdlTm93KQogICAgICAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7CiAgICAgfQpA
QCAtMTQ0LDYgKzE2NCw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVu
dCAqZWxlbWVudCwgSFRNTEVsZW1lbnQgKmJlZm9yZSwgRXhjZXB0aW9uCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmUsIGVjKTsKKyAgICBzZXROZWVk
c1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKGlu
dCBpbmRleCkKQEAgLTE1Niw2ICsxNzcsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1v
dmUoaW50IGluZGV4KQogICAgIEFTU0VSVChpdGVtLT5wYXJlbnROb2RlKCkpOwogICAgIEV4Y2Vw
dGlvbkNvZGUgZWM7CiAgICAgaXRlbS0+cGFyZW50Tm9kZSgpLT5yZW1vdmVDaGlsZChpdGVtLCBl
Yyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIFN0cmluZyBIVE1MU2VsZWN0
RWxlbWVudDo6dmFsdWUoKQpAQCAtMTk1LDYgKzIxNyw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1l
bnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0CiB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRl
KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKG1fZGF0YSwg
dGhpcywgc3RhdGUpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpIApA
QCAtMjE1LDE0ICsyMzgsMTYgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICAgICAgcmVjYWxjTGlzdEl0ZW1zSWZO
ZWVkZWQoKTsKIAogICAgICAgICBtX2RhdGEuc2V0U2l6ZShzaXplKTsKKyAgICAgICAgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAgICAgIGlmICgob2xkVXNlc01lbnVMaXN0ICE9IG1fZGF0
YS51c2VzTWVudUxpc3QoKSB8fCAoIW9sZFVzZXNNZW51TGlzdCAmJiBtX2RhdGEuc2l6ZSgpICE9
IG9sZFNpemUpKSAmJiBhdHRhY2hlZCgpKSB7CiAgICAgICAgICAgICBkZXRhY2goKTsKICAgICAg
ICAgICAgIGF0dGFjaCgpOwogICAgICAgICAgICAgc2V0UmVjYWxjTGlzdEl0ZW1zKCk7CiAgICAg
ICAgIH0KLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBtdWx0aXBsZUF0dHIpCisgICAg
fSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbXVsdGlwbGVBdHRyKSB7CiAgICAgICAgIFNlbGVj
dEVsZW1lbnQ6OnBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUobV9kYXRhLCB0aGlzLCBhdHRyKTsKLSAg
ICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYWNjZXNza2V5QXR0cikgeworICAgICAgICBzZXRO
ZWVkc1ZhbGlkaXR5Q2hlY2soKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhY2Nl
c3NrZXlBdHRyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBpZ25vcmUgZm9yIHRoZSBtb21lbnQKICAg
ICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhbGlnbkF0dHIpIHsKICAgICAgICAgLy8gRG9u
J3QgbWFwICdhbGlnbicgYXR0cmlidXRlLiAgVGhpcyBtYXRjaGVzIHdoYXQgRmlyZWZveCwgT3Bl
cmEgYW5kIElFIGRvLgpAQCAtMjU1LDYgKzI4MCw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6
OmNhblNlbGVjdEFsbCgpIGNvbnN0CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwo
KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbChtX2RhdGEsIHRoaXMpOworICAgIHNl
dE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiBSZW5kZXJPYmplY3QqIEhUTUxTZWxlY3RFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKQEAg
LTI2Niw3ICsyOTIsMTAgQEAgUmVuZGVyT2JqZWN0KiBIVE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSoKIAogYm9vbCBIVE1MU2Vs
ZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiBsaXN0LCBib29sKQogewot
ICAgIHJldHVybiBTZWxlY3RFbGVtZW50OjphcHBlbmRGb3JtRGF0YShtX2RhdGEsIHRoaXMsIGxp
c3QpOworICAgIGJvb2wgcmVzdWx0ID0gU2VsZWN0RWxlbWVudDo6YXBwZW5kRm9ybURhdGEobV9k
YXRhLCB0aGlzLCBsaXN0KTsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICBzZXROZWVkc1ZhbGlk
aXR5Q2hlY2soKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBpbnQgSFRNTFNlbGVjdEVsZW1l
bnQ6Om9wdGlvblRvTGlzdEluZGV4KGludCBvcHRpb25JbmRleCkgY29uc3QKQEAgLTMxNSw2ICsz
NDQsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRSZWNhbGNMaXN0SXRlbXMoKQogdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQoKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnJlc2V0
KG1fZGF0YSwgdGhpcyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQg
SFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCgpCkBAIC0zNDAsMTYgKzM3MCwx
OSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBl
dmVudCkKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkFuY2hvcklu
ZGV4KGludCBpbmRleCkKIHsKICAgICBTZWxlY3RFbGVtZW50OjpzZXRBY3RpdmVTZWxlY3Rpb25B
bmNob3JJbmRleChtX2RhdGEsIHRoaXMsIGluZGV4KTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hl
Y2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0aW9uRW5k
SW5kZXgoaW50IGluZGV4KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlv
bkVuZEluZGV4KG1fZGF0YSwgaW5kZXgpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwog
fQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94U2VsZWN0aW9uKGJvb2wg
ZGVzZWxlY3RPdGhlck9wdGlvbnMpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJv
eFNlbGVjdGlvbihtX2RhdGEsIHRoaXMsIGRlc2VsZWN0T3RoZXJPcHRpb25zKTsKKyAgICBzZXRO
ZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bWVudUxp
c3RPbkNoYW5nZSgpCkBAIC0zODEsMTEgKzQxNCwxMyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50
OjphY2Nlc3NLZXlTZXRTZWxlY3RlZEluZGV4KGludCBpbmRleCkKIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OnNldE11bHRpcGxlKGJvb2wgbXVsdGlwbGUpCiB7CiAgICAgc2V0QXR0cmlidXRlKG11
bHRpcGxlQXR0ciwgbXVsdGlwbGUgPyAiIiA6IDApOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTaXplKGludCBzaXplKQogewog
ICAgIHNldEF0dHJpYnV0ZShzaXplQXR0ciwgU3RyaW5nOjpudW1iZXIoc2l6ZSkpOworICAgIHNl
dE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiBOb2RlKiBIVE1MU2VsZWN0RWxlbWVudDo6bmFt
ZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKQEAgLTQ1OCwxMSArNDkzLDEzIEBAIHZv
aWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldExlbmd0aCh1bnNpZ25lZCBuZXdMZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorICAgIHNldE5lZWRz
VmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzY3JvbGxUb1Nl
bGVjdGlvbigpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6c2Nyb2xsVG9TZWxlY3Rpb24obV9kYXRh
LCB0aGlzKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCkBAIC00NzEsNCArNTA4LDkg
QEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCiAg
ICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6aW5zZXJ0ZWRJbnRvVHJlZShkZWVw
KTsKIH0KIAorYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6aXNSZXF1aXJlZEZvcm1Db250cm9sKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gcmVxdWlyZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggYTNiNDQ2MGQ0YmM5MGVmOTg4ZGQ2ZWIwNzEzYTlm
YjlmODI1MDMzMi4uY2FiOWE3OGIxN2ZlNmJlYzNmYzBjYzJkYTY2N2FmOTY5YjFiYzJiNiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQzLDYgKzQzLDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgZGVzZWxlY3QgPSB0
cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgaW5kZXgs
IGJvb2wgZGVzZWxlY3QgPSB0cnVlLCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IGZhbHNlLCBib29s
IGFsbG93TXVsdGlwbGVTZWxlY3Rpb24gPSBmYWxzZSk7CiAKKyAgICAvLyBGb3IgVmFsaWRpdHlT
dGF0ZQorICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIGJv
b2wgaXNWYWxpZFZhbHVlKGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlKSBjb25zdCB7IHJldHVybiAh
dmFsdWVNaXNzaW5nKGNhbmRpZGF0ZSk7IH0KKwogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCBpbnQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zaXplKCk7
IH0KQEAgLTEzNCw3ICsxMzgsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGluc2Vy
dGVkSW50b1RyZWUoYm9vbCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250
cm9sKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFs
Rm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiAhaXNSZXF1aXJlZEZvcm1Db250cm9sKCk7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNSZXF1aXJlZEZvcm1Db250cm9sKCkgY29uc3Q7CiAKICAgICBT
ZWxlY3RFbGVtZW50RGF0YSBtX2RhdGE7CiAgICAgQ29sbGVjdGlvbkNhY2hlIG1fY29sbGVjdGlv
bkluZm87CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAyZTUzYmNhYTZjNjM3MDgx
NDY3ZjE1NjA2NmQwZWNhYTg1MjdiNzI3Li5mNWFjNjliMmY4MWMzOTMwODQxMWY2ZGI4ZWYwYTZm
NDM1OWFmYWYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRs
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ5LDYgKzQ5LDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0
b2ZvY3VzOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBtdWx0aXBsZTsKICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CisgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZXF1aXJlZDsKICAgICAgICAgYXR0cmlidXRl
IGxvbmcgc2l6ZTsKICAgICAgICAgCiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgYWRkKGlu
IEhUTUxFbGVtZW50IGVsZW1lbnQsIGluIEhUTUxFbGVtZW50IGJlZm9yZSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgYi9X
ZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKaW5kZXggZWYzZGU2NmJiNjQzOTBlNWMyODc3
NWRlZTQwMjUyNmU2MjA2YjFkNS4uMWI5MDg1NGQzZTRkNWVkNzdmYWEwODQzOWVmNDJiNjYzOGRl
ODNlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCisrKyBiL1dl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
IkhUTUxTZWxlY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKQEAgLTExMCw2ICsxMTEsMTAgQEAgYm9vbCBWYWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3Npbmco
KSBjb25zdAogICAgICAgICBIVE1MVGV4dEFyZWFFbGVtZW50KiB0ZXh0QXJlYSA9IHN0YXRpY19j
YXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihtX2NvbnRyb2wpOwogICAgICAgICByZXR1cm4gdGV4
dEFyZWEtPnZhbHVlTWlzc2luZyh0ZXh0QXJlYS0+dmFsdWUoKSk7CiAgICAgfQorICAgIGlmICht
X2NvbnRyb2wtPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkgeworICAgICAgICBIVE1MU2VsZWN0RWxl
bWVudCogc2VsZWN0ID0gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihtX2NvbnRyb2wp
OworICAgICAgICByZXR1cm4gc2VsZWN0LT52YWx1ZU1pc3Npbmcoc2VsZWN0LT52YWx1ZSgpKTsK
KyAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75491</attachid>
            <date>2010-12-03 05:11:50 -0800</date>
            <delta_ts>2010-12-03 06:01:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101203221158.patch</filename>
            <type>text/plain</type>
            <size>51934</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OGYxNjQxMmRmNjUyZWNhMTJmNWIwNmVhOThhNTFhOWY0NGMwYTY0Li5kMmFlZWEx
NGYyOGIzYWUwZmEwMWIwN2ExYjU0MjUzYjgxOGVlNDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTAtMTItMDIgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0xMi0wMSAgSnVsaWUgUGFyZW50ICA8
anBhcmVudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFJlbW92aW5nIG91
dCBvZiBkYXRlIGV4cGVjdGF0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0
CmluZGV4IGIwNjlhNzRlMDVkZTUxZTM3N2MzMGMwNTg1ZWY1NTU0ZDRhZmNhYWYuLjNkMzcyNWZj
MmE1ZDU5MDExNmQ0ZmU4YzZjMjE3OTI2Mjc4ZGRiMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAw
MS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwyMSBAQAotVGhlcmUgYXJlIHR3byBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIGJsYW5rOiB2YWxpZGl0eS52YWx1
ZU1pc3Npbmcgc2hvdWxkIGJlIHRydWUgaW4gYm90aCBjYXNlcy4KK1RoaXMgdGVzdCBjaGVja3Mg
dmFsaWRpdHkudmFsdWVNaXNzaW5nIHdpdGggYmxhbmsgdmFsdWVzLCBibGFuayBvcHRpb25zIHNl
bGVjdGVkLCBvciBub3RoaW5nIHNlbGVjdGVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZU1pc3NpbmdGb3IoImlucHV0IikgaXMgdHJ1ZQor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVhIikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3Np
bmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpIGlzIHRydWUKK1BBU1MgdmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIHZh
bHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXpl
MiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQt
bXVsdGlwbGUiKSBpcyB0cnVlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxh
Y2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxl
IikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVy
LXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAg
ICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS5odG1sCmluZGV4IGRjODg4NzkyOTQ2NGI4MTRmNTI2ZjAz
MzE2ZjBiNTEzZjRhNDMxYjUuLmY4OTc4Zjk4YmMyODUwMGE5MTBkNGE5YTYxZTVmZDZlMzg2ZmE1
ODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXZhbHVlTWlzc2luZy0wMDEuaHRtbApAQCAtMSwyNyArMSw4NSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KIDx0aXRs
ZT5yZXF1aXJlZCBhbmQgYmFzaWMgdmFsdWVNaXNzaW5nPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0iaW5wdXQiIG5hbWU9InZpY3RpbSIgcmVx
dWlyZWQvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1aXJlZD48
L3RleHRhcmVhPgorPHNlbGVjdCBpZD0ic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiBuYW1l
PSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxv
cHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0
LXdpdGhvdXQtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24g
dmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9z
ZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTIiIG5h
bWU9InZpY3RpbSIgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0
ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0
IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIgbmFtZT0idmljdGltIiBzaXpl
PSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9u
IHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1ub25l
LXNlbGVjdGVkLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHJlcXVpcmVkPgorICA8
b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2Vs
ZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlw
bGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIg
c2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8
c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiBuYW1l
PSJ2aWN0aW0iIG11bHRpcGxlIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRp
b24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBp
ZD0ic2VsZWN0LW5vbmUtc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVs
dGlwbGUgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlv
biB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFr
ZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0
aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgor
ICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNl
bGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZpY3Rp
bSIgbXVsdGlwbGUgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29w
dGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+CiA8c2NyaXB0
IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0
aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rpb24g
dmFsdWVNaXNzaW5nRm9yKGlkKSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZCkudmFsaWRpdHkudmFsdWVNaXNzaW5nOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHRl
c3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIHdpdGggYmxhbmsgdmFsdWVz
LCBibGFuayBvcHRpb25zIHNlbGVjdGVkLCBvciBub3RoaW5nIHNlbGVjdGVkLiIpOwogCi0gICAg
ICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOwogCi0gICAgICAgIGxvZygodlswXS52YWxpZGl0eS52YWx1ZU1pc3Np
bmcgJiYgdlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUi
KTsKLSAgICB9CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsK
KworICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpJyk7CisgICAgc2hv
dWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVhIiknKTsKKyAgICBzaG91bGRCZVRy
dWUoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9s
ZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFj
ZWhvbGRlci1zZWxlY3RlZC1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxk
QmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLW11bHRpcGxlIikn
KTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNl
aG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKScpOwor
ICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1z
aXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNl
aG9sZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKwor
ICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVt
ZW50cyBiZWxvdywgYm90aCByZXF1aXJlZCBhbmQgYmxhbms6Ci12YWxpZGl0eS52YWx1ZU1pc3Np
bmcgc2hvdWxkIGJlIHRydWUgaW4gYm90aCBjYXNlcy48L3A+Ci08aW5wdXQgbmFtZT0idmljdGlt
IiByZXF1aXJlZC8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVh
PgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi1leHBlY3RlZC50eHQKaW5kZXggMzYwNjliODUzYzkxMjlj
NDU5ZWU3YzAzZjZiN2UzNTg5ZTQzYWFhNC4uYmNiMmE4NDQyMjVmZmE5NmQ4Njk0NTE4MWViNzM0
NzdkNzc3M2YyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDE5IEBACi1UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90
aCByZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOiB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hv
dWxkIGJlIGZhbHNlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZh
bHVlTWlzc2luZyB3aXRoIHNvbWUgdmFsdWVzIG9yIG9wdGlvbnMgd2l0aCBzb21lIHZhbHVlcyBz
ZWxlY3RlZC4KIAotIAotU1VDQ0VTUworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zv
cigidGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRo
LXBsYWNlaG9sZGVyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0
aG91dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0
LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2lu
Z0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQ
QVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBs
ZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1w
bGFjZWhvbGRlci1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNT
IHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1t
dWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKyAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwKaW5kZXggNmYwNmY5ZjQz
NjQ1ZjQ5Y2MzM2Y3ODBiNWFmOTYyYjE0N2E3ZTgzNS4uMmMyZTEwNmZmYzJiZTM1ZWYyYTYzODJm
Njc0MWY4ZGVkZmRiNGFjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi5odG1sCkBAIC0xLDI3ICsxLDc1IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4K
IDxoZWFkPgogPHRpdGxlPnJlcXVpcmVkIGFuZCBiYXNpYyB2YWx1ZU1pc3NpbmcgMjwvdGl0bGU+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBu
YW1lPSJ2aWN0aW0iIHZhbHVlPSJzb21ldGhpbmciIHJlcXVpcmVkLz4KKzx0ZXh0YXJlYSBpZD0i
dGV4dGFyZWEiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+c29tZXRoaW5nPC90ZXh0YXJlYT4KKzxz
ZWxlY3QgaWQ9InNlbGVjdC13aXRoLXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVk
PgorICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8
L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xk
ZXIiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVk
Plg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlk
PSJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9
IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9Ilgi
IHNlbGVjdGVkPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhv
dXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJl
ZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZh
bHVlPSIiIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRoLWZha2UtcGxhY2Vo
b2xkZXItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRp
b24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgor
PC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11
bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVl
PSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKzwvc2VsZWN0
PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBs
ZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8L3Nl
bGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTIt
bXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxv
cHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAv
PgorPC9zZWxlY3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8
L2xpPiI7CisgICAgZnVuY3Rpb24gdmFsdWVNaXNzaW5nRm9yKGlkKSB7CisgICAgICAgIHJldHVy
biBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkudmFsaWRpdHkudmFsdWVNaXNzaW5nOwogICAg
IH0KIAotICAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNz
aW5nIHdpdGggc29tZSB2YWx1ZXMgb3Igb3B0aW9ucyB3aXRoIHNvbWUgdmFsdWVzIHNlbGVjdGVk
LiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCi0gICAgICAgIGxvZygoIXZbMF0udmFsaWRp
dHkudmFsdWVNaXNzaW5nICYmICF2WzFdLnZhbGlkaXR5LnZhbHVlTWlzc2luZykgPyAiU1VDQ0VT
UyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5h
bWUoInZpY3RpbSIpOworCisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJpbnB1
dCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpJyk7
CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1wbGFjZWhv
bGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0
aG91dC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIiknKTsKKyAgICBzaG91bGRCZUZh
bHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6
ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgt
ZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLWZha2UtcGxh
Y2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlz
c2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIp
Jyk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgot
PHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWly
ZWQgYW5kIHdpdGggc29tZSB2YWx1ZToKLXZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUg
ZmFsc2UgaW4gYm90aCBjYXNlcy48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiB2YWx1ZT0ic29t
ZXRoaW5nIiByZXF1aXJlZC8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD5zb21l
dGhpbmc8L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKaW5kZXgg
ZGZlMzM5ODY5MGUxOWJmMzJlYTIyMDBmYzQxNThmYTllYWIzODU3Mi4uMWY0MTJiZDZlYTY2NmY1
YmU1YjUwMWQyYTE1ZDExYmUzZTQ2MDFhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDIxIEBACi1UaGVyZSBhcmUgdHdvIGRpc2FibGVkIGZvcm0gY29u
dHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOiB2
YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIGZhbHNlIGluIGJvdGggY2FzZXMuCitUaGlz
IHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyBvZiBkaXNhYmxlZCBmb3JtIGNvbnRy
b2xzIHdpdGggYmxhbmsgdmFsdWVzLCBibGFuayBvcHRpb25zIHNlbGVjdGVkLCBvciBub3RoaW5n
IHNlbGVjdGVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoImlucHV0IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJ0ZXh0YXJlYSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBs
YWNlaG9sZGVyLXNlbGVjdGVkIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigi
c2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQ
QVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBm
YWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVj
dGVkLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0
aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQ
QVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6
ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRo
b3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAgIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2lu
Zy0wMDMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1p
c3NpbmctMDAzLmh0bWwKaW5kZXggOWQ5MmZmYjM0YjcyMjQ2ZmNkYTcyMDdjNDU3MzM3YTFlZjJm
ZmQ0Yy4uZjc1MTQ3ZGZiMGI4Y2I1OGI4ZWE1ZjJjOGIzMjMxYTcwNmZlMWY2NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNz
aW5nLTAwMy5odG1sCkBAIC0xLDI3ICsxLDg1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJlcXVpcmVkIGFu
ZCB2YWx1ZU1pc3Npbmcgb24gZGlzYWJsZWQgZWxlbWVudHM8L3RpdGxlPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGltIiBk
aXNhYmxlZCByZXF1aXJlZCAvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGlt
IiBkaXNhYmxlZCByZXF1aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBpZD0ic2VsZWN0LXBsYWNl
aG9sZGVyLXNlbGVjdGVkIiBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0
aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4K
Kzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiIG5hbWU9
InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlk
PSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTIiIG5hbWU9InZpY3RpbSIgc2l6ZT0i
MiIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAg
PG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxl
Y3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiBkaXNh
YmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9u
IHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1ub25l
LXNlbGVjdGVkLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIGRpc2FibGVkIHJlcXVp
cmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0
ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWlyZWQ+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0
aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9s
ZGVyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIGRpc2FibGVkIHJlcXVpcmVkPgor
ICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0
ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUtc2VsZWN0ZWQtc2l6ZTIt
bXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgZGlzYWJsZWQgcmVxdWly
ZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9u
PgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3Rl
ZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiBkaXNhYmxl
ZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZh
bHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0
LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUg
c2l6ZT0iMiIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+CiA8c2NyaXB0IGxh
bmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9u
IGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rpb24gdmFs
dWVNaXNzaW5nRm9yKGlkKSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChpZCkudmFsaWRpdHkudmFsdWVNaXNzaW5nOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHRlc3Qo
KSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIG9mIGRpc2FibGVkIGZvcm0gY29u
dHJvbHMgd2l0aCBibGFuayB2YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9yIG5vdGhp
bmcgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1l
KCJ2aWN0aW0iKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAKLSAgICAgICAgbG9nKCgh
dlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgIXZbMV0udmFsaWRpdHkudmFsdWVNaXNzaW5n
KSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgfQorICAgIHYgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5TmFtZSgidmljdGltIik7CisKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3Np
bmdGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInRl
eHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1w
bGFjZWhvbGRlci1zZWxlY3RlZCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgn
dmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTIiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vo
b2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVl
TWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlwbGUiKScp
OworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFr
ZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxl
Y3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiknKTsK
KworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5U
aGVyZSBhcmUgdHdvIGRpc2FibGVkIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBy
ZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3Vs
ZCBiZSBmYWxzZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIGRpc2Fi
bGVkIHJlcXVpcmVkIC8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJl
ZD48L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2Jv
ZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFs
aWRpdHktMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxp
ZGl0eS0wMDItZXhwZWN0ZWQudHh0CmluZGV4IDE4NTc5NDQ0ODcwZDM5NDA1NWQzYTkyMDM3NDRj
N2VkODQwYzhlODQuLjgzODg4Mjg4OGY3NjJiYjE0NTFkMTgwYWIyOWYxZmI4ODg4OGM4OTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhw
ZWN0ZWQudHh0CkBAIC0xLDEyICsxLDE0IEBACi1UaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFs
aWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQg
b24gaW52YWxpZCBlbGVtZW50cy4KK1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgp
IHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZh
bGlkIGVsZW1lbnRzLCBhbmQgcmV0dXJucyBhIHRydWUgcmVzdWx0IG9uIGEgYmxhbmsgYnV0IHZh
bGlkIGVsZW1lbnRzLiBCbGFuayBidXQgbm9uLXBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbnMgYXJl
IHZhbGlkLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotICAKLVBBU1MgdltpXS5j
aGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKLVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFs
c2UKLVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKKyAgICAKK1BBU1MgY2hlY2tW
YWxpZGl0eUZvcigiaW5wdXQtZW1wdHkiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9y
KCJpbnB1dC1wYXR0ZXJuLW1pc21hdGNoIikgaXMgZmFsc2UKK1BBU1MgY2hlY2tWYWxpZGl0eUZv
cigidGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3QtcGxh
Y2Vob2xkZXIiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qtbm9uLXBs
YWNlaG9sZGVyIikgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFs
aWRpdHktMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAy
Lmh0bWwKaW5kZXggMjg3MmZhZDM1YmVlODJlNDY1YmVlMTdlZmJmMTFmNTgwZmY0MmNjOS4uNjYy
ZjZlYmZkMzExMWVhZmUyYjcxMWNmOGIwMDJmMWIwOGJlZTlkMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbApAQCAtNywxOSArNywzMyBAQAogPGJv
ZHk+CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxmb3JtIG1ldGhvZD0iZ2V0Ij4KLTxpbnB1
dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkLz4KLTxpbnB1dCBuYW1lPSJ2aWN0
aW0iIHR5cGU9InRleHQiIHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIv
PgotPHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KKzxpbnB1dCBp
ZD0iaW5wdXQtZW1wdHkiIG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVxdWlyZWQvPgorPGlu
cHV0IGlkPSJpbnB1dC1wYXR0ZXJuLW1pc21hdGNoIiBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQi
IHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIvPgorPHRleHRhcmVhIGlk
PSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBp
ZD0ic2VsZWN0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9u
IHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwv
c2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbi1wbGFjZWhvbGRlciIgbmFtZT0idmljdGlt
IiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KIDwvZm9ybT4KIDxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNr
VmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1
bHQgb24gaW52YWxpZCBlbGVtZW50cy4iKTsKKyAgICBmdW5jdGlvbiBjaGVja1ZhbGlkaXR5Rm9y
KGlkKSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hlY2tW
YWxpZGl0eSgpOworICAgIH0KIAotdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKLWZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQotICAgIHNob3VsZEJlKCJ2W2ld
LmNoZWNrVmFsaWRpdHkoKSIsICJmYWxzZSIpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
Y2hlY2tzIGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFu
aW5nIGVycm9yKSByZXN1bHQgb24gaW52YWxpZCBlbGVtZW50cywgYW5kIHJldHVybnMgYSB0cnVl
IHJlc3VsdCBvbiBhIGJsYW5rIGJ1dCB2YWxpZCBlbGVtZW50cy4gQmxhbmsgYnV0IG5vbi1wbGFj
ZWhvbGRlciBsYWJlbCBvcHRpb25zIGFyZSB2YWxpZC4iKTsKIAotdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigiaW5wdXQt
ZW1wdHkiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoImlucHV0LXBh
dHRlcm4tbWlzbWF0Y2giKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3Io
InRleHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5Rm9yKCJzZWxl
Y3QtcGxhY2Vob2xkZXIiKScpOworICAgIHNob3VsZEJlVHJ1ZSgnY2hlY2tWYWxpZGl0eUZvcigi
c2VsZWN0LW5vbi1wbGFjZWhvbGRlciIpJyk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKaW5kZXggOWIy
MDE0MzE4YTNlNTBiZDNlZjVkNDAwMTM2YzMwMjQ2OTFmODljZC4uYjliNTRiODc2NGM0OWRhNjAx
N2E0MTdjN2U4ZjM3ZmYxY2U2NGFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
MTIgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJl
cXVpcmVkLgorVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYWxs
IHJlcXVpcmVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyByZXF1aXJlZEZvcigiaW5wdXQiKSBpcyB0cnVlCitQQVNTIHJlcXVpcmVkRm9yKCJ0ZXh0
YXJlYSIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInNlbGVjdCIpIGlzIHRydWUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKaW5kZXgg
MmYzNGMxNjFhY2Y2YTNmNWY0MDAwODczZmQ4MjY2YzAxN2ZlMDM2MC4uZDMyNjIyNDMzODEzOTky
Y2ZmNzUzYzE2MWZmM2YxMDI5MDc3NWNlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKQEAgLTEsMjYgKzEsNDAgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+
CiA8dGl0bGU+cmVxdWlyZWQgYXR0cmlidXRlIHByZXNlbmNlIHRlc3Q8L3RpdGxlPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmlj
dGltIiByZXF1aXJlZCAvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIiBy
ZXF1aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBpZD0ic2VsZWN0IiBuYW1lPSJ2aWN0aW0iIHJl
cXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9
IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxp
PiIrbWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHJlcXVpcmVkRm9yKGlkKSB7CisgICAg
ICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkucmVxdWlyZWQ7CiAgICAgfQog
Ci0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBkZXNjcmlwdGlvbigiVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBi
ZWxvdywgYWxsIHJlcXVpcmVkLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5TmFtZSgidmljdGltIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCi0gICAgICAg
IGxvZygodlswXS5yZXF1aXJlZCAmJiB2WzFdLnJlcXVpcmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlM
VVJFIik7Ci0gICAgfQorICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGlt
Iik7CisKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJpbnB1dCIpJyk7CisgICAgc2hv
dWxkQmVUcnVlKCdyZXF1aXJlZEZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1ZSgn
cmVxdWlyZWRGb3IoInNlbGVjdCIpJyk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAg
ICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVu
dHMgYmVsb3csIGJvdGggcmVxdWlyZWQuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgcmVxdWly
ZWQgLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+
Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIt
ZXhwZWN0ZWQudHh0CmluZGV4IGFjNWMwZmZmMjI4NjZlMTE1ZmYwY2M0M2NkNGRiNDljOGU5OGZi
ZmEuLmMyNTU2MWQxNGNjNzYwYzI3NzgxMzhmNzRjN2YyNDY1YTIwMjYyYzcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDE5IEBACi1UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBl
bGVtZW50cyBiZWxvdywgYm90aCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlh
IHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUuCitUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVs
ZW1lbnRzIGJlbG93LCBhbGwgb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSBy
ZXF1aXJlZCBET00gYXR0cmlidXRlLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworQmVmb3JlIHNldDoKK1BBU1MgcmVxdWlyZWRGb3IoImlucHV0IikgaXMgZmFs
c2UKK1BBU1MgcmVxdWlyZWRGb3IoInRleHRhcmVhIikgaXMgZmFsc2UKK1BBU1MgcmVxdWlyZWRG
b3IoInNlbGVjdCIpIGlzIGZhbHNlCisKK0FmdGVyIHNldDoKK1BBU1MgcmVxdWlyZWRGb3IoImlu
cHV0IikgaXMgdHJ1ZQorUEFTUyByZXF1aXJlZEZvcigidGV4dGFyZWEiKSBpcyB0cnVlCitQQVNT
IHJlcXVpcmVkRm9yKCJzZWxlY3QiKSBpcyB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLmh0bWwKaW5kZXggYWE4NWU4OTU0ZWUwNzgxOGQx
YzI4YmQ1NTIwYTk1YjIyMWM3N2I5MC4uNDAxMDkzOWVmY2VhNjk5M2JiZmZkYWM0MjgzZjA4ZDkw
MTRiYTI2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRy
aWJ1dGUtMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRy
aWJ1dGUtMDAyLmh0bWwKQEAgLTEsMzIgKzEsNTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQg
YXR0cmlidXRlIEpTIHNldDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIC8+Cis8dGV4dGFyZWEgaWQ9InRl
eHRhcmVhIiBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QiIG5h
bWU9InZpY3RpbSI+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2
YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2Ny
aXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7
Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9
ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rpb24gcmVxdWlyZWRGb3IoaWQpIHsK
KyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5yZXF1aXJlZDsKICAg
ICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGRlc2NyaXB0aW9uKCJUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1l
bnRzIGJlbG93LCBhbGwgb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSByZXF1
aXJlZCBET00gYXR0cmlidXRlLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5TmFtZSgidmljdGltIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCi0gICAgICAg
IGlmICh2WzBdLnJlcXVpcmVkID09IGZhbHNlICYmIHZbMV0ucmVxdWlyZWQgPT0gZmFsc2UpIHsK
LSAgICAgICAgICAgIHZbMF0ucmVxdWlyZWQgPSB0cnVlOwotICAgICAgICAgICAgdlsxXS5yZXF1
aXJlZCA9IHRydWU7Ci0gICAgICAgICAgICBsb2cgKCh2WzBdLnJlcXVpcmVkICYmIHZbMV0ucmVx
dWlyZWQpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICAgICAgfQotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBsb2coIkZBSUxVUkUiKTsKLSAgICB9CisgICAgdiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKworICAgIGRlYnVnKCJCZWZvcmUgc2V0OiIpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3JlcXVpcmVkRm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVG
YWxzZSgncmVxdWlyZWRGb3IoInRleHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdyZXF1
aXJlZEZvcigic2VsZWN0IiknKTsKKyAgICBkZWJ1ZygiIik7CisKKyAgICB2WzBdLnJlcXVpcmVk
ID0gdHJ1ZTsKKyAgICB2WzFdLnJlcXVpcmVkID0gdHJ1ZTsKKyAgICB2WzJdLnJlcXVpcmVkID0g
dHJ1ZTsKKworICAgIGRlYnVnKCJBZnRlciBzZXQ6Iik7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1
aXJlZEZvcigiaW5wdXQiKScpOworICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoInRleHRh
cmVhIiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJzZWxlY3QiKScpOworICAg
IGRlYnVnKCIiKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKworICAgIHZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRl
c3QoKSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90
aCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRy
aWJ1dGUuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0
aW0iPjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3Vy
Y2VzL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdkN2I0NDk5Zjg2MjI0ODNlNTkwMGUyNDA3Y2U4YTZiMGFiMDI2MmUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmpzCkBAIC0wLDAgKzEsMTA4IEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHBl
cmZvcm1zIGEgY2hlY2sgdGhhdCA6dmFsaWQvOmludmFsaWQgQ1NTIHBzdWRvIHNlbGVjdG9ycyBh
cmUgbGl2ZWx5IGFwcGxpZWQuIik7CisKKy8vIFNldHVwIGZvciBzdGF0aWMgZWxlbWVudHMuCit2
YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZm9ybSk7Cit2YXIgbm9uRm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChub25Gb3JtKTsKKworZnVuY3Rpb24g
bWFrZUludmFsaWQoKSB7CisgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3NlbGVjdCcpOworICAgIHNlbGVjdC5uYW1lID0gJ2Zvbyc7CisgICAgc2VsZWN0LnJlcXVpcmVk
ID0gdHJ1ZTsKKyAgICBzZWxlY3QudmFsdWUgPSAnJzsKKyAgICBmb3JtLmFwcGVuZENoaWxkKHNl
bGVjdCk7CisgICAgcmV0dXJuIHNlbGVjdDsKK30KKworZnVuY3Rpb24gYXBwZW5kT3B0aW9uKHZh
bHVlLCBzZWxlY3QpIHsKKyAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
b3B0aW9uJyk7CisgICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7CisgICAgb3B0aW9uLmlubmVyVGV4
dCA9IHZhbHVlOworICAgIHNlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pOworICAgIHJldHVybiBv
cHRpb247Cit9CisKK2Z1bmN0aW9uIGJhY2tncm91bmRPZihlbCkgeworICAgIHJldHVybiBkb2N1
bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQcm9wZXJ0eVZh
bHVlKCdiYWNrZ3JvdW5kLWNvbG9yJyk7Cit9CisKK3ZhciBlbEJhY2tncm91bmQgPSAnYmFja2dy
b3VuZE9mKGVsKSc7Cit2YXIgaW52YWxpZENvbG9yID0gJ3JnYigyNTUsIDAsIDApJzsKK3ZhciBu
b3JtYWxDb2xvciA9ICdyZ2IoMjU1LCAyNTUsIDI1NSknOwordmFyIGRpc2FibGVkQ29sb3IgPSAn
cmdiKDAsIDAsIDApJzsKK3ZhciByZWFkT25seUNvbG9yID0gJ3JnYigwLCAyNTUsIDApJwordmFy
IHZhbGlkQ29sb3IgPSAncmdiKDAsIDAsIDI1NSknOworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorLy8gICAgIHdpbGxWYWxpZGF0ZSBjaGFuZ2UKKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCit2YXIgZWwgPSBtYWtlSW52YWxpZCgpOwordmFyIG8xID0g
YXBwZW5kT3B0aW9uKCcnLCBlbCk7Cit2YXIgbzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7Citv
MS5zZWxlY3RlZCA9IHRydWU7CisvLyBDb25maXJtIHRoaXMgZWxlbWVudCBpcyBpbnZhbGlkLgor
ZGVidWcoJ0NoZWNrIHRoZSBpbml0aWFsIHN0YXRlOicpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5k
LCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdDaGFuZ2UgbmFtZTonKTsKK2VsLm5hbWUgPSAn
JzsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworZWwubmFtZSA9ICdi
YXInOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdD
aGFuZ2UgZGlzYWJsZWQ6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlv
bignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9IHRy
dWU7CitlbC5kaXNhYmxlZCA9IHRydWU7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdkaXNhYmxl
ZENvbG9yJyk7CitlbC5kaXNhYmxlZCA9IGZhbHNlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAn
aW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdJbnNpZGUvb3V0c2lkZSBvZiBhIGZvcm06Jyk7Citl
bCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBl
bmRPcHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9IHRydWU7Citub25Gb3JtLmFwcGVuZENo
aWxkKGVsKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworZm9ybS5h
cHBlbmRDaGlsZChlbCk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsK
KworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICB2YWx1ZSBjaGFu
Z2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkZWJ1ZygnQ2hhbmdlIHRo
ZSB2YWx1ZSBieSBET00gYXR0cmlidXRlIHdpdGggYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRpb246
Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIg
PSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMi5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRCZShl
bEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRC
ZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5nZSB0aGUgdmFs
dWUgYnkgRE9NIGF0dHJpYnV0ZSB3aXRob3V0IGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uOicp
OworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMiA9
IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxC
YWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUo
ZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorLy8gICAgIENvbnN0cmFpbnRzIGNoYW5nZQorLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK2RlYnVnKCdDaGFuZ2UgcmVxdWlyZWQ6Jyk7CitlbCA9IG1ha2VJ
bnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24o
J1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitlbC5yZXF1aXJlZCA9IGZhbHNlOworc2hv
dWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwucmVxdWlyZWQgPSB0cnVlOwor
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcwppbmRleCBkNjgyNmRlMTgyZTMxMzc3YWMw
YzQ4ZDk0NjhjYjc2YThhNTZmNDcxLi41YzU2NTQyNzAxNTE0MmVkMmQwNmY0NDQ2MmM3YWNjODU1
ZDdhNWYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92
YWxpZGF0aW9uTWVzc2FnZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcwpAQCAtMjQsNiArMjQsMTMgQEAgcmVxdWlyZWRUZXh0
QXJlYS5yZXF1aXJlZCA9IHRydWU7CiBmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkVGV4dEFyZWEp
Owogc2hvdWxkQmUoInJlcXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVl
IG1pc3NpbmcnIik7CiAKKy8vIEEgcmVxdWlyZWQgc2VsZWN0IHdpdGggYW4gZW1wdHkgdmFsdWUK
K3ZhciByZXF1aXJlZFNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwor
cmVxdWlyZWRTZWxlY3QubmFtZSA9ICJyZXF1aXJlZFNlbGVjdCI7CityZXF1aXJlZFNlbGVjdC5y
ZXF1aXJlZCA9IHRydWU7Citmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkU2VsZWN0KTsKK3Nob3Vs
ZEJlKCJyZXF1aXJlZFNlbGVjdC52YWxpZGF0aW9uTWVzc2FnZSIsICIndmFsdWUgbWlzc2luZyci
KTsKKwogLy8gQSB0eXBlPWVtYWlsIGlucHV0IGZvciB0aGUgInR5cGUgbWlzbWF0Y2giIGZsYWcK
IHZhciBlbWFpbElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKIGVtYWls
SW5wdXQubmFtZSA9ICJlbWFpbElucHV0IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdiMDM3MDZhODdjMDFmMzZiYjJjZmU1Njg1ZTczZWEwMjczNmE0MzAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVk
by1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKK1RoaXMgdGVzdCBwZXJm
b3JtcyBhIGNoZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3RvcnMgYXJl
IGxpdmVseSBhcHBsaWVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ2hlY2sg
dGhlIGluaXRpYWwgc3RhdGU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9y
CitDaGFuZ2UgbmFtZToKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BB
U1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSBkaXNhYmxlZDoKK1BB
U1MgYmFja2dyb3VuZE9mKGVsKSBpcyBkaXNhYmxlZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihl
bCkgaXMgaW52YWxpZENvbG9yCitJbnNpZGUvb3V0c2lkZSBvZiBhIGZvcm06CitQQVNTIGJhY2tn
cm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCitDaGFuZ2UgdGhlIHZhbHVlIGJ5IERPTSBhdHRyaWJ1dGUgd2l0aCBhIHBsYWNl
aG9sZGVyIGxhYmVsIG9wdGlvbjoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9y
CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgdGhlIHZhbHVl
IGJ5IERPTSBhdHRyaWJ1dGUgd2l0aG91dCBhIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbjoKK1BB
U1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkg
aXMgdmFsaWRDb2xvcgorQ2hhbmdlIHJlcXVpcmVkOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3Jz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDJlOWY4NzY1MGM0ZDNiZmFjODlkNGE4MWFjMWRjNTkxNjI1ZmZk
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sCis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2xpdmUtcHNldWRvLXNlbGVjdG9y
cy5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NlbGVjdC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dApp
bmRleCAwZTEyZDhhMjcxZTVkZDhmNTUzYTIxZDFhOWMyYmQ3YWJlNWRkNjMxLi5lOTE5NjFkMTAw
OWYzOTkxOTBjZGFkZTMzMDBmOTNhYjM0NDQ2NjRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dApAQCAtNiw2ICs2LDcg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIFBBU1MgcGF0dGVybklucHV0LnZhbGlkYXRpb25N
ZXNzYWdlIGlzICdwYXR0ZXJuIG1pc21hdGNoJwogUEFTUyByZXF1aXJlZElucHV0LnZhbGlkYXRp
b25NZXNzYWdlIGlzICd2YWx1ZSBtaXNzaW5nJwogUEFTUyByZXF1aXJlZFRleHRBcmVhLnZhbGlk
YXRpb25NZXNzYWdlIGlzICd2YWx1ZSBtaXNzaW5nJworUEFTUyByZXF1aXJlZFNlbGVjdC52YWxp
ZGF0aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKIFBBU1MgZW1haWxJbnB1dC52YWxpZGF0
aW9uTWVzc2FnZSBpcyAndHlwZSBtaXNtYXRjaCcKIFBBU1MgYnV0LnZhbGlkYXRpb25NZXNzYWdl
IGlzICcnCiBQQVNTIGFub25pbnB1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YmRkZGU1OTg5
MzQxNDIwYzU0NmI2OTNkZDBhNmU1Y2UzMWMxMDM5Li5hNjMyOTYxODkzYzI1YzMyZDdlODYzM2Iw
MGQ0ZDhiZjllNzI2YzZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEwLTEyLTAyICBEYWkgTWlrdXJ1YmUg
IDxkbWlrdXJ1YmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgInJlcXVpcmVkIiBhdHRyaWJ1dGUgZm9yIHNlbGVj
dCB0YWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDM4MAorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVj
dG9ycy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpkZXNlbGVjdEl0ZW1zKTogQWRkZWQgY2Fs
bGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKSB0byBlbmFibGUgdmFsaWRpdHkgY2hlY2sgYWZ0
ZXIgY2hhbmdpbmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2Vs
ZWN0ZWRJbmRleCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcik6
IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6dmFsdWVNaXNzaW5nKTogQWRkZWQgdmFsdWVNaXNzaW5nKCkg
dG8gY2hlY2sgaWYgc2VsZWN0aW5nIGFuIGludmFsaWQgb3IgcGxhY2Vob2xkZXIgbGFiZWwgb3B0
aW9uIHdoZW4gYSB2YWxpZCByZXF1aXJlZCBhdHRyaWJ1dGUgaXMgc3BlY2lmaWVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hTZWxlY3RJdGVtKTogQWRkZWQg
Y2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjphZGQpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygp
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZSk6IEFkZGVkIGNh
bGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Vs
ZWN0RWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOiBBZGRlZCBjYWxsaW5nIHNldE5l
ZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6
OnBhcnNlTWFwcGVkQXR0cmlidXRlKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hl
Y2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwpOiBB
ZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0KTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5
Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZXRBY3RpdmVT
ZWxlY3Rpb25BbmNob3JJbmRleCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNr
KCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0
aW9uRW5kSW5kZXgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24p
OiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldExlbmd0aCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNW
YWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aXNS
ZXF1aXJlZEZvcm1Db250cm9sKTogQ2hlY2sgaWYgcmVxdWlyZWQgb3Igbm90LgorICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RF
bGVtZW50Ojppc09wdGlvbmFsRm9ybUNvbnRyb2wpOiBDaGVjayBpZiBub3QgcmVxdWlyZWQuCisg
ICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6IEFkZGVkIGEgcmVxdWlyZWQgYXR0
cmlidXRlIHRvIHNlbGVjdCBlbGVtZW50cy4uCisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnZhbHVlTWlzc2luZyk6IEFk
ZGVkIHZhbHVlTWlzc2luZyBjaGVjayBmb3Igc2VsZWN0IGVsZW1lbnRzIGludG8gdGhlIGdsb2Jh
bCBjaGVja2VyLCBWYWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3NpbmcoKS4KKwogMjAxMC0xMi0wMSAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeDog
QWRkZWQgYSBmb3J3YXJkaW5nIGhlYWRlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NlbGVj
dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZDIzNmM5
NjY1ZGM5ZTJhZmJlYTIxZTFkYjM1MDE4ZmUxMjEzNGIyNS4uY2YyNGE4MTdhZDFiYWI0YTlkNzFm
ZWMzZWVjNDA5YTFhZDVmZWQxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAKQEAgLTIxNCw3ICsyMTQs
NyBAQCB2b2lkIFNlbGVjdEVsZW1lbnQ6Om1lbnVMaXN0T25DaGFuZ2UoU2VsZWN0RWxlbWVudERh
dGEmIGRhdGEsIEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgfQogfQogCi12b2lkIFNlbGVjdEVsZW1l
bnQ6OnNjcm9sbFRvU2VsZWN0aW9uKFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBl
bGVtZW50KQordm9pZCBTZWxlY3RFbGVtZW50OjpzY3JvbGxUb1NlbGVjdGlvbihjb25zdCBTZWxl
Y3RFbGVtZW50RGF0YSYgZGF0YSwgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoZGF0YS51
c2VzTWVudUxpc3QoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQg
U2VsZWN0RWxlbWVudDo6cGFyc2VNdWx0aXBsZUF0dHJpYnV0ZShTZWxlY3RFbGVtZW50RGF0YSYg
ZGF0YSwgRWxlbWVudCogZWxlCiAgICAgfQogfQogCi1ib29sIFNlbGVjdEVsZW1lbnQ6OmFwcGVu
ZEZvcm1EYXRhKFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50LCBGb3Jt
RGF0YUxpc3QmIGxpc3QpCitib29sIFNlbGVjdEVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKGNvbnN0
IFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50LCBGb3JtRGF0YUxpc3Qm
IGxpc3QpCiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gZWxlbWVudC0+Zm9ybUNv
bnRyb2xOYW1lKCk7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vU2VsZWN0RWxlbWVudC5oIGIvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5oCmluZGV4
IDUzODE1ZjJhZWJlNWIwOTViZmRhMDU4NDNlNTE0YzdlMGM5MWJhMTIuLmNlY2I0NjQxYTdlNmMw
YTMyNzQ0YzE4NDYyNmVmYzFjMzcyZDFlZDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NlbGVj
dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmgKQEAgLTc3LDcgKzc3
LDcgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyB2b2lkIHVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24o
U2VsZWN0RWxlbWVudERhdGEmLCBFbGVtZW50KiwgYm9vbCBkZXNlbGVjdE90aGVyT3B0aW9ucyk7
CiAgICAgc3RhdGljIHZvaWQgbGlzdEJveE9uQ2hhbmdlKFNlbGVjdEVsZW1lbnREYXRhJiwgRWxl
bWVudCopOwogICAgIHN0YXRpYyB2b2lkIG1lbnVMaXN0T25DaGFuZ2UoU2VsZWN0RWxlbWVudERh
dGEmLCBFbGVtZW50Kik7Ci0gICAgc3RhdGljIHZvaWQgc2Nyb2xsVG9TZWxlY3Rpb24oU2VsZWN0
RWxlbWVudERhdGEmLCBFbGVtZW50Kik7CisgICAgc3RhdGljIHZvaWQgc2Nyb2xsVG9TZWxlY3Rp
b24oY29uc3QgU2VsZWN0RWxlbWVudERhdGEmLCBFbGVtZW50Kik7CiAgICAgc3RhdGljIHZvaWQg
c2V0UmVjYWxjTGlzdEl0ZW1zKFNlbGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCopOwogICAgIHN0
YXRpYyB2b2lkIHJlY2FsY0xpc3RJdGVtcyhTZWxlY3RFbGVtZW50RGF0YSYsIGNvbnN0IEVsZW1l
bnQqLCBib29sIHVwZGF0ZVNlbGVjdGVkU3RhdGVzID0gdHJ1ZSk7CiAgICAgc3RhdGljIGludCBz
ZWxlY3RlZEluZGV4KGNvbnN0IFNlbGVjdEVsZW1lbnREYXRhJiwgY29uc3QgRWxlbWVudCopOwpA
QCAtOTAsNyArOTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGJvb2wgc2F2ZUZvcm1Db250
cm9sU3RhdGUoY29uc3QgU2VsZWN0RWxlbWVudERhdGEmLCBjb25zdCBFbGVtZW50KiwgU3RyaW5n
JiBzdGF0ZSk7CiAgICAgc3RhdGljIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoU2VsZWN0
RWxlbWVudERhdGEmLCBFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBzdGF0ZSk7CiAgICAgc3RhdGlj
IHZvaWQgcGFyc2VNdWx0aXBsZUF0dHJpYnV0ZShTZWxlY3RFbGVtZW50RGF0YSYsIEVsZW1lbnQq
LCBBdHRyaWJ1dGUqKTsKLSAgICBzdGF0aWMgYm9vbCBhcHBlbmRGb3JtRGF0YShTZWxlY3RFbGVt
ZW50RGF0YSYsIEVsZW1lbnQqLCBGb3JtRGF0YUxpc3QmKTsKKyAgICBzdGF0aWMgYm9vbCBhcHBl
bmRGb3JtRGF0YShjb25zdCBTZWxlY3RFbGVtZW50RGF0YSYsIEVsZW1lbnQqLCBGb3JtRGF0YUxp
c3QmKTsKICAgICBzdGF0aWMgdm9pZCByZXNldChTZWxlY3RFbGVtZW50RGF0YSYsIEVsZW1lbnQq
KTsKICAgICBzdGF0aWMgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKFNlbGVjdEVsZW1lbnREYXRh
JiwgRWxlbWVudCosIEV2ZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAgICAgc3RhdGljIGludCBs
YXN0U2VsZWN0ZWRMaXN0SW5kZXgoY29uc3QgU2VsZWN0RWxlbWVudERhdGEmLCBjb25zdCBFbGVt
ZW50Kik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBjNjgwZTkyZTQwYWE5NTEy
YWE4MjdlZTg5YTI3YzBhYWVhY2UzODAwLi42ODAwNGQwZmI3MjQ1MzI4MjRhOTRlNzEyNTNmZjgw
ZThhNzNiOTFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTc4LDExICs3OCwx
MyBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdGVkSW5kZXgoKSBjb25zdAogdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyhIVE1MT3B0aW9uRWxlbWVudCogZXhjbHVk
ZUVsZW1lbnQpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyhtX2RhdGEsIHRo
aXMsIGV4Y2x1ZGVFbGVtZW50KTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAog
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChpbnQgb3B0aW9uSW5kZXgs
IGJvb2wgZGVzZWxlY3QpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleCht
X2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBkZXNlbGVjdCwgZmFsc2UsIGZhbHNlKTsKKyAgICBz
ZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0
U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QsIGJvb2wg
ZmlyZU9uQ2hhbmdlTm93LCBib29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24pCkBAIC05MSw2ICs5
Myw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50
IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0LCBiCiAgICAgLy8gbW91c2Vkb3duIGV2ZW50cy4g
VGhpcyBhbGxvd3MgdGhhdCBzYW1lIGJlaGF2aW9yIHByb2dyYW1tYXRpY2FsbHkuCiAgICAgaWYg
KCFtX2RhdGEudXNlc01lbnVMaXN0KCkpIHsKICAgICAgICAgdXBkYXRlU2VsZWN0ZWRTdGF0ZSht
X2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBhbGxvd011bHRpcGxlU2VsZWN0aW9uLCBmYWxzZSk7
CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgICAgICBpZiAoZmlyZU9uQ2hh
bmdlTm93KQogICAgICAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsK
QEAgLTEwNCw2ICsxMDcsMzkgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJ
bmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QsIGIKICAgICAgICAgcmV0
dXJuOwogICAgIAogICAgIFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgobV9kYXRhLCB0
aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZpcmVPbkNoYW5nZU5vdywgdHJ1ZSk7CisgICAg
c2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Cit9CisKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnZh
bHVlTWlzc2luZygpIGNvbnN0Cit7CisgICAgaWYgKCFpc1JlcXVpcmVkRm9ybUNvbnRyb2woKSB8
fCBkaXNhYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBUaGUgbnVtYmVy
IG9mIHRoZSBmaXJzdCBvcHRpb24gc2VsZWN0ZWQuCisgICAgaW50IGluZGV4ID0gc2VsZWN0ZWRJ
bmRleCgpOworCisgICAgLy8gVGhlIHNlbGVjdCBlbGVtZW50IGhhcyBubyBwbGFjZWhvbGRlciBs
YWJlbCBvcHRpb24gaWYgaXQgaGFzIGFuIGF0dHJpYnV0ZSAibXVsdGlwbGUiIHNwZWNpZmllZCBv
ciBhIGRpc3BsYXkgc2l6ZSBvZiBub24tMS4KKyAgICAvLyAKKyAgICAvLyBUaGUgY29uZGl0aW9u
ICJzaXplKCkgPiAxIiBpcyBhY3R1YWxseSBub3QgY29tcGxpYW50IHdpdGggdGhlIEhUTUw1IHNw
ZWMgYXMgb2YgRGVjIDMsIDIwMTAuICJzaXplKCkgIT0gMSIgaXMgY29ycmVjdC4KKyAgICAvLyBV
c2luZyAic2l6ZSgpID4gMSIgaGVyZSBiZWNhdXNlIHNpemUoKSBtYXkgYmUgMCBpbiBXZWJLaXQu
CisgICAgLy8gU2VlIHRoZSBkaXNjdXNzaW9uIGF0IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00Mzg4NworICAgIC8vCisgICAgLy8gIjAgc2l6ZSgpIiBoYXBwZW5zIHdo
ZW4gYW4gYXR0cmlidXRlICJzaXplIiBpcyBhYnNlbnQgb3IgYW4gaW52YWxpZCBzaXplIGF0dHJp
YnV0ZSBpcyBzcGVjaWZpZWQuCisgICAgLy8gSW4gdGhpcyBjYXNlLCB0aGUgZGlzcGxheSBzaXpl
IHNob3VsZCBiZSBhc3N1bWVkIGFzIHRoZSBkZWZhdWx0LgorICAgIC8vIFRoZSBkZWZhdWx0IGRp
c3BsYXkgc2l6ZSBpcyAxIGZvciBub24tbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnRzLCBhbmQgNCBm
b3IgbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnRzLgorICAgIC8vCisgICAgLy8gRmluYWxseSwgaWYg
c2l6ZSgpID09IDAgYW5kIG5vbi1tdWx0aXBsZSwgdGhlIGRpc3BsYXkgc2l6ZSBjYW4gYmUgYXNz
dW1lZCBhcyAxLgorICAgIGlmIChtdWx0aXBsZSgpIHx8IHNpemUoKSA+IDEpCisgICAgICAgIHJl
dHVybiBpbmRleCA8IDA7CisKKyAgICAvLyBJZiBub3RoaW5nIGlzIHNlbGVjdGVkLCBpdCdzIHZh
bHVlLW1pc3NpbmcuCisgICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgLy8gSWYgYSBub24tcGxhY2Vob2xlciBsYWJlbCBvcHRpb24gaXMgc2VsZWN0ZWQsIGl0J3Mg
bm90IHZhbHVlLW1pc3NpbmcuCisgICAgaWYgKGluZGV4ID4gMCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIC8vIEl0IG1heSBiZSBhIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbi4gQ2hlY2sg
aWYgdGhlIHZhbHVlIGlzIHRoZSBlbXB0eSBzdHJpbmcuCisgICAgcmV0dXJuIHZhbHVlKCkuaXNF
bXB0eSgpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2VsZWN0SXRlbShp
bnQgbGlzdEluZGV4LCBib29sIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBib29sIHNoaWZ0LCBi
b29sIGZpcmVPbkNoYW5nZU5vdykKQEAgLTExMiw2ICsxNDgsNyBAQCB2b2lkIEhUTUxTZWxlY3RF
bGVtZW50OjpsaXN0Qm94U2VsZWN0SXRlbShpbnQgbGlzdEluZGV4LCBib29sIGFsbG93TXVsdGlw
bHlTZWxlYwogICAgICAgICBzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGxpc3RUb09wdGlvbkluZGV4
KGxpc3RJbmRleCksIHRydWUsIGZpcmVPbkNoYW5nZU5vdyk7CiAgICAgZWxzZSB7CiAgICAgICAg
IHVwZGF0ZVNlbGVjdGVkU3RhdGUobV9kYXRhLCB0aGlzLCBsaXN0SW5kZXgsIGFsbG93TXVsdGlw
bHlTZWxlY3Rpb25zLCBzaGlmdCk7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwog
ICAgICAgICBpZiAoZmlyZU9uQ2hhbmdlTm93KQogICAgICAgICAgICAgbGlzdEJveE9uQ2hhbmdl
KCk7CiAgICAgfQpAQCAtMTQ0LDYgKzE4MSw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFk
ZChIVE1MRWxlbWVudCAqZWxlbWVudCwgSFRNTEVsZW1lbnQgKmJlZm9yZSwgRXhjZXB0aW9uCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBiZWZvcmUsIGVjKTsK
KyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6cmVtb3ZlKGludCBpbmRleCkKQEAgLTE1Niw5ICsxOTQsMTAgQEAgdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6cmVtb3ZlKGludCBpbmRleCkKICAgICBBU1NFUlQoaXRlbS0+cGFyZW50Tm9kZSgp
KTsKICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgIGl0ZW0tPnBhcmVudE5vZGUoKS0+cmVtb3Zl
Q2hpbGQoaXRlbSwgZWMpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCi1TdHJp
bmcgSFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlKCkKK1N0cmluZyBIVE1MU2VsZWN0RWxlbWVudDo6
dmFsdWUoKSBjb25zdAogewogICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGl0ZW1zID0gbGlz
dEl0ZW1zKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgaSsr
KSB7CkBAIC0xOTUsNiArMjM0LDcgQEAgYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6c2F2ZUZvcm1D
b250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYgc3RhdGUpCiB7CiAgICAgU2Vs
ZWN0RWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUobV9kYXRhLCB0aGlzLCBzdGF0ZSk7
CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgCkBAIC0yMTUsMTQgKzI1
NSwxNiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqIGF0dHIpCiAgICAgICAgICAgICByZWNhbGNMaXN0SXRlbXNJZk5lZWRlZCgpOwogCiAg
ICAgICAgIG1fZGF0YS5zZXRTaXplKHNpemUpOworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hl
Y2soKTsKICAgICAgICAgaWYgKChvbGRVc2VzTWVudUxpc3QgIT0gbV9kYXRhLnVzZXNNZW51TGlz
dCgpIHx8ICghb2xkVXNlc01lbnVMaXN0ICYmIG1fZGF0YS5zaXplKCkgIT0gb2xkU2l6ZSkpICYm
IGF0dGFjaGVkKCkpIHsKICAgICAgICAgICAgIGRldGFjaCgpOwogICAgICAgICAgICAgYXR0YWNo
KCk7CiAgICAgICAgICAgICBzZXRSZWNhbGNMaXN0SXRlbXMoKTsKICAgICAgICAgfQotICAgIH0g
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG11bHRpcGxlQXR0cikKKyAgICB9IGVsc2UgaWYgKGF0
dHItPm5hbWUoKSA9PSBtdWx0aXBsZUF0dHIpIHsKICAgICAgICAgU2VsZWN0RWxlbWVudDo6cGFy
c2VNdWx0aXBsZUF0dHJpYnV0ZShtX2RhdGEsIHRoaXMsIGF0dHIpOwotICAgIGVsc2UgaWYgKGF0
dHItPm5hbWUoKSA9PSBhY2Nlc3NrZXlBdHRyKSB7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlD
aGVjaygpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGFjY2Vzc2tleUF0dHIpIHsK
ICAgICAgICAgLy8gRklYTUU6IGlnbm9yZSBmb3IgdGhlIG1vbWVudAogICAgIH0gZWxzZSBpZiAo
YXR0ci0+bmFtZSgpID09IGFsaWduQXR0cikgewogICAgICAgICAvLyBEb24ndCBtYXAgJ2FsaWdu
JyBhdHRyaWJ1dGUuICBUaGlzIG1hdGNoZXMgd2hhdCBGaXJlZm94LCBPcGVyYSBhbmQgSUUgZG8u
CkBAIC0yNTUsNiArMjk3LDcgQEAgYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6Y2FuU2VsZWN0QWxs
KCkgY29uc3QKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbCgpCiB7CiAgICAgU2Vs
ZWN0RWxlbWVudDo6c2VsZWN0QWxsKG1fZGF0YSwgdGhpcyk7CisgICAgc2V0TmVlZHNWYWxpZGl0
eUNoZWNrKCk7CiB9CiAKIFJlbmRlck9iamVjdCogSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQpAQCAtMzE1LDYgKzM1OCw3
IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFJlY2FsY0xpc3RJdGVtcygpCiB2b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpyZXNldCgpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6cmVzZXQobV9k
YXRhLCB0aGlzKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkKQEAgLTM0MCwxNiArMzg0LDE5IEBA
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50
KQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgo
aW50IGluZGV4KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkFuY2hv
ckluZGV4KG1fZGF0YSwgdGhpcywgaW5kZXgpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygp
OwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRBY3RpdmVTZWxlY3Rpb25FbmRJbmRl
eChpbnQgaW5kZXgpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0aW9uRW5k
SW5kZXgobV9kYXRhLCBpbmRleCk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAK
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24oYm9vbCBkZXNl
bGVjdE90aGVyT3B0aW9ucykKIHsKICAgICBTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94U2Vs
ZWN0aW9uKG1fZGF0YSwgdGhpcywgZGVzZWxlY3RPdGhlck9wdGlvbnMpOworICAgIHNldE5lZWRz
VmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjptZW51TGlzdE9u
Q2hhbmdlKCkKQEAgLTQ1OCw2ICs1MDUsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRM
ZW5ndGgodW5zaWduZWQgbmV3TGVuLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6c2Nyb2xsVG9TZWxlY3Rpb24oKQpAQCAtNDcxLDQgKzUxOSw5
IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVwKQog
ICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6Omluc2VydGVkSW50b1RyZWUoZGVl
cCk7CiB9CiAKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3JtQ29udHJvbCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIHJlcXVpcmVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGEzYjQ0NjBkNGJjOTBlZjk4OGRkNmViMDcxM2E5
ZmI5ZjgyNTAzMzIuLmUyZjUxZDgyYmFmMzVlNDkxNzk0YWQ3NzYzZDQzMzU5N2U1YzExNzIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgZGVzZWxlY3QgPSB0
cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgaW5kZXgs
IGJvb2wgZGVzZWxlY3QgPSB0cnVlLCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IGZhbHNlLCBib29s
IGFsbG93TXVsdGlwbGVTZWxlY3Rpb24gPSBmYWxzZSk7CiAKKyAgICAvLyBGb3IgVmFsaWRpdHlT
dGF0ZQorICAgIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3Q7CisKICAgICB1bnNpZ25lZCBsZW5n
dGgoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IHNpemUoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGEuc2l6ZSgpOyB9CkBAIC01MSw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZChIVE1M
RWxlbWVudCogZWxlbWVudCwgSFRNTEVsZW1lbnQqIGJlZm9yZSwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgcmVtb3ZlKGludCBpbmRleCk7CiAKLSAgICBTdHJpbmcgdmFsdWUoKTsKKyAgICBT
dHJpbmcgdmFsdWUoKSBjb25zdDsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwog
CiAgICAgUGFzc1JlZlB0cjxIVE1MT3B0aW9uc0NvbGxlY3Rpb24+IG9wdGlvbnMoKTsKQEAgLTEz
NCw3ICsxMzcsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1Ry
ZWUoYm9vbCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFsRm9ybUNvbnRy
b2woKSBjb25zdCB7IHJldHVybiAhaXNSZXF1aXJlZEZvcm1Db250cm9sKCk7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNSZXF1aXJlZEZvcm1Db250cm9sKCkgY29uc3Q7CiAKICAgICBTZWxlY3RFbGVt
ZW50RGF0YSBtX2RhdGE7CiAgICAgQ29sbGVjdGlvbkNhY2hlIG1fY29sbGVjdGlvbkluZm87CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAyZTUzYmNhYTZjNjM3MDgxNDY3ZjE1NjA2
NmQwZWNhYTg1MjdiNzI3Li5mNWFjNjliMmY4MWMzOTMwODQxMWY2ZGI4ZWYwYTZmNDM1OWFmYWYx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ5LDYgKzQ5LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOwog
ICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBtdWx0aXBsZTsKICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gYm9vbGVhbiByZXF1aXJlZDsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2l6
ZTsKICAgICAgICAgCiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgYWRkKGluIEhUTUxFbGVt
ZW50IGVsZW1lbnQsIGluIEhUTUxFbGVtZW50IGJlZm9yZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgYi9XZWJDb3JlL2h0
bWwvVmFsaWRpdHlTdGF0ZS5jcHAKaW5kZXggZWYzZGU2NmJiNjQzOTBlNWMyODc3NWRlZTQwMjUy
NmU2MjA2YjFkNS4uY2RlMGQ2NDhkYTFkYzhiYWY1MzYxYzU0NTRlNWUwN2U1NGM3YThlYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvaHRt
bC9WYWxpZGl0eVN0YXRlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxTZWxl
Y3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTEx
MCw2ICsxMTEsMTAgQEAgYm9vbCBWYWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3NpbmcoKSBjb25zdAog
ICAgICAgICBIVE1MVGV4dEFyZWFFbGVtZW50KiB0ZXh0QXJlYSA9IHN0YXRpY19jYXN0PEhUTUxU
ZXh0QXJlYUVsZW1lbnQqPihtX2NvbnRyb2wpOwogICAgICAgICByZXR1cm4gdGV4dEFyZWEtPnZh
bHVlTWlzc2luZyh0ZXh0QXJlYS0+dmFsdWUoKSk7CiAgICAgfQorICAgIGlmIChtX2NvbnRyb2wt
Pmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkgeworICAgICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2Vs
ZWN0ID0gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihtX2NvbnRyb2wpOworICAgICAg
ICByZXR1cm4gc2VsZWN0LT52YWx1ZU1pc3NpbmcoKTsKKyAgICB9CiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75494</attachid>
            <date>2010-12-03 06:01:44 -0800</date>
            <delta_ts>2010-12-07 00:25:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101203230153.patch</filename>
            <type>text/plain</type>
            <size>52823</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OGYxNjQxMmRmNjUyZWNhMTJmNWIwNmVhOThhNTFhOWY0NGMwYTY0Li5kMmFlZWEx
NGYyOGIzYWUwZmEwMWIwN2ExYjU0MjUzYjgxOGVlNDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTAtMTItMDIgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKwogMjAxMC0xMi0wMSAgSnVsaWUgUGFyZW50ICA8
anBhcmVudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIFJlbW92aW5nIG91
dCBvZiBkYXRlIGV4cGVjdGF0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0
CmluZGV4IGIwNjlhNzRlMDVkZTUxZTM3N2MzMGMwNTg1ZWY1NTU0ZDRhZmNhYWYuLjY0MmE0MThi
OTQ4MjE5MTIzNzcyOTA5ZTk4YTMwODk3NTk4N2Y2MDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAw
MS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwyMyBAQAotVGhlcmUgYXJlIHR3byBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIGJsYW5rOiB2YWxpZGl0eS52YWx1
ZU1pc3Npbmcgc2hvdWxkIGJlIHRydWUgaW4gYm90aCBjYXNlcy4KK1RoaXMgdGVzdCBjaGVja3Mg
dmFsaWRpdHkudmFsdWVNaXNzaW5nIHdpdGggYmxhbmsgdmFsdWVzLCBibGFuayBvcHRpb25zIHNl
bGVjdGVkLCBvciBub3RoaW5nIHNlbGVjdGVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZU1pc3NpbmdGb3IoImlucHV0IikgaXMgdHJ1ZQor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVhIikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3Np
bmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpIGlzIHRydWUKK1BBU1MgdmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIHZh
bHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXpl
MiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQt
bXVsdGlwbGUiKSBpcyB0cnVlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxh
Y2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxl
IikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVy
LXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtb3B0Z3JvdXAiKSBpcyBmYWxzZQorUEFT
UyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1kaXNhYmxlZC1vcHRpb24iKSBpcyBmYWxzZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAg
ICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFs
dWVNaXNzaW5nLTAwMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXZhbHVlTWlzc2luZy0wMDEuaHRtbAppbmRleCBkYzg4ODc5Mjk0NjRiODE0ZjUyNmYwMzMxNmYw
YjUxM2Y0YTQzMWI1Li5iZTI3NjFmYTVkYTlhYWQ2YjE4N2JjNTBlNjBiNGVhYTM0M2IyZjY3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNz
aW5nLTAwMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12
YWx1ZU1pc3NpbmctMDAxLmh0bWwKQEAgLTEsMjcgKzEsOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVx
dWlyZWQgYW5kIGJhc2ljIHZhbHVlTWlzc2luZzwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVk
Lz4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0
YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIgbmFtZT0idmlj
dGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9u
IHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRo
b3V0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVl
PSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0
PgorPHNlbGVjdCBpZD0ic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIiBuYW1lPSJ2
aWN0aW0iIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+
CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0i
c2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIgc2l6ZT0iMiIg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1
ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxl
Y3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlv
biB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4K
KzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIiBu
YW1lPSJ2aWN0aW0iIG11bHRpcGxlIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVj
dGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVj
dCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIgbmFtZT0idmlj
dGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgor
ICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNl
bGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxl
IHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFs
dWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWZha2UtcGxh
Y2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUg
c2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9w
dGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
d2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11
bHRpcGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+
CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0i
c2VsZWN0LW9wdGdyb3VwIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0Z3JvdXAgbGFi
ZWw9IjEiPgorICAgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPC9vcHRncm91cD4K
KyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJz
ZWxlY3QtZGlzYWJsZWQtb3B0aW9uIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9u
IHZhbHVlPSIiIGRpc2FibGVkIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29w
dGlvbj4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2Fn
ZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHZhbHVlTWlzc2luZ0ZvcihpZCkgeworICAgICAgICBy
ZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbGlkaXR5LnZhbHVlTWlzc2luZzsK
ICAgICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVl
TWlzc2luZyB3aXRoIGJsYW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBzZWxlY3RlZCwgb3Igbm90
aGluZyBzZWxlY3RlZC4iKTsKIAotICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5h
bWUoInZpY3RpbSIpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIAotICAgICAgICBsb2co
KHZbMF0udmFsaWRpdHkudmFsdWVNaXNzaW5nICYmIHZbMV0udmFsaWRpdHkudmFsdWVNaXNzaW5n
KSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgfQorICAgIHYgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5TmFtZSgidmljdGltIik7CisKKyAgICBzaG91bGRCZVRydWUoJ3ZhbHVlTWlzc2lu
Z0ZvcigiaW5wdXQiKScpOworICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJ0ZXh0
YXJlYSIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFj
ZWhvbGRlci1zZWxlY3RlZCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTIiKScpOworICAg
IHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xk
ZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qt
bm9uZS1zZWxlY3RlZC1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBsZSIpJyk7Cisg
ICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBs
YWNlaG9sZGVyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJl
RmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQt
c2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigi
c2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtb3B0Z3JvdXAiKScpOworICAg
IHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWRpc2FibGVkLW9wdGlvbiIp
Jyk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgot
PHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWly
ZWQgYW5kIGJsYW5rOgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBiZSB0cnVlIGluIGJv
dGggY2FzZXMuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQvPgotPHRleHRhcmVh
IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KLTxocj4KLTxvbCBpZD0iY29uc29s
ZSI+PC9vbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDIt
ZXhwZWN0ZWQudHh0CmluZGV4IDM2MDY5Yjg1M2M5MTI5YzQ1OWVlN2MwM2Y2YjdlMzU4OWU0M2Fh
YTQuLmJjYjJhODQ0MjI1ZmZhOTZkODY5NDUxODFlYjczNDc3ZDc3NzNmMjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFs
dWVNaXNzaW5nLTAwMi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwxOSBAQAotVGhlcmUgYXJlIHR3
byBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIHdpdGggc29t
ZSB2YWx1ZTogdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBiZSBmYWxzZSBpbiBib3RoIGNh
c2VzLgorVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgd2l0aCBzb21lIHZh
bHVlcyBvciBvcHRpb25zIHdpdGggc29tZSB2YWx1ZXMgc2VsZWN0ZWQuCiAKLSAKLVNVQ0NFU1MK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHZhbHVlTWlzc2luZ0ZvcigiaW5w
dXQiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVhIikgaXMgZmFsc2UK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1wbGFjZWhvbGRlciIpIGlzIGZhbHNl
CitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiKSBpcyBm
YWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXIt
c2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZh
a2UtcGxhY2Vob2xkZXItc2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNl
bGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBp
cyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xk
ZXItc2l6ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1p
c3NpbmctMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFs
dWVNaXNzaW5nLTAwMi5odG1sCmluZGV4IDZmMDZmOWY0MzY0NWY0OWNjMzNmNzgwYjVhZjk2MmIx
NDdhN2U4MzUuLjJjMmUxMDZmZmMyYmUzNWVmMmE2MzgyZjY3NDFmOGRlZGZkYjRhYzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3Npbmct
MDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVl
TWlzc2luZy0wMDIuaHRtbApAQCAtMSwyNyArMSw3NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJl
ZCBhbmQgYmFzaWMgdmFsdWVNaXNzaW5nIDI8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGltIiB2YWx1ZT0ic29t
ZXRoaW5nIiByZXF1aXJlZC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0i
IHJlcXVpcmVkPnNvbWV0aGluZzwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aC1w
bGFjZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAv
PgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxz
ZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVp
cmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+CisgIDxvcHRpb24g
dmFsdWU9IiIgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgtZmFrZS1wbGFj
ZWhvbGRlci1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlv
biB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8
L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6
ZTIiIG5hbWU9InZpY3RpbSIgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9Ilgi
IHNlbGVjdGVkPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+Cis8
c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiBuYW1lPSJ2
aWN0aW0iIG11bHRpcGxlIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRp
b24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0i
c2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBt
dWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9u
PgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13
aXRoLWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlw
bGUgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2
YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxl
Y3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0i
IG11bHRpcGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3Rl
ZD5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKzwvc2VsZWN0PgogPHNjcmlwdCBs
YW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlv
biBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHZh
bHVlTWlzc2luZ0ZvcihpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpLnZhbGlkaXR5LnZhbHVlTWlzc2luZzsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0
KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIHNvbWUgdmFsdWVzIG9y
IG9wdGlvbnMgd2l0aCBzb21lIHZhbHVlcyBzZWxlY3RlZC4iKTsKIAotICAgICAgICB2ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKIAotICAgICAgICBsb2coKCF2WzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyAmJiAhdlsx
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICB9
CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKworICAgIHNo
b3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0ZvcigiaW5wdXQiKScpOworICAgIHNob3VsZEJlRmFs
c2UoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3Zh
bHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtcGxhY2Vob2xkZXIiKScpOworICAgIHNob3VsZEJl
RmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFj
ZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIiknKTsKKyAgICBzaG91bGRCZUZh
bHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItbXVsdGlw
bGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhv
dXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxl
IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0
LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworCisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZm9ybSBj
b250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6
Ci12YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIGZhbHNlIGluIGJvdGggY2FzZXMuPC9w
PgotPGlucHV0IG5hbWU9InZpY3RpbSIgdmFsdWU9InNvbWV0aGluZyIgcmVxdWlyZWQvPgotPHRl
eHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+c29tZXRoaW5nPC90ZXh0YXJlYT4KLTxocj4K
LTxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0CmluZGV4IGRmZTMzOTg2OTBlMTliZjMyZWEyMjAw
ZmM0MTU4ZmE5ZWFiMzg1NzIuLmQ3ZDFiZWU3ZGUwMTRjZWEzMjg4NjE2YWY2MzkzZTkxMGVjODNl
YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwyMSBA
QAotVGhlcmUgYXJlIHR3byBkaXNhYmxlZCBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJv
dGggcmVxdWlyZWQgYW5kIHdpdGggc29tZSB2YWx1ZTogdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNo
b3VsZCBiZSBmYWxzZSBpbiBib3RoIGNhc2VzLgorVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52
YWx1ZU1pc3Npbmcgb2YgZGlzYWJsZWQgZm9ybSBjb250cm9scyB3aXRoIGJsYW5rIHZhbHVlcywg
Ymxhbmsgb3B0aW9ucyBzZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4KIAotIAotU1VDQ0VT
UworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJp
bnB1dCIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKSBpcyBmYWxz
ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIi
KSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxl
Y3RlZC1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhv
dXQtcGxhY2Vob2xkZXItc2l6ZTIiKSBpcyBmYWxzZQorRkFJTCB2YWx1ZU1pc3NpbmdGb3IoInNl
bGVjdC1ub25lLXNlbGVjdGVkLW11bHRpcGxlIikgc2hvdWxkIGJlIGZhbHNlLiBXYXMgdHJ1ZS4K
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1t
dWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQt
ZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpIGlzIGZhbHNlCitGQUlMIHZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiKSBzaG91bGQgYmUgZmFsc2Uu
IFdhcyB0cnVlLgorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVy
LXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAg
ICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy5odG1sCmluZGV4IDlkOTJmZmIzNGI3MjI0NmZjZGE3MjA3
YzQ1NzMzN2ExZWYyZmZkNGMuLmY3NTE0N2RmYjBiOGNiNThiOGVhNWYyYzhiMzIzMWE3MDZmZTFm
NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXZhbHVlTWlzc2luZy0wMDMuaHRtbApAQCAtMSwyNyArMSw4NSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KIDx0aXRs
ZT5yZXF1aXJlZCBhbmQgdmFsdWVNaXNzaW5nIG9uIGRpc2FibGVkIGVsZW1lbnRzPC90aXRsZT4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0iaW5wdXQiIG5h
bWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQgLz4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEi
IG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9
InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1
aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJY
Ij5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNl
aG9sZGVyIiBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVl
PSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0
PgorPHNlbGVjdCBpZD0ic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIiBuYW1lPSJ2
aWN0aW0iIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNl
bGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNl
bGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIg
c2l6ZT0iMiIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlk
PSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBk
aXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVl
PSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNl
aG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIGRpc2FibGVk
IHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFs
dWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQt
ZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxl
ZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1ub25lLXNl
bGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIGRp
c2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9
IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWZha2UtcGxhY2Vo
b2xkZXItc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgc2l6
ZT0iMiIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4K
KyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJz
ZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0
aW0iIG11bHRpcGxlIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVl
PSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0
PgogPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOworICAg
IGZ1bmN0aW9uIHZhbHVlTWlzc2luZ0ZvcihpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpLnZhbGlkaXR5LnZhbHVlTWlzc2luZzsKICAgICB9CiAKLSAgICBm
dW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyBvZiBkaXNh
YmxlZCBmb3JtIGNvbnRyb2xzIHdpdGggYmxhbmsgdmFsdWVzLCBibGFuayBvcHRpb25zIHNlbGVj
dGVkLCBvciBub3RoaW5nIHNlbGVjdGVkLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogCi0g
ICAgICAgIGxvZygoIXZbMF0udmFsaWRpdHkudmFsdWVNaXNzaW5nICYmICF2WzFdLnZhbGlkaXR5
LnZhbHVlTWlzc2luZykgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICB2ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworCisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVN
aXNzaW5nRm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiKScpOworICAgIHNob3VsZEJlRmFsc2Uo
J3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiKScpOworICAgIHNo
b3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVk
LXNpemUyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13
aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRC
ZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVk
LW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFs
c2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUi
KScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxh
Y2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2Uo
J3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1t
dWx0aXBsZSIpJyk7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAgICB2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0
ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBkaXNhYmxlZCBmb3JtIGNvbnRyb2wgZWxlbWVudHMg
YmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIHdpdGggc29tZSB2YWx1ZToKLXZhbGlkaXR5LnZhbHVl
TWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy48L3A+Ci08aW5wdXQgbmFtZT0i
dmljdGltIiBkaXNhYmxlZCByZXF1aXJlZCAvPgotPHRleHRhcmVhIG5hbWU9InZpY3RpbSIgZGlz
YWJsZWQgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2NoZWNrVmFsaWRpdHktMDAyLWV4cGVjdGVkLnR4dAppbmRleCAxODU3OTQ0NDg3MGQzOTQw
NTVkM2E5MjAzNzQ0YzdlZDg0MGM4ZTg0Li44Mzg4ODI4ODhmNzYyYmIxNDUxZDE4MGFiMjlmMWZi
ODg4ODhjODk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRp
dHktMDAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFs
aWRpdHktMDAyLWV4cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxNCBAQAotVGhpcyB0ZXN0IGNoZWNr
cyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmluZyBl
cnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMuCitUaGlzIHRlc3QgY2hlY2tzIGlmIGNo
ZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSBy
ZXN1bHQgb24gaW52YWxpZCBlbGVtZW50cywgYW5kIHJldHVybnMgYSB0cnVlIHJlc3VsdCBvbiBh
IGJsYW5rIGJ1dCB2YWxpZCBlbGVtZW50cy4gQmxhbmsgYnV0IG5vbi1wbGFjZWhvbGRlciBsYWJl
bCBvcHRpb25zIGFyZSB2YWxpZC4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLSAg
Ci1QQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIGZhbHNlCi1QQVNTIHZbaV0uY2hlY2tWYWxp
ZGl0eSgpIGlzIGZhbHNlCi1QQVNTIHZbaV0uY2hlY2tWYWxpZGl0eSgpIGlzIGZhbHNlCisgICAg
CitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoImlucHV0LWVtcHR5IikgaXMgZmFsc2UKK1BBU1MgY2hl
Y2tWYWxpZGl0eUZvcigiaW5wdXQtcGF0dGVybi1taXNtYXRjaCIpIGlzIGZhbHNlCitQQVNTIGNo
ZWNrVmFsaWRpdHlGb3IoInRleHRhcmVhIikgaXMgZmFsc2UKK1BBU1MgY2hlY2tWYWxpZGl0eUZv
cigic2VsZWN0LXBsYWNlaG9sZGVyIikgaXMgZmFsc2UKK1BBU1MgY2hlY2tWYWxpZGl0eUZvcigi
c2VsZWN0LW5vbi1wbGFjZWhvbGRlciIpIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVj
a1ZhbGlkaXR5LTAwMi5odG1sCmluZGV4IDI4NzJmYWQzNWJlZTgyZTQ2NWJlZTE3ZWZiZjExZjU4
MGZmNDJjYzkuLjY2MmY2ZWJmZDMxMTFlYWZlMmI3MTFjZjhiMDAyZjFiMDhiZWU5ZDMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0bWwKQEAgLTcsMTkg
KzcsMzMgQEAKIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8Zm9ybSBtZXRob2Q9
ImdldCI+Ci08aW5wdXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZC8+Ci08aW5w
dXQgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9
IkxvcmVtaXBzdW0iLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFy
ZWE+Cis8aW5wdXQgaWQ9ImlucHV0LWVtcHR5IiBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJl
cXVpcmVkLz4KKzxpbnB1dCBpZD0iaW5wdXQtcGF0dGVybi1taXNtYXRjaCIgbmFtZT0idmljdGlt
IiB0eXBlPSJ0ZXh0IiBwYXR0ZXJuPSJMb3JlbSBpcHN1bSIgdmFsdWU9IkxvcmVtaXBzdW0iLz4K
Kzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJl
YT4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJl
ZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5Y
PC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1ub24tcGxhY2Vob2xkZXIi
IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4K
KyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+CiA8L2Zvcm0+CiA8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNo
ZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmlu
ZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMuIik7CisgICAgZnVuY3Rpb24gY2hl
Y2tWYWxpZGl0eUZvcihpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpLmNoZWNrVmFsaWRpdHkoKTsKKyAgICB9CiAKLXYgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5TmFtZSgidmljdGltIik7Ci1mb3IgKGkgPSAwOyBpIDwgdi5sZW5ndGg7IGkrKykKLSAgICBz
aG91bGRCZSgidltpXS5jaGVja1ZhbGlkaXR5KCkiLCAiZmFsc2UiKTsKKyAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkg
YSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMsIGFuZCBy
ZXR1cm5zIGEgdHJ1ZSByZXN1bHQgb24gYSBibGFuayBidXQgdmFsaWQgZWxlbWVudHMuIEJsYW5r
IGJ1dCBub24tcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9ucyBhcmUgdmFsaWQuIik7CiAKLXZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRp
dHlGb3IoImlucHV0LWVtcHR5IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5
Rm9yKCJpbnB1dC1wYXR0ZXJuLW1pc21hdGNoIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdjaGVj
a1ZhbGlkaXR5Rm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxp
ZGl0eUZvcigic2VsZWN0LXBsYWNlaG9sZGVyIiknKTsKKyAgICBzaG91bGRCZVRydWUoJ2NoZWNr
VmFsaWRpdHlGb3IoInNlbGVjdC1ub24tcGxhY2Vob2xkZXIiKScpOworCisgICAgdmFyIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQu
dHh0CmluZGV4IDliMjAxNDMxOGEzZTUwYmQzZWY1ZDQwMDEzNmMzMDI0NjkxZjg5Y2QuLmI5YjU0
Yjg3NjRjNDlkYTYwMTdhNDE3YzdlOGYzN2ZmMWNlNjRhY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDEyIEBACi1UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBi
ZWxvdywgYm90aCByZXF1aXJlZC4KK1RoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVu
dHMgYmVsb3csIGFsbCByZXF1aXJlZC4KIAotIAotU1VDQ0VTUworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgcmVxdWlyZWRGb3IoImlucHV0IikgaXMgdHJ1ZQorUEFTUyByZXF1
aXJlZEZvcigidGV4dGFyZWEiKSBpcyB0cnVlCitQQVNTIHJlcXVpcmVkRm9yKCJzZWxlY3QiKSBp
cyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KyAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0
ZS0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAw
MS5odG1sCmluZGV4IDJmMzRjMTYxYWNmNmEzZjVmNDAwMDg3M2ZkODI2NmMwMTdmZTAzNjAuLmQz
MjYyMjQzMzgxMzk5MmNmZjc1M2MxNjFmZjNmMTAyOTA3NzVjZWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS5odG1sCkBAIC0xLDI2ICsx
LDQwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8
aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJlcXVpcmVkIGF0dHJpYnV0ZSBwcmVzZW5jZSB0ZXN0PC90
aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0iaW5w
dXQiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQgLz4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5h
bWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdCIgbmFt
ZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8
b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9
IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1l
c3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5l
ckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiByZXF1aXJlZEZv
cihpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnJlcXVp
cmVkOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgZGVzY3JpcHRpb24oIlRoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgYmVsb3csIGFsbCByZXF1aXJlZC4iKTsKIAotICAgICAgICB2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAotICAgICAgICBsb2coKHZbMF0ucmVxdWlyZWQgJiYgdlsxXS5yZXF1aXJlZCkgPyAiU1VD
Q0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eU5hbWUoInZpY3RpbSIpOworCisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigiaW5wdXQi
KScpOworICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoInRleHRhcmVhIiknKTsKKyAgICBz
aG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJzZWxlY3QiKScpOworCisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZm9ybSBj
b250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkLjwvcD4KLTxpbnB1dCBuYW1lPSJ2
aWN0aW0iIHJlcXVpcmVkIC8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3Rl
eHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJp
YnV0ZS0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1h
dHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dAppbmRleCBhYzVjMGZmZjIyODY2ZTExNWZmMGNjNDNj
ZDRkYjQ5YzhlOThmYmZhLi5jMjU1NjFkMTRjYzc2MGMyNzc4MTM4Zjc0YzdmMjQ2NWEyMDI2MmM3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0w
MDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0
cmlidXRlLTAwMi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwxOSBAQAotVGhlcmUgYXJlIHR3byBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFz
IHJlcXVpcmVkIHZpYSByZXF1aXJlZCBET00gYXR0cmlidXRlLgorVGhlcmUgYXJlIHRocmVlIGZv
cm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYWxsIG9wdGlvbmFsLiBUaGV5J3JlIHNldCBhcyBy
ZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0ZS4KIAotIAotU1VDQ0VTUworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0JlZm9yZSBzZXQ6CitQQVNTIHJlcXVpcmVkRm9yKCJp
bnB1dCIpIGlzIGZhbHNlCitQQVNTIHJlcXVpcmVkRm9yKCJ0ZXh0YXJlYSIpIGlzIGZhbHNlCitQ
QVNTIHJlcXVpcmVkRm9yKCJzZWxlY3QiKSBpcyBmYWxzZQorCitBZnRlciBzZXQ6CitQQVNTIHJl
cXVpcmVkRm9yKCJpbnB1dCIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInRleHRhcmVhIikg
aXMgdHJ1ZQorUEFTUyByZXF1aXJlZEZvcigic2VsZWN0IikgaXMgdHJ1ZQorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi5odG1sCmluZGV4IGFhODVl
ODk1NGVlMDc4MThkMWMyOGJkNTUyMGE5NWIyMjFjNzdiOTAuLjQwMTA5MzllZmNlYTY5OTNiYmZm
ZGFjNDI4M2YwOGQ5MDE0YmEyNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
cmVxdWlyZWQtYXR0cmlidXRlLTAwMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
cmVxdWlyZWQtYXR0cmlidXRlLTAwMi5odG1sCkBAIC0xLDMyICsxLDUyIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRp
dGxlPnJlcXVpcmVkIGF0dHJpYnV0ZSBKUyBzZXQ8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGltIiAvPgorPHRl
eHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPHNlbGVjdCBp
ZD0ic2VsZWN0IiBuYW1lPSJ2aWN0aW0iPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+
CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5n
dWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBs
b2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIp
LmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHJlcXVp
cmVkRm9yKGlkKSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCku
cmVxdWlyZWQ7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhlcmUgYXJlIHRocmVlIGZvcm0g
Y29udHJvbCBlbGVtZW50cyBiZWxvdywgYWxsIG9wdGlvbmFsLiBUaGV5J3JlIHNldCBhcyByZXF1
aXJlZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0ZS4iKTsKIAotICAgICAgICB2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKIAotICAgICAgICBpZiAodlswXS5yZXF1aXJlZCA9PSBmYWxzZSAmJiB2WzFdLnJlcXVpcmVk
ID09IGZhbHNlKSB7Ci0gICAgICAgICAgICB2WzBdLnJlcXVpcmVkID0gdHJ1ZTsKLSAgICAgICAg
ICAgIHZbMV0ucmVxdWlyZWQgPSB0cnVlOwotICAgICAgICAgICAgbG9nICgodlswXS5yZXF1aXJl
ZCAmJiB2WzFdLnJlcXVpcmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgICAgIH0K
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9nKCJGQUlMVVJFIik7Ci0gICAgfQorICAgIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisKKyAgICBkZWJ1ZygiQmVm
b3JlIHNldDoiKTsKKyAgICBzaG91bGRCZUZhbHNlKCdyZXF1aXJlZEZvcigiaW5wdXQiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3JlcXVpcmVkRm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxk
QmVGYWxzZSgncmVxdWlyZWRGb3IoInNlbGVjdCIpJyk7CisgICAgZGVidWcoIiIpOworCisgICAg
dlswXS5yZXF1aXJlZCA9IHRydWU7CisgICAgdlsxXS5yZXF1aXJlZCA9IHRydWU7CisgICAgdlsy
XS5yZXF1aXJlZCA9IHRydWU7CisKKyAgICBkZWJ1ZygiQWZ0ZXIgc2V0OiIpOworICAgIHNob3Vs
ZEJlVHJ1ZSgncmVxdWlyZWRGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVp
cmVkRm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigic2Vs
ZWN0IiknKTsKKyAgICBkZWJ1ZygiIik7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisKKyAg
ICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVu
dHMgYmVsb3csIGJvdGggb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSByZXF1
aXJlZCBET00gYXR0cmlidXRlLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIC8+Ci08dGV4dGFy
ZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29s
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43ZDdiNDQ5OWY4NjIyNDgzZTU5MDBlMjQwN2NlOGE2YjBhYjAyNjJlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvc2VsZWN0
LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcwpAQCAtMCwwICsxLDEwOCBAQAorZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3Vk
byBzZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVkLiIpOworCisvLyBTZXR1cCBmb3Igc3RhdGlj
IGVsZW1lbnRzLgordmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOwordmFyIG5vbkZvcm0gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobm9uRm9ybSk7
CisKK2Z1bmN0aW9uIG1ha2VJbnZhbGlkKCkgeworICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzZWxlY3QnKTsKKyAgICBzZWxlY3QubmFtZSA9ICdmb28nOworICAgIHNl
bGVjdC5yZXF1aXJlZCA9IHRydWU7CisgICAgc2VsZWN0LnZhbHVlID0gJyc7CisgICAgZm9ybS5h
cHBlbmRDaGlsZChzZWxlY3QpOworICAgIHJldHVybiBzZWxlY3Q7Cit9CisKK2Z1bmN0aW9uIGFw
cGVuZE9wdGlvbih2YWx1ZSwgc2VsZWN0KSB7CisgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ29wdGlvbicpOworICAgIG9wdGlvbi52YWx1ZSA9IHZhbHVlOworICAgIG9w
dGlvbi5pbm5lclRleHQgPSB2YWx1ZTsKKyAgICBzZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsK
KyAgICByZXR1cm4gb3B0aW9uOworfQorCitmdW5jdGlvbiBiYWNrZ3JvdW5kT2YoZWwpIHsKKyAg
ICByZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCku
Z2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpOworfQorCit2YXIgZWxCYWNrZ3Jv
dW5kID0gJ2JhY2tncm91bmRPZihlbCknOwordmFyIGludmFsaWRDb2xvciA9ICdyZ2IoMjU1LCAw
LCAwKSc7Cit2YXIgbm9ybWFsQ29sb3IgPSAncmdiKDI1NSwgMjU1LCAyNTUpJzsKK3ZhciBkaXNh
YmxlZENvbG9yID0gJ3JnYigwLCAwLCAwKSc7Cit2YXIgcmVhZE9ubHlDb2xvciA9ICdyZ2IoMCwg
MjU1LCAwKScKK3ZhciB2YWxpZENvbG9yID0gJ3JnYigwLCAwLCAyNTUpJzsKKworLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICB3aWxsVmFsaWRhdGUgY2hhbmdlCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordmFyIGVsID0gbWFrZUludmFsaWQo
KTsKK3ZhciBvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOwordmFyIG8yID0gYXBwZW5kT3B0aW9u
KCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworLy8gQ29uZmlybSB0aGlzIGVsZW1lbnQg
aXMgaW52YWxpZC4KK2RlYnVnKCdDaGVjayB0aGUgaW5pdGlhbCBzdGF0ZTonKTsKK3Nob3VsZEJl
KGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIG5hbWU6Jyk7
CitlbC5uYW1lID0gJyc7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsK
K2VsLm5hbWUgPSAnYmFyJzsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicp
OworCitkZWJ1ZygnQ2hhbmdlIGRpc2FibGVkOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEg
PSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEu
c2VsZWN0ZWQgPSB0cnVlOworZWwuZGlzYWJsZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAnZGlzYWJsZWRDb2xvcicpOworZWwuZGlzYWJsZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVs
QmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnSW5zaWRlL291dHNpZGUgb2Yg
YSBmb3JtOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVs
KTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworbm9u
Rm9ybS5hcHBlbmRDaGlsZChlbCk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29s
b3InKTsKK2Zvcm0uYXBwZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52
YWxpZENvbG9yJyk7CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAg
ICAgdmFsdWUgY2hhbmdlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZGVi
dWcoJ0NoYW5nZSB0aGUgdmFsdWUgYnkgRE9NIGF0dHJpYnV0ZSB3aXRoIGEgcGxhY2Vob2xkZXIg
bGFiZWwgb3B0aW9uOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24o
JycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzIuc2VsZWN0ZWQgPSB0cnVl
Oworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworbzEuc2VsZWN0ZWQgPSB0
cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdD
aGFuZ2UgdGhlIHZhbHVlIGJ5IERPTSBhdHRyaWJ1dGUgd2l0aG91dCBhIHBsYWNlaG9sZGVyIGxh
YmVsIG9wdGlvbjonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCdY
JywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsK
K3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKKworLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICBDb25zdHJhaW50cyBjaGFuZ2UKKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkZWJ1ZygnQ2hhbmdlIHJlcXVpcmVkOicp
OworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0g
YXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworZWwucmVxdWlyZWQg
PSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLnJlcXVp
cmVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKaW5kZXggZDY4MjZk
ZTE4MmUzMTM3N2FjMGM0OGQ5NDY4Y2I3NmE4YTU2ZjQ3MS4uNWM1NjU0MjcwMTUxNDJlZDJkMDZm
NDQ0NjJjN2FjYzg1NWQ3YTVmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKQEAgLTI0LDYgKzI0LDEzIEBA
IHJlcXVpcmVkVGV4dEFyZWEucmVxdWlyZWQgPSB0cnVlOwogZm9ybS5hcHBlbmRDaGlsZChyZXF1
aXJlZFRleHRBcmVhKTsKIHNob3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNz
YWdlIiwgIid2YWx1ZSBtaXNzaW5nJyIpOwogCisvLyBBIHJlcXVpcmVkIHNlbGVjdCB3aXRoIGFu
IGVtcHR5IHZhbHVlCit2YXIgcmVxdWlyZWRTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzZWxlY3QiKTsKK3JlcXVpcmVkU2VsZWN0Lm5hbWUgPSAicmVxdWlyZWRTZWxlY3QiOworcmVx
dWlyZWRTZWxlY3QucmVxdWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFNl
bGVjdCk7CitzaG91bGRCZSgicmVxdWlyZWRTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3Zh
bHVlIG1pc3NpbmcnIik7CisKIC8vIEEgdHlwZT1lbWFpbCBpbnB1dCBmb3IgdGhlICJ0eXBlIG1p
c21hdGNoIiBmbGFnCiB2YXIgZW1haWxJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlu
cHV0Iik7CiBlbWFpbElucHV0Lm5hbWUgPSAiZW1haWxJbnB1dCI7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3Jz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjAzNzA2YTg3YzAxZjM2YmIyY2ZlNTY4NWU3M2Vh
MDI3MzZhNDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxl
Y3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitU
aGlzIHRlc3QgcGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8g
c2VsZWN0b3JzIGFyZSBsaXZlbHkgYXBwbGllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK0NoZWNrIHRoZSBpbml0aWFsIHN0YXRlOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IGludmFsaWRDb2xvcgorQ2hhbmdlIG5hbWU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2Ug
ZGlzYWJsZWQ6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgZGlzYWJsZWRDb2xvcgorUEFTUyBi
YWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorSW5zaWRlL291dHNpZGUgb2YgYSBmb3Jt
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIGludmFsaWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSBieSBET00gYXR0cmlidXRl
IHdpdGggYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRpb246CitQQVNTIGJhY2tncm91bmRPZihlbCkg
aXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorQ2hh
bmdlIHRoZSB2YWx1ZSBieSBET00gYXR0cmlidXRlIHdpdGhvdXQgYSBwbGFjZWhvbGRlciBsYWJl
bCBvcHRpb246CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK0NoYW5nZSByZXF1aXJlZDoKK1BBU1MgYmFja2dy
b3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxp
ZENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVk
by1zZWxlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNl
dWRvLXNlbGVjdG9ycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZTlmODc2NTBjNGQzYmZhYzg5ZDRhODFh
YzFkYzU5MTYyNWZmZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbAorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9saXZlLXBz
ZXVkby1zZWxlY3RvcnMuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9z
ZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1l
eHBlY3RlZC50eHQKaW5kZXggMGUxMmQ4YTI3MWU1ZGQ4ZjU1M2EyMWQxYTljMmJkN2FiZTVkZDYz
MS4uZTkxOTYxZDEwMDlmMzk5MTkwY2RhZGUzMzAwZjkzYWIzNDQ0NjY0YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQK
QEAgLTYsNiArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIHBhdHRlcm5JbnB1
dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAncGF0dGVybiBtaXNtYXRjaCcKIFBBU1MgcmVxdWlyZWRJ
bnB1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKIFBBU1MgcmVxdWlyZWRU
ZXh0QXJlYS52YWxpZGF0aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgcmVxdWly
ZWRTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIGVtYWls
SW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUgbWlzbWF0Y2gnCiBQQVNTIGJ1dC52YWxp
ZGF0aW9uTWVzc2FnZSBpcyAnJwogUEFTUyBhbm9uaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMg
JycKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOWJkZGRlNTk4OTM0MTQyMGM1NDZiNjkzZGQwYTZlNWNlMzFjMTAzOS4uYTYzMjk2MTg5M2My
NWMzMmQ3ZTg2MzNiMDBkNGQ4YmY5ZTcyNmM2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMi0wMiAg
RGFpIE1pa3VydWJlICA8ZG1pa3VydWJlQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ICJyZXF1aXJlZCIgYXR0cmli
dXRlIGZvciBzZWxlY3QgdGFncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTAzODAKKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3NlbGVjdC1saXZl
LXBzZXVkby1zZWxlY3RvcnMuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVt
cyk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkgdG8gZW5hYmxlIHZhbGlk
aXR5IGNoZWNrIGFmdGVyIGNoYW5naW5nLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVs
ZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlD
aGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVk
SW5kZXhCeVVzZXIpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlTWlzc2luZyk6IEFkZGVkIHZh
bHVlTWlzc2luZygpIHRvIGNoZWNrIGlmIHNlbGVjdGluZyBhbiBpbnZhbGlkIG9yIHBsYWNlaG9s
ZGVyIGxhYmVsIG9wdGlvbiB3aGVuIGEgdmFsaWQgcmVxdWlyZWQgYXR0cmlidXRlIGlzIHNwZWNp
ZmllZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2VsZWN0
SXRlbSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWRkKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1Zh
bGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZW1v
dmUpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogQWRkZWQg
Y2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6
c2VsZWN0QWxsKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZXNldCk6IEFkZGVkIGNhbGxpbmcgc2V0
TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6c2V0QWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRz
VmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNl
dEFjdGl2ZVNlbGVjdGlvbkVuZEluZGV4KTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5
Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0
Qm94U2VsZWN0aW9uKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZXRMZW5ndGgpOiBBZGRlZCBjYWxs
aW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVj
dEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3JtQ29udHJvbCk6IENoZWNrIGlmIHJlcXVpcmVkIG9yIG5v
dC4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6aXNPcHRpb25hbEZvcm1Db250cm9sKTogQ2hlY2sgaWYgbm90
IHJlcXVpcmVkLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBBZGRlZCBh
IHJlcXVpcmVkIGF0dHJpYnV0ZSB0byBzZWxlY3QgZWxlbWVudHMuLgorICAgICAgICAqIGh0bWwv
VmFsaWRpdHlTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjp2YWx1
ZU1pc3NpbmcpOiBBZGRlZCB2YWx1ZU1pc3NpbmcgY2hlY2sgZm9yIHNlbGVjdCBlbGVtZW50cyBp
bnRvIHRoZSBnbG9iYWwgY2hlY2tlciwgVmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKCkuCisK
IDIwMTAtMTItMDEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdWlsZCBmaXg6IEFkZGVkIGEgZm9yd2FyZGluZyBoZWFkZXIuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3Bw
CmluZGV4IGQyMzZjOTY2NWRjOWUyYWZiZWEyMWUxZGIzNTAxOGZlMTIxMzRiMjUuLmNmMjRhODE3
YWQxYmFiNGE5ZDcxZmVjM2VlYzQwOWExYWQ1ZmVkMWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L1NlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCkBA
IC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTZWxlY3RFbGVtZW50OjptZW51TGlzdE9uQ2hhbmdlKFNl
bGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50KQogICAgIH0KIH0KIAotdm9p
ZCBTZWxlY3RFbGVtZW50OjpzY3JvbGxUb1NlbGVjdGlvbihTZWxlY3RFbGVtZW50RGF0YSYgZGF0
YSwgRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgU2VsZWN0RWxlbWVudDo6c2Nyb2xsVG9TZWxlY3Rp
b24oY29uc3QgU2VsZWN0RWxlbWVudERhdGEmIGRhdGEsIEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAg
ICAgaWYgKGRhdGEudXNlc01lbnVMaXN0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ1OSw3ICs0
NTksNyBAQCB2b2lkIFNlbGVjdEVsZW1lbnQ6OnBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUoU2VsZWN0
RWxlbWVudERhdGEmIGRhdGEsIEVsZW1lbnQqIGVsZQogICAgIH0KIH0KIAotYm9vbCBTZWxlY3RF
bGVtZW50OjphcHBlbmRGb3JtRGF0YShTZWxlY3RFbGVtZW50RGF0YSYgZGF0YSwgRWxlbWVudCog
ZWxlbWVudCwgRm9ybURhdGFMaXN0JiBsaXN0KQorYm9vbCBTZWxlY3RFbGVtZW50OjphcHBlbmRG
b3JtRGF0YShjb25zdCBTZWxlY3RFbGVtZW50RGF0YSYgZGF0YSwgRWxlbWVudCogZWxlbWVudCwg
Rm9ybURhdGFMaXN0JiBsaXN0KQogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGVs
ZW1lbnQtPmZvcm1Db250cm9sTmFtZSgpOwogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL1NlbGVjdEVs
ZW1lbnQuaAppbmRleCA1MzgxNWYyYWViZTViMDk1YmZkYTA1ODQzZTUxNGM3ZTBjOTFiYTEyLi5j
ZWNiNDY0MWE3ZTZjMGEzMjc0NGMxODQ2MjZlZmMxYzM3MmQxZWQ3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9TZWxlY3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5o
CkBAIC03Nyw3ICs3Nyw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVMaXN0
Qm94U2VsZWN0aW9uKFNlbGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCosIGJvb2wgZGVzZWxlY3RP
dGhlck9wdGlvbnMpOwogICAgIHN0YXRpYyB2b2lkIGxpc3RCb3hPbkNoYW5nZShTZWxlY3RFbGVt
ZW50RGF0YSYsIEVsZW1lbnQqKTsKICAgICBzdGF0aWMgdm9pZCBtZW51TGlzdE9uQ2hhbmdlKFNl
bGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCopOwotICAgIHN0YXRpYyB2b2lkIHNjcm9sbFRvU2Vs
ZWN0aW9uKFNlbGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCopOworICAgIHN0YXRpYyB2b2lkIHNj
cm9sbFRvU2VsZWN0aW9uKGNvbnN0IFNlbGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCopOwogICAg
IHN0YXRpYyB2b2lkIHNldFJlY2FsY0xpc3RJdGVtcyhTZWxlY3RFbGVtZW50RGF0YSYsIEVsZW1l
bnQqKTsKICAgICBzdGF0aWMgdm9pZCByZWNhbGNMaXN0SXRlbXMoU2VsZWN0RWxlbWVudERhdGEm
LCBjb25zdCBFbGVtZW50KiwgYm9vbCB1cGRhdGVTZWxlY3RlZFN0YXRlcyA9IHRydWUpOwogICAg
IHN0YXRpYyBpbnQgc2VsZWN0ZWRJbmRleChjb25zdCBTZWxlY3RFbGVtZW50RGF0YSYsIGNvbnN0
IEVsZW1lbnQqKTsKQEAgLTkwLDcgKzkwLDcgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBib29s
IHNhdmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFNlbGVjdEVsZW1lbnREYXRhJiwgY29uc3QgRWxl
bWVudCosIFN0cmluZyYgc3RhdGUpOwogICAgIHN0YXRpYyB2b2lkIHJlc3RvcmVGb3JtQ29udHJv
bFN0YXRlKFNlbGVjdEVsZW1lbnREYXRhJiwgRWxlbWVudCosIGNvbnN0IFN0cmluZyYgc3RhdGUp
OwogICAgIHN0YXRpYyB2b2lkIHBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUoU2VsZWN0RWxlbWVudERh
dGEmLCBFbGVtZW50KiwgQXR0cmlidXRlKik7Ci0gICAgc3RhdGljIGJvb2wgYXBwZW5kRm9ybURh
dGEoU2VsZWN0RWxlbWVudERhdGEmLCBFbGVtZW50KiwgRm9ybURhdGFMaXN0Jik7CisgICAgc3Rh
dGljIGJvb2wgYXBwZW5kRm9ybURhdGEoY29uc3QgU2VsZWN0RWxlbWVudERhdGEmLCBFbGVtZW50
KiwgRm9ybURhdGFMaXN0Jik7CiAgICAgc3RhdGljIHZvaWQgcmVzZXQoU2VsZWN0RWxlbWVudERh
dGEmLCBFbGVtZW50Kik7CiAgICAgc3RhdGljIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihTZWxl
Y3RFbGVtZW50RGF0YSYsIEVsZW1lbnQqLCBFdmVudCosIEhUTUxGb3JtRWxlbWVudCopOwogICAg
IHN0YXRpYyBpbnQgbGFzdFNlbGVjdGVkTGlzdEluZGV4KGNvbnN0IFNlbGVjdEVsZW1lbnREYXRh
JiwgY29uc3QgRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggYzY4
MGU5MmU0MGFhOTUxMmFhODI3ZWU4OWEyN2MwYWFlYWNlMzgwMC4uZWJhOGM1ZDVjZDlhNWRhYjM0
YzUwMWFjYzMwZGJiNWFiZWZjOTg0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBA
IC03OCwxMSArNzgsMTMgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RlZEluZGV4KCkg
Y29uc3QKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXMoSFRNTE9wdGlvbkVs
ZW1lbnQqIGV4Y2x1ZGVFbGVtZW50KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRl
bXMobV9kYXRhLCB0aGlzLCBleGNsdWRlRWxlbWVudCk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgoaW50
IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNldFNl
bGVjdGVkSW5kZXgobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZhbHNlLCBm
YWxzZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRl
c2VsZWN0LCBib29sIGZpcmVPbkNoYW5nZU5vdywgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0aW9u
KQpAQCAtOTEsNiArOTMsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZElu
ZGV4QnlVc2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBkZXNlbGVjdCwgYgogICAgIC8vIG1vdXNl
ZG93biBldmVudHMuIFRoaXMgYWxsb3dzIHRoYXQgc2FtZSBiZWhhdmlvciBwcm9ncmFtbWF0aWNh
bGx5LgogICAgIGlmICghbV9kYXRhLnVzZXNNZW51TGlzdCgpKSB7CiAgICAgICAgIHVwZGF0ZVNl
bGVjdGVkU3RhdGUobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgYWxsb3dNdWx0aXBsZVNlbGVj
dGlvbiwgZmFsc2UpOworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAgICAgICAg
aWYgKGZpcmVPbkNoYW5nZU5vdykKICAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwogICAg
ICAgICByZXR1cm47CkBAIC0xMDQsNiArMTA3LDQ2IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0LCBi
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZElu
ZGV4KG1fZGF0YSwgdGhpcywgb3B0aW9uSW5kZXgsIGRlc2VsZWN0LCBmaXJlT25DaGFuZ2VOb3cs
IHRydWUpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOworfQorCitib29sIEhUTUxTZWxl
Y3RFbGVtZW50Ojp2YWx1ZU1pc3NpbmcoKSBjb25zdAoreworICAgIGlmICghaXNSZXF1aXJlZEZv
cm1Db250cm9sKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFRoZSBudW1iZXIg
b2YgdGhlIGZpcnN0IG9wdGlvbiBzZWxlY3RlZC4KKyAgICBpbnQgaW5kZXggPSBzZWxlY3RlZElu
ZGV4KCk7CisKKyAgICAvLyBUaGUgc2VsZWN0IGVsZW1lbnQgaGFzIG5vIHBsYWNlaG9sZGVyIGxh
YmVsIG9wdGlvbiBpZiBpdCBoYXMgYW4gYXR0cmlidXRlICJtdWx0aXBsZSIgc3BlY2lmaWVkIG9y
IGEgZGlzcGxheSBzaXplIG9mIG5vbi0xLgorICAgIC8vIAorICAgIC8vIFRoZSBjb25kaXRpb24g
InNpemUoKSA+IDEiIGlzIGFjdHVhbGx5IG5vdCBjb21wbGlhbnQgd2l0aCB0aGUgSFRNTDUgc3Bl
YyBhcyBvZiBEZWMgMywgMjAxMC4gInNpemUoKSAhPSAxIiBpcyBjb3JyZWN0LgorICAgIC8vIFVz
aW5nICJzaXplKCkgPiAxIiBoZXJlIGJlY2F1c2Ugc2l6ZSgpIG1heSBiZSAwIGluIFdlYktpdC4K
KyAgICAvLyBTZWUgdGhlIGRpc2N1c3Npb24gYXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQzODg3CisgICAgLy8KKyAgICAvLyAiMCBzaXplKCkiIGhhcHBlbnMgd2hl
biBhbiBhdHRyaWJ1dGUgInNpemUiIGlzIGFic2VudCBvciBhbiBpbnZhbGlkIHNpemUgYXR0cmli
dXRlIGlzIHNwZWNpZmllZC4KKyAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBkaXNwbGF5IHNpemUg
c2hvdWxkIGJlIGFzc3VtZWQgYXMgdGhlIGRlZmF1bHQuCisgICAgLy8gVGhlIGRlZmF1bHQgZGlz
cGxheSBzaXplIGlzIDEgZm9yIG5vbi1tdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMsIGFuZCA0IGZv
ciBtdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMuCisgICAgLy8KKyAgICAvLyBGaW5hbGx5LCBpZiBz
aXplKCkgPT0gMCBhbmQgbm9uLW11bHRpcGxlLCB0aGUgZGlzcGxheSBzaXplIGNhbiBiZSBhc3N1
bWVkIGFzIDEuCisgICAgaWYgKG11bHRpcGxlKCkgfHwgc2l6ZSgpID4gMSkKKyAgICAgICAgcmV0
dXJuIGluZGV4IDwgMDsKKworICAgIC8vIElmIG5vdGhpbmcgaXMgc2VsZWN0ZWQsIGl0J3MgdmFs
dWUtbWlzc2luZy4KKyAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAvLyBJZiBhIG5vbi1wbGFjZWhvbGVyIGxhYmVsIG9wdGlvbiBpcyBzZWxlY3RlZCwgaXQncyBu
b3QgdmFsdWUtbWlzc2luZy4KKyAgICBpZiAoaW5kZXggPiAwKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAvLyBJdCBtYXkgYmUgYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRpb24uCisgICAg
Ly8gQ2hlY2sgaWYgdGhlIG9wdGlvbiBpcyBub3QgZGlzYWJsZWQgYW5kIG5vdCB1bmRlciBvcHRn
cm91cCBlbGVtZW50cywgYW5kIHRoZSB2YWx1ZSBpcyB0aGUgZW1wdHkgc3RyaW5nLgorICAgIGlu
dCBsaXN0SW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleCgwKTsKKyAgICBBU1NFUlQobGlzdEluZGV4
ID49IDApOworICAgIGlmIChsaXN0SW5kZXggPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVt
ZW50Kj4obGlzdEl0ZW1zKClbbGlzdEluZGV4XSk7CisgICAgcmV0dXJuICFvcHRpb24tPmRpc2Fi
bGVkKCkgJiYgIWxpc3RJbmRleCAmJiB2YWx1ZSgpLmlzRW1wdHkoKTsKIH0KIAogdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0ZW0oaW50IGxpc3RJbmRleCwgYm9vbCBhbGxv
d011bHRpcGx5U2VsZWN0aW9ucywgYm9vbCBzaGlmdCwgYm9vbCBmaXJlT25DaGFuZ2VOb3cpCkBA
IC0xMTIsNiArMTU1LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0
ZW0oaW50IGxpc3RJbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWMKICAgICAgICAgc2V0U2Vs
ZWN0ZWRJbmRleEJ5VXNlcihsaXN0VG9PcHRpb25JbmRleChsaXN0SW5kZXgpLCB0cnVlLCBmaXJl
T25DaGFuZ2VOb3cpOwogICAgIGVsc2UgewogICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKG1f
ZGF0YSwgdGhpcywgbGlzdEluZGV4LCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgc2hpZnQpOwor
ICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAgICAgICAgaWYgKGZpcmVPbkNoYW5n
ZU5vdykKICAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwogICAgIH0KQEAgLTE0NCw2ICsx
ODgsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQgKmVsZW1lbnQs
IEhUTUxFbGVtZW50ICpiZWZvcmUsIEV4Y2VwdGlvbgogICAgICAgICByZXR1cm47CiAKICAgICBp
bnNlcnRCZWZvcmUoZWxlbWVudCwgYmVmb3JlLCBlYyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShpbnQgaW5kZXgpCkBA
IC0xNTYsOSArMjAxLDEwIEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShpbnQgaW5k
ZXgpCiAgICAgQVNTRVJUKGl0ZW0tPnBhcmVudE5vZGUoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBl
YzsKICAgICBpdGVtLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGl0ZW0sIGVjKTsKKyAgICBz
ZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAotU3RyaW5nIEhUTUxTZWxlY3RFbGVtZW50Ojp2
YWx1ZSgpCitTdHJpbmcgSFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKIHsKICAgICBj
b25zdCBWZWN0b3I8RWxlbWVudCo+JiBpdGVtcyA9IGxpc3RJdGVtcygpOwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7IGkrKykgewpAQCAtMTk1LDYgKzI0MSw3IEBA
IGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFs
dWUpIGNvbnN0CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKG1fZGF0YSwgdGhpcywgc3RhdGUpOworICAgIHNldE5lZWRzVmFsaWRpdHlD
aGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShBdHRyaWJ1dGUqIGF0dHIpIApAQCAtMjE1LDE0ICsyNjIsMTYgQEAgdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICAg
ICAgcmVjYWxjTGlzdEl0ZW1zSWZOZWVkZWQoKTsKIAogICAgICAgICBtX2RhdGEuc2V0U2l6ZShz
aXplKTsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAgICAgIGlmICgob2xk
VXNlc01lbnVMaXN0ICE9IG1fZGF0YS51c2VzTWVudUxpc3QoKSB8fCAoIW9sZFVzZXNNZW51TGlz
dCAmJiBtX2RhdGEuc2l6ZSgpICE9IG9sZFNpemUpKSAmJiBhdHRhY2hlZCgpKSB7CiAgICAgICAg
ICAgICBkZXRhY2goKTsKICAgICAgICAgICAgIGF0dGFjaCgpOwogICAgICAgICAgICAgc2V0UmVj
YWxjTGlzdEl0ZW1zKCk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBtdWx0aXBsZUF0dHIpCisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbXVsdGlwbGVB
dHRyKSB7CiAgICAgICAgIFNlbGVjdEVsZW1lbnQ6OnBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUobV9k
YXRhLCB0aGlzLCBhdHRyKTsKLSAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYWNjZXNza2V5
QXR0cikgeworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKKyAgICB9IGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBhY2Nlc3NrZXlBdHRyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBpZ25v
cmUgZm9yIHRoZSBtb21lbnQKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhbGlnbkF0
dHIpIHsKICAgICAgICAgLy8gRG9uJ3QgbWFwICdhbGlnbicgYXR0cmlidXRlLiAgVGhpcyBtYXRj
aGVzIHdoYXQgRmlyZWZveCwgT3BlcmEgYW5kIElFIGRvLgpAQCAtMjU1LDYgKzMwNCw3IEBAIGJv
b2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNhblNlbGVjdEFsbCgpIGNvbnN0CiB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpzZWxlY3RBbGwoKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbCht
X2RhdGEsIHRoaXMpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiBSZW5kZXJP
YmplY3QqIEhUTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJl
bmEsIFJlbmRlclN0eWxlKikKQEAgLTMxNSw2ICszNjUsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVt
ZW50OjpzZXRSZWNhbGNMaXN0SXRlbXMoKQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQo
KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnJlc2V0KG1fZGF0YSwgdGhpcyk7CisgICAgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNo
Rm9jdXNFdmVudCgpCkBAIC0zNDAsMTYgKzM5MSwxOSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4KGludCBpbmRleCkKIHsKICAgICBTZWxl
Y3RFbGVtZW50OjpzZXRBY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleChtX2RhdGEsIHRoaXMsIGlu
ZGV4KTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgoaW50IGluZGV4KQogewogICAgIFNl
bGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkVuZEluZGV4KG1fZGF0YSwgaW5kZXgpOwor
ICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50
Ojp1cGRhdGVMaXN0Qm94U2VsZWN0aW9uKGJvb2wgZGVzZWxlY3RPdGhlck9wdGlvbnMpCiB7CiAg
ICAgU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbihtX2RhdGEsIHRoaXMsIGRl
c2VsZWN0T3RoZXJPcHRpb25zKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAog
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bWVudUxpc3RPbkNoYW5nZSgpCkBAIC00NTgsNiArNTEy
LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKHVuc2lnbmVkIG5ld0xlbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisgICAg
c2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNj
cm9sbFRvU2VsZWN0aW9uKCkKQEAgLTQ3MSw0ICs1MjYsOSBAQCB2b2lkIEhUTUxTZWxlY3RFbGVt
ZW50OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlOjppbnNlcnRlZEludG9UcmVlKGRlZXApOwogfQogCitib29sIEhUTUxTZWxl
Y3RFbGVtZW50Ojppc1JlcXVpcmVkRm9ybUNvbnRyb2woKSBjb25zdAoreworICAgIHJldHVybiBy
ZXF1aXJlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApp
bmRleCBhM2I0NDYwZDRiYzkwZWY5ODhkZDZlYjA3MTNhOWZiOWY4MjUwMzMyLi5lMmY1MWQ4MmJh
ZjM1ZTQ5MTc5NGFkNzc2M2Q0MzM1OTdlNWMxMTcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aApAQCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVk
SW5kZXgoaW50IGluZGV4LCBib29sIGRlc2VsZWN0ID0gdHJ1ZSk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IGluZGV4LCBib29sIGRlc2VsZWN0ID0gdHJ1ZSwg
Ym9vbCBmaXJlT25DaGFuZ2VOb3cgPSBmYWxzZSwgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0aW9u
ID0gZmFsc2UpOwogCisgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUKKyAgICBib29sIHZhbHVlTWlz
c2luZygpIGNvbnN0OworCiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAKICAgICB2aXJ0
dWFsIGludCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQpAQCAtNTEsNyAr
NTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGQoSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEhUTUxF
bGVtZW50KiBiZWZvcmUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHJlbW92ZShpbnQgaW5k
ZXgpOwogCi0gICAgU3RyaW5nIHZhbHVlKCk7CisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFBhc3NSZWZQdHI8SFRNTE9w
dGlvbnNDb2xsZWN0aW9uPiBvcHRpb25zKCk7CkBAIC0xMzQsNyArMTM3LDggQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwogCi0gICAgdmlydHVh
bCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gIWlz
UmVxdWlyZWRGb3JtQ29udHJvbCgpOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVxdWlyZWRGb3Jt
Q29udHJvbCgpIGNvbnN0OwogCiAgICAgU2VsZWN0RWxlbWVudERhdGEgbV9kYXRhOwogICAgIENv
bGxlY3Rpb25DYWNoZSBtX2NvbGxlY3Rpb25JbmZvOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGwKaW5kZXggMmU1M2JjYWE2YzYzNzA4MTQ2N2YxNTYwNjZkMGVjYWE4NTI3YjcyNy4uZjVhYzY5
YjJmODFjMzkzMDg0MTFmNmRiOGVmMGE2ZjQzNTlhZmFmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuaWRsCkBAIC00OSw2ICs0OSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9mb2N1czsKICAgICAgICAgYXR0cmlidXRlIGJvb2xl
YW4gbXVsdGlwbGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBuYW1lOworICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gcmVx
dWlyZWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHNpemU7CiAgICAgICAgIAogICAgICAgICBb
T2xkU3R5bGVPYmpDXSB2b2lkIGFkZChpbiBIVE1MRWxlbWVudCBlbGVtZW50LCBpbiBIVE1MRWxl
bWVudCBiZWZvcmUpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL1ZhbGlkaXR5U3RhdGUuY3BwIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCmlu
ZGV4IGVmM2RlNjZiYjY0MzkwZTVjMjg3NzVkZWU0MDI1MjZlNjIwNmIxZDUuLmNkZTBkNjQ4ZGEx
ZGM4YmFmNTM2MWM1NDU0ZTVlMDdlNTRjN2E4ZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9W
YWxpZGl0eVN0YXRlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKICNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC0xMTAsNiArMTExLDEwIEBAIGJvb2wgVmFs
aWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKCkgY29uc3QKICAgICAgICAgSFRNTFRleHRBcmVhRWxl
bWVudCogdGV4dEFyZWEgPSBzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4obV9jb250
cm9sKTsKICAgICAgICAgcmV0dXJuIHRleHRBcmVhLT52YWx1ZU1pc3NpbmcodGV4dEFyZWEtPnZh
bHVlKCkpOwogICAgIH0KKyAgICBpZiAobV9jb250cm9sLT5oYXNUYWdOYW1lKHNlbGVjdFRhZykp
IHsKKyAgICAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHN0YXRpY19jYXN0PEhUTUxT
ZWxlY3RFbGVtZW50Kj4obV9jb250cm9sKTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdC0+dmFsdWVN
aXNzaW5nKCk7CisgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75788</attachid>
            <date>2010-12-07 00:25:49 -0800</date>
            <delta_ts>2010-12-07 02:59:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101207172600.patch</filename>
            <type>text/plain</type>
            <size>56055</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2OGYxNjQxMmRmNjUyZWNhMTJmNWIwNmVhOThhNTFhOWY0NGMwYTY0Li5lNDNkZDdl
MTZmMzRiOTcyZmUxY2U0NTNjZDYwOTNjZTlmZmRkODBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMTItMDIgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9v
YmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1
ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTItMDEgIEp1bGllIFBh
cmVudCAgPGpwYXJlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSZW1v
dmluZyBvdXQgb2YgZGF0ZSBleHBlY3RhdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVj
dGVkLnR4dAppbmRleCBiMDY5YTc0ZTA1ZGU1MWUzNzdjMzBjMDU4NWVmNTU1NGQ0YWZjYWFmLi42
NDJhNDE4Yjk0ODIxOTEyMzc3MjkwOWU5OGEzMDg5NzU5ODdmNjA0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjMgQEAKLVRoZXJlIGFyZSB0d28gZm9y
bSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCBibGFuazogdmFsaWRp
dHkudmFsdWVNaXNzaW5nIHNob3VsZCBiZSB0cnVlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3Qg
Y2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIGJsYW5rIHZhbHVlcywgYmxhbmsgb3B0
aW9ucyBzZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4KIAotIAotU1VDQ0VTUworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpIGlz
IHRydWUKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUKK1BBU1MgdmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiKSBpcyB0cnVlCitQQVNT
IHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiKSBpcyBmYWxzZQor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xk
ZXItc2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNl
bGVjdGVkLW11bHRpcGxlIikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1m
YWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikgaXMg
ZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1t
dWx0aXBsZSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFj
ZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlz
c2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW9wdGdyb3VwIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZGlzYWJsZWQtb3B0aW9uIikgaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAg
ICAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXZhbHVlTWlzc2luZy0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWwKaW5kZXggZGM4ODg3OTI5NDY0YjgxNGY1MjZm
MDMzMTZmMGI1MTNmNGE0MzFiNS4uODQyMGMxYzc0YzI0MjhjMmYxYTMyYmNlMjZjYjNlZmMwMTkw
NGRlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5
U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS5odG1sCkBAIC0xLDI3ICsxLDkxIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRp
dGxlPnJlcXVpcmVkIGFuZCBiYXNpYyB2YWx1ZU1pc3Npbmc8L3RpdGxlPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGltIiBy
ZXF1aXJlZC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVk
PjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiIG5h
bWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAg
PG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxl
Y3Qtd2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlv
biB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8
L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIg
bmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxl
Y3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNp
emU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRp
b24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5v
bmUtc2VsZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+Cisg
IDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9z
ZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0
aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0i
IiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4K
KzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5h
bWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29w
dGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0
IGlkPSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBt
dWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0
aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1m
YWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11
bHRpcGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+
CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0i
c2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmlj
dGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwv
b3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC1vcHRncm91cCIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGdy
b3VwIGxhYmVsPSIxIj4KKyAgICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDwvb3B0
Z3JvdXA+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVj
dCBpZD0ic2VsZWN0LWRpc2FibGVkLW9wdGlvbiIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAg
PG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJY
Ij5YPC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4i
K21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAg
ICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1p
c3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0
eS52YWx1ZU1pc3Npbmcgd2l0aCBibGFuayB2YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQs
IG9yIG5vdGhpbmcgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUo
InZpY3RpbSIpOwogCi0gICAgICAgIGxvZygodlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYg
dlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAg
ICB9CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoImlucHV0IiknKTsKKyAgICBz
aG91bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJl
VHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vo
b2xkZXIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBs
YWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiknKTsKKyAgICBzaG91
bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUi
KScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxh
Y2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVl
TWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7
CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVk
LXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxh
Y2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlz
c2luZ0Zvcigic2VsZWN0LW9wdGdyb3VwIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC1kaXNhYmxlZC1vcHRpb24iKScpOworCisgICAgdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVz
dCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3Ro
IHJlcXVpcmVkIGFuZCBibGFuazoKLXZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgdHJ1
ZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkLz4KLTx0
ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9
ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3Np
bmctMDAyLWV4cGVjdGVkLnR4dAppbmRleCAzNjA2OWI4NTNjOTEyOWM0NTllZTdjMDNmNmI3ZTM1
ODllNDNhYWE0Li5iY2IyYTg0NDIyNWZmYTk2ZDg2OTQ1MTgxZWI3MzQ3N2Q3NzczZjI2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5n
LTAwMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTkgQEAKLVRoZXJl
IGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCB3
aXRoIHNvbWUgdmFsdWU6IHZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4g
Ym90aCBjYXNlcy4KK1RoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIHdpdGgg
c29tZSB2YWx1ZXMgb3Igb3B0aW9ucyB3aXRoIHNvbWUgdmFsdWVzIHNlbGVjdGVkLgogCi0gCi1T
VUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoImlucHV0IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtcGxhY2Vob2xkZXIiKSBp
cyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVy
IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNl
aG9sZGVyLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0
aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRp
cGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBs
YWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAg
ICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
dmFsdWVNaXNzaW5nLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLXZhbHVlTWlzc2luZy0wMDIuaHRtbAppbmRleCA2ZjA2ZjlmNDM2NDVmNDljYzMzZjc4MGI1
YWY5NjJiMTQ3YTdlODM1Li43MDVmMDIyM2U2NmZjMGI5ODE2YjM2MTY4ZjM4OTMyZWViMThiN2Jl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLTAwMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwKQEAgLTEsMjcgKzEsNjkgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+
cmVxdWlyZWQgYW5kIGJhc2ljIHZhbHVlTWlzc2luZyAyPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0iaW5wdXQiIG5hbWU9InZpY3RpbSIgdmFs
dWU9InNvbWV0aGluZyIgcmVxdWlyZWQvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0i
dmljdGltIiByZXF1aXJlZD5zb21ldGhpbmc8L3RleHRhcmVhPgorPHNlbGVjdCBpZD0ic2VsZWN0
LXdpdGgtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFs
dWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorPC9zZWxl
Y3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGlt
IiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8
b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRoLWZh
a2UtcGxhY2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIgc2l6ZT0iMiIgcmVxdWlyZWQ+Cisg
IDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0
aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9s
ZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZh
bHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKzwvc2Vs
ZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIg
bmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgor
ICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9InZp
Y3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8
L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJz
ZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0i
IG11bHRpcGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxv
cHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBp
ZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0i
dmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIg
c2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVjdD4KIDxz
Y3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAg
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5j
dGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rp
b24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgd2l0aCBzb21lIHZh
bHVlcyBvciBvcHRpb25zIHdpdGggc29tZSB2YWx1ZXMgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAg
diA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAgICAgIGxvZygoIXZbMF0udmFs
aWRpdHkudmFsdWVNaXNzaW5nICYmICF2WzFdLnZhbGlkaXR5LnZhbHVlTWlzc2luZykgPyAiU1VD
Q0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3Np
bmdGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInRl
eHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13
aXRoLXBsYWNlaG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItc2l6ZTIiKScpOworICAg
IHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFj
ZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZh
bHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVs
dGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdp
dGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUy
LW11bHRpcGxlIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVyZSBhcmUgdHdv
IGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZCBhbmQgd2l0aCBzb21l
IHZhbHVlOgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBiZSBmYWxzZSBpbiBib3RoIGNh
c2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIHZhbHVlPSJzb21ldGhpbmciIHJlcXVpcmVk
Lz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPnNvbWV0aGluZzwvdGV4dGFyZWE+
Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1p
c3NpbmctMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlT
dGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dAppbmRleCBkZmUzMzk4NjkwZTE5YmYz
MmVhMjIwMGZjNDE1OGZhOWVhYjM4NTcyLi4xZjQxMmJkNmVhNjY2ZjViZTViNTAxZDJhMTVkMTFi
ZTNlNDYwMWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0CkBAIC0xLDQg
KzEsMjEgQEAKLVRoZXJlIGFyZSB0d28gZGlzYWJsZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJl
bG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6IHZhbGlkaXR5LnZhbHVlTWlz
c2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy4KK1RoaXMgdGVzdCBjaGVja3MgdmFs
aWRpdHkudmFsdWVNaXNzaW5nIG9mIGRpc2FibGVkIGZvcm0gY29udHJvbHMgd2l0aCBibGFuayB2
YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9yIG5vdGhpbmcgc2VsZWN0ZWQuCiAKLSAK
LVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHZhbHVlTWlzc2lu
Z0ZvcigiaW5wdXQiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVhIikg
aXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0
ZWQiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNl
aG9sZGVyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtc2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVl
TWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlwbGUiKSBp
cyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vo
b2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1u
b25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhv
bGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMuaHRtbApp
bmRleCA5ZDkyZmZiMzRiNzIyNDZmY2RhNzIwN2M0NTczMzdhMWVmMmZmZDRjLi4xM2Q0NGZjZjlk
NDc4MDJiZDVlYzgzZTZkMTE2Mzk3OWFlYmU3Y2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwKQEAg
LTEsMjcgKzEsNzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYW5kIHZhbHVlTWlzc2luZyBv
biBkaXNhYmxlZCBlbGVtZW50czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVk
IC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJlcXVp
cmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQi
IG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2Vs
ZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2Vs
ZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiBkaXNhYmxl
ZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhv
bGRlci1zZWxlY3RlZC1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiBkaXNhYmxlZCByZXF1
aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJY
Ij5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNl
aG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgor
ICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0
ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlw
bGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24g
dmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8
c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBsZSIgbmFt
ZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0i
IiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4K
KzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5h
bWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9
IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+
Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0i
dmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxz
ZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxl
IiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgorICA8
b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRl
ci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiBkaXNhYmxl
ZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3Jp
cHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsK
LSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0g
IjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQp
IHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52
YWx1ZU1pc3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2
YWxpZGl0eS52YWx1ZU1pc3Npbmcgb2YgZGlzYWJsZWQgZm9ybSBjb250cm9scyB3aXRoIGJsYW5r
IHZhbHVlcywgYmxhbmsgb3B0aW9ucyBzZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4iKTsK
IAotICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworICAg
IHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CiAKLSAgICAgICAgbG9n
KCghdlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgIXZbMV0udmFsaWRpdHkudmFsdWVNaXNz
aW5nKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgfQorICAgIHNob3VsZEJlRmFsc2Uo
J3ZhbHVlTWlzc2luZ0ZvcigiaW5wdXQiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlz
c2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiknKTsKKyAgICBzaG91
bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1z
aXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0
aG91dC1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVG
YWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1t
dWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qt
d2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNl
KCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikn
KTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNl
aG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVs
dGlwbGUiKScpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZGlz
YWJsZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRo
IHNvbWUgdmFsdWU6Ci12YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIGZhbHNlIGluIGJv
dGggY2FzZXMuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQgLz4K
LTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVkPjwvdGV4dGFyZWE+Ci08
aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3Rl
ZC50eHQKaW5kZXggMTg1Nzk0NDQ4NzBkMzk0MDU1ZDNhOTIwMzc0NGM3ZWQ4NDBjOGU4NC4uODM4
ODgyODg4Zjc2MmJiMTQ1MWQxODBhYjI5ZjFmYjg4ODg4Yzg5OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQKQEAgLTEs
MTIgKzEsMTQgQEAKLVRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMg
Y29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1l
bnRzLgorVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0
bHkgYSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMsIGFu
ZCByZXR1cm5zIGEgdHJ1ZSByZXN1bHQgb24gYSBibGFuayBidXQgdmFsaWQgZWxlbWVudHMuIEJs
YW5rIGJ1dCBub24tcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9ucyBhcmUgdmFsaWQuCiAKIE9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi0gIAotUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBp
cyBmYWxzZQotUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQotUEFTUyB2W2ldLmNo
ZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorICAgIAorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJpbnB1
dC1lbXB0eSIpIGlzIGZhbHNlCitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoImlucHV0LXBhdHRlcm4t
bWlzbWF0Y2giKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJ0ZXh0YXJlYSIpIGlz
IGZhbHNlCitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoInNlbGVjdC1wbGFjZWhvbGRlciIpIGlzIGZh
bHNlCitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoInNlbGVjdC1ub24tcGxhY2Vob2xkZXIiKSBpcyB0
cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbAppbmRleCAyODcy
ZmFkMzViZWU4MmU0NjViZWUxN2VmYmYxMWY1ODBmZjQyY2M5Li42NjJmNmViZmQzMTExZWFmZTJi
NzExY2Y4YjAwMmYxYjA4YmVlOWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2NoZWNrVmFsaWRpdHktMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVj
a1ZhbGlkaXR5LTAwMi5odG1sCkBAIC03LDE5ICs3LDMzIEBACiA8Ym9keT4KIDxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgogPGZvcm0gbWV0aG9kPSJnZXQiPgotPGlucHV0IG5hbWU9InZpY3RpbSIg
dHlwZT0idGV4dCIgcmVxdWlyZWQvPgotPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIg
cGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Ci08dGV4dGFyZWEgbmFt
ZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPGlucHV0IGlkPSJpbnB1dC1lbXB0eSIg
bmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZC8+Cis8aW5wdXQgaWQ9ImlucHV0LXBh
dHRlcm4tbWlzbWF0Y2giIG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcGF0dGVybj0iTG9yZW0g
aXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1l
PSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vo
b2xkZXIiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0
ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0
IGlkPSJzZWxlY3Qtbm9uLXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8
b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQg
Lz4KKzwvc2VsZWN0PgogPC9mb3JtPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0
PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVy
bnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlkIGVs
ZW1lbnRzLiIpOworICAgIGZ1bmN0aW9uIGNoZWNrVmFsaWRpdHlGb3IoaWQpIHsKKyAgICAgICAg
cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGVja1ZhbGlkaXR5KCk7CisgICAg
fQogCi12ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwotZm9yIChpID0g
MDsgaSA8IHYubGVuZ3RoOyBpKyspCi0gICAgc2hvdWxkQmUoInZbaV0uY2hlY2tWYWxpZGl0eSgp
IiwgImZhbHNlIik7CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tW
YWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3Vs
dCBvbiBpbnZhbGlkIGVsZW1lbnRzLCBhbmQgcmV0dXJucyBhIHRydWUgcmVzdWx0IG9uIGEgYmxh
bmsgYnV0IHZhbGlkIGVsZW1lbnRzLiBCbGFuayBidXQgbm9uLXBsYWNlaG9sZGVyIGxhYmVsIG9w
dGlvbnMgYXJlIHZhbGlkLiIpOwogCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAg
ICBzaG91bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5Rm9yKCJpbnB1dC1lbXB0eSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigiaW5wdXQtcGF0dGVybi1taXNtYXRjaCIp
Jyk7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigidGV4dGFyZWEiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoInNlbGVjdC1wbGFjZWhvbGRlciIp
Jyk7CisgICAgc2hvdWxkQmVUcnVlKCdjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qtbm9uLXBsYWNl
aG9sZGVyIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVk
LWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1
aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dAppbmRleCA5YjIwMTQzMThhM2U1MGJkM2Vm
NWQ0MDAxMzZjMzAyNDY5MWY4OWNkLi5iOWI1NGI4NzY0YzQ5ZGE2MDE3YTQxN2M3ZThmMzdmZjFj
ZTY0YWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJp
YnV0ZS0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWly
ZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwxMiBAQAotVGhlcmUgYXJl
IHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQuCitUaGVyZSBh
cmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBhbGwgcmVxdWlyZWQuCiAKLSAK
LVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlcXVpcmVkRm9y
KCJpbnB1dCIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInRleHRhcmVhIikgaXMgdHJ1ZQor
UEFTUyByZXF1aXJlZEZvcigic2VsZWN0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEuaHRtbAppbmRleCAyZjM0YzE2MWFjZjZhM2Y1
ZjQwMDA4NzNmZDgyNjZjMDE3ZmUwMzYwLi44YWVhNTdjMzE2MzU0ZTY3ZGI4OTQwMDZlODcwZDUz
NGVmNzM5NWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0
dHJpYnV0ZS0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0
dHJpYnV0ZS0wMDEuaHRtbApAQCAtMSwyNiArMSwzNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJl
ZCBhdHRyaWJ1dGUgcHJlc2VuY2UgdGVzdDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkIC8+
Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFy
ZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRp
b24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgor
PC9zZWxlY3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xp
PiI7CisgICAgZnVuY3Rpb24gcmVxdWlyZWRGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGlkKS5yZXF1aXJlZDsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB0
ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRlc2NyaXB0aW9u
KCJUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBhbGwgcmVxdWly
ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0i
KTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAg
ICAgIGxvZygodlswXS5yZXF1aXJlZCAmJiB2WzFdLnJlcXVpcmVkKSA/ICJTVUNDRVNTIiA6ICJG
QUlMVVJFIik7Ci0gICAgfQorICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoImlucHV0Iikn
KTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hv
dWxkQmVUcnVlKCdyZXF1aXJlZEZvcigic2VsZWN0IiknKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBy
ZXF1aXJlZC48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiByZXF1aXJlZCAvPgotPHRleHRhcmVh
IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KLTxocj4KLTxvbCBpZD0iY29uc29s
ZSI+PC9vbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3RlZC50eHQKaW5k
ZXggYWM1YzBmZmYyMjg2NmUxMTVmZjBjYzQzY2Q0ZGI0OWM4ZTk4ZmJmYS4uYzI1NTYxZDE0Y2M3
NjBjMjc3ODEzOGY3NGM3ZjI0NjVhMjAyNjJjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDItZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsMTkgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBi
b3RoIG9wdGlvbmFsLiBUaGV5J3JlIHNldCBhcyByZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9NIGF0
dHJpYnV0ZS4KK1RoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGFs
bCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRy
aWJ1dGUuCiAKLSAKLVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitCZWZv
cmUgc2V0OgorUEFTUyByZXF1aXJlZEZvcigiaW5wdXQiKSBpcyBmYWxzZQorUEFTUyByZXF1aXJl
ZEZvcigidGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyByZXF1aXJlZEZvcigic2VsZWN0IikgaXMg
ZmFsc2UKKworQWZ0ZXIgc2V0OgorUEFTUyByZXF1aXJlZEZvcigiaW5wdXQiKSBpcyB0cnVlCitQ
QVNTIHJlcXVpcmVkRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInNl
bGVjdCIpIGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJl
ZC1hdHRyaWJ1dGUtMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0
dHJpYnV0ZS0wMDIuaHRtbAppbmRleCBhYTg1ZTg5NTRlZTA3ODE4ZDFjMjhiZDU1MjBhOTViMjIx
Yzc3YjkwLi45MjhlMzNmYzgwNTBkM2UyYjRlYTg3NWI2ZmVkZTNkZTA0MjY5M2EzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbApA
QCAtMSwzMiArMSw0NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhdHRyaWJ1dGUgSlMgc2V0
PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0i
aW5wdXQiIG5hbWU9InZpY3RpbSIgLz4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZp
Y3RpbSI+PC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdCIgbmFtZT0idmljdGltIj4KKyAg
PG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRp
b24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2Ur
IjwvbGk+IjsKKyAgICBmdW5jdGlvbiByZXF1aXJlZEZvcihpZCkgeworICAgICAgICByZXR1cm4g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnJlcXVpcmVkOwogICAgIH0KIAotICAgIGZ1bmN0
aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZGVzY3Jp
cHRpb24oIlRoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGFsbCBv
cHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1
dGUuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0i
KTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAg
ICAgIGlmICh2WzBdLnJlcXVpcmVkID09IGZhbHNlICYmIHZbMV0ucmVxdWlyZWQgPT0gZmFsc2Up
IHsKLSAgICAgICAgICAgIHZbMF0ucmVxdWlyZWQgPSB0cnVlOwotICAgICAgICAgICAgdlsxXS5y
ZXF1aXJlZCA9IHRydWU7Ci0gICAgICAgICAgICBsb2cgKCh2WzBdLnJlcXVpcmVkICYmIHZbMV0u
cmVxdWlyZWQpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICAgICAgfQotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBsb2coIkZBSUxVUkUiKTsKLSAgICB9CisgICAgZGVidWcoIkJlZm9y
ZSBzZXQ6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgncmVxdWlyZWRGb3IoImlucHV0IiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCdyZXF1aXJlZEZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJl
RmFsc2UoJ3JlcXVpcmVkRm9yKCJzZWxlY3QiKScpOworICAgIGRlYnVnKCIiKTsKKworICAgIHZb
MF0ucmVxdWlyZWQgPSB0cnVlOworICAgIHZbMV0ucmVxdWlyZWQgPSB0cnVlOworICAgIHZbMl0u
cmVxdWlyZWQgPSB0cnVlOworCisgICAgZGVidWcoIkFmdGVyIHNldDoiKTsKKyAgICBzaG91bGRC
ZVRydWUoJ3JlcXVpcmVkRm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJl
ZEZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoInNlbGVj
dCIpJyk7CisgICAgZGVidWcoIiIpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7CiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlRoZXJl
IGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIG9wdGlvbmFsLiBUaGV5
J3JlIHNldCBhcyByZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0ZS48L3A+Ci08aW5w
dXQgbmFtZT0idmljdGltIiAvPgotPHRleHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4K
LTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3Nl
bGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIyMTMzYzVkMjdmYTBi
OTI5YzFkYmZkMjAwM2M4ODlmODhiYzE2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKQEAg
LTAsMCArMSwxODMgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgcGVyZm9ybXMgYSBjaGVjayB0
aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBsaXZlbHkgYXBwbGll
ZC4iKTsKKworLy8gU2V0dXAgZm9yIHN0YXRpYyBlbGVtZW50cy4KK3ZhciBmb3JtID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3Jt
KTsKK3ZhciBub25Gb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKG5vbkZvcm0pOworCitmdW5jdGlvbiBtYWtlSW52YWxpZCgpIHsK
KyAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7CisgICAg
c2VsZWN0Lm5hbWUgPSAnZm9vJzsKKyAgICBzZWxlY3QucmVxdWlyZWQgPSB0cnVlOworICAgIHNl
bGVjdC52YWx1ZSA9ICcnOworICAgIGZvcm0uYXBwZW5kQ2hpbGQoc2VsZWN0KTsKKyAgICByZXR1
cm4gc2VsZWN0OworfQorCitmdW5jdGlvbiBhcHBlbmRPcHRpb24odmFsdWUsIHNlbGVjdCkgewor
ICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKKyAgICBv
cHRpb24udmFsdWUgPSB2YWx1ZTsKKyAgICBvcHRpb24uaW5uZXJUZXh0ID0gdmFsdWU7CisgICAg
c2VsZWN0LmFkZChvcHRpb24pOworICAgIHJldHVybiBvcHRpb247Cit9CisKK2Z1bmN0aW9uIGlu
c2VydE9wdGlvbkJlZm9yZSh2YWx1ZSwgc2VsZWN0LCBiZWZvcmUpIHsKKyAgICB2YXIgb3B0aW9u
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CisgICAgb3B0aW9uLnZhbHVlID0g
dmFsdWU7CisgICAgb3B0aW9uLmlubmVyVGV4dCA9IHZhbHVlOworICAgIHNlbGVjdC5hZGQob3B0
aW9uLCBiZWZvcmUpOworICAgIHJldHVybiBvcHRpb247Cit9CisKK2Z1bmN0aW9uIHJlbW92ZU9w
dGlvbihvcHRpb24sIHNlbGVjdCkgeworICAgIHNlbGVjdC5yZW1vdmUob3B0aW9uKTsKKyAgICBy
ZXR1cm4gb3B0aW9uOworfQorCitmdW5jdGlvbiBiYWNrZ3JvdW5kT2YoZWwpIHsKKyAgICByZXR1
cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJv
cGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpOworfQorCit2YXIgZWxCYWNrZ3JvdW5kID0g
J2JhY2tncm91bmRPZihlbCknOwordmFyIGludmFsaWRDb2xvciA9ICdyZ2IoMjU1LCAwLCAwKSc7
Cit2YXIgbm9ybWFsQ29sb3IgPSAncmdiKDI1NSwgMjU1LCAyNTUpJzsKK3ZhciBkaXNhYmxlZENv
bG9yID0gJ3JnYigwLCAwLCAwKSc7Cit2YXIgcmVhZE9ubHlDb2xvciA9ICdyZ2IoMCwgMjU1LCAw
KScKK3ZhciB2YWxpZENvbG9yID0gJ3JnYigwLCAwLCAyNTUpJzsKKworLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICB3aWxsVmFsaWRhdGUgY2hhbmdlCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordmFyIGVsID0gbWFrZUludmFsaWQoKTsKK3Zh
ciBvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOwordmFyIG8yID0gYXBwZW5kT3B0aW9uKCdYJywg
ZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworLy8gQ29uZmlybSB0aGlzIGVsZW1lbnQgaXMgaW52
YWxpZC4KK2RlYnVnKCdDaGVjayB0aGUgaW5pdGlhbCBzdGF0ZTonKTsKK3Nob3VsZEJlKGVsQmFj
a2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIG5hbWU6Jyk7CitlbC5u
YW1lID0gJyc7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK2VsLm5h
bWUgPSAnYmFyJzsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitk
ZWJ1ZygnQ2hhbmdlIGRpc2FibGVkOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBl
bmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0
ZWQgPSB0cnVlOworZWwuZGlzYWJsZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAn
ZGlzYWJsZWRDb2xvcicpOworZWwuZGlzYWJsZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dy
b3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnSW5zaWRlL291dHNpZGUgb2YgYSBmb3Jt
OicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28y
ID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworbm9uRm9ybS5h
cHBlbmRDaGlsZChlbCk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsK
K2Zvcm0uYXBwZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENv
bG9yJyk7CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgdmFs
dWUgY2hhbmdlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZGVidWcoJ0No
YW5nZSB0aGUgdmFsdWUgd2l0aCBhIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbjonKTsKK2VsID0g
bWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9w
dGlvbignWCcsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3Vu
ZCwgJ3ZhbGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dy
b3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIHRoZSB2YWx1ZSB3aXRob3V0
IGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEg
PSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIu
c2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOwor
bzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicp
OworCitkZWJ1ZygnSW5zZXJ0L3JlbW92ZSBvcHRpb25zOicpOworZWwgPSBtYWtlSW52YWxpZCgp
OworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwp
OworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENv
bG9yJyk7CitvMyA9IGluc2VydE9wdGlvbkJlZm9yZSgnWScsIGVsLCBlbC5maXJzdENoaWxkKTsK
K3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK3JlbW92ZU9wdGlvbihvMywg
ZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitvMyA9IGFwcGVu
ZE9wdGlvbignWicsIGVsKTsKK28zLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dy
b3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLmxlbmd0aCA9IDI7CitzaG91bGRCZShlbEJhY2tncm91
bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1NldCBhbiBhdHRyaWJ1dGU6IG11bHRpcGxl
OicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28y
ID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUo
ZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitlbC5tdWx0aXBsZSA9IHRydWU7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitlbC5yZW1vdmVBdHRyaWJ1dGUoJ211
bHRpcGxlJyk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVi
dWcoJ1NldCBhbiBhdHRyaWJ1dGU6IHNpemU6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9
IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMS5z
ZWxlY3RlZCA9IHRydWU7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsK
K2VsLnNpemUgPSAyOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwu
cmVtb3ZlQXR0cmlidXRlKCdzaXplJyk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlk
Q29sb3InKTsKKworZGVidWcoJ1NlbGVjdEFsbDonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28x
ID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK2Vs
Lm11bHRpcGxlID0gdHJ1ZTsKK28xLnNlbGVjdGVkID0gZmFsc2U7CitvMi5zZWxlY3RlZCA9IGZh
bHNlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitlbC5mb2N1cygp
OworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAndmFsaWRDb2xvcicpOworZWwubXVsdGlwbGUgPSBmYWxzZTsKK28xLnNlbGVjdGVkID0g
ZmFsc2U7CitvMi5zZWxlY3RlZCA9IHRydWU7CisKK2RlYnVnKCdSZXNldDonKTsKK2VsID0gbWFr
ZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlv
bignWCcsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J3ZhbGlkQ29sb3InKTsKK2Zvcm0ucmVzZXQoKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2lu
dmFsaWRDb2xvcicpOworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8g
ICAgIENvbnN0cmFpbnRzIGNoYW5nZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK2RlYnVnKCdDaGFuZ2UgcmVxdWlyZWQ6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9
IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMS5z
ZWxlY3RlZCA9IHRydWU7CitlbC5yZXF1aXJlZCA9IGZhbHNlOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAndmFsaWRDb2xvcicpOworZWwucmVxdWlyZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNr
Z3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRh
dGlvbk1lc3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxp
ZGF0aW9uTWVzc2FnZS5qcwppbmRleCBkNjgyNmRlMTgyZTMxMzc3YWMwYzQ4ZDk0NjhjYjc2YThh
NTZmNDcxLi41YzU2NTQyNzAxNTE0MmVkMmQwNmY0NDQ2MmM3YWNjODU1ZDdhNWYyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2Fn
ZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9u
TWVzc2FnZS5qcwpAQCAtMjQsNiArMjQsMTMgQEAgcmVxdWlyZWRUZXh0QXJlYS5yZXF1aXJlZCA9
IHRydWU7CiBmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkVGV4dEFyZWEpOwogc2hvdWxkQmUoInJl
cXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVlIG1pc3NpbmcnIik7CiAK
Ky8vIEEgcmVxdWlyZWQgc2VsZWN0IHdpdGggYW4gZW1wdHkgdmFsdWUKK3ZhciByZXF1aXJlZFNl
bGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOworcmVxdWlyZWRTZWxlY3Qu
bmFtZSA9ICJyZXF1aXJlZFNlbGVjdCI7CityZXF1aXJlZFNlbGVjdC5yZXF1aXJlZCA9IHRydWU7
Citmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkU2VsZWN0KTsKK3Nob3VsZEJlKCJyZXF1aXJlZFNl
bGVjdC52YWxpZGF0aW9uTWVzc2FnZSIsICIndmFsdWUgbWlzc2luZyciKTsKKwogLy8gQSB0eXBl
PWVtYWlsIGlucHV0IGZvciB0aGUgInR5cGUgbWlzbWF0Y2giIGZsYWcKIHZhciBlbWFpbElucHV0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKIGVtYWlsSW5wdXQubmFtZSA9ICJl
bWFpbElucHV0IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxp
dmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRk
N2NiNzM0ZWE5MmU5ZjhjNGNiZWIwNWQ2ZjNmMTRmMjdkNjk1NzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTAgQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRo
YXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVk
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ2hlY2sgdGhlIGluaXRpYWwgc3Rh
dGU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgbmFtZToK
K1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9m
KGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSBkaXNhYmxlZDoKK1BBU1MgYmFja2dyb3VuZE9m
KGVsKSBpcyBkaXNhYmxlZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENv
bG9yCitJbnNpZGUvb3V0c2lkZSBvZiBhIGZvcm06CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMg
aW52YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFu
Z2UgdGhlIHZhbHVlIHdpdGggYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRpb246CitQQVNTIGJhY2tn
cm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFs
aWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSB3aXRob3V0IGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0
aW9uOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3Vu
ZE9mKGVsKSBpcyB2YWxpZENvbG9yCitJbnNlcnQvcmVtb3ZlIG9wdGlvbnM6CitQQVNTIGJhY2tn
cm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFs
aWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZh
bGlkQ29sb3IKK1NldCBhbiBhdHRyaWJ1dGU6IG11bHRpcGxlOgorUEFTUyBiYWNrZ3JvdW5kT2Yo
ZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IK
K1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1NldCBhbiBhdHRyaWJ1dGU6
IHNpemU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJhY2tn
cm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFs
aWRDb2xvcgorU2VsZWN0QWxsOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1Jlc2V0OgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZh
bGlkQ29sb3IKK0NoYW5nZSByZXF1aXJlZDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxp
ZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAyZTlmODc2NTBjNGQzYmZhYzg5ZDRhODFhYzFkYzU5MTYyNWZmZGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVk
by1zZWxlY3RvcnMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbAorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9saXZlLXBzZXVkby1zZWxlY3RvcnMuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKaW5kZXgg
MGUxMmQ4YTI3MWU1ZGQ4ZjU1M2EyMWQxYTljMmJkN2FiZTVkZDYzMS4uZTkxOTYxZDEwMDlmMzk5
MTkwY2RhZGUzMzAwZjkzYWIzNDQ0NjY0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKQEAgLTYsNiArNiw3IEBAIE9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIHBhdHRlcm5JbnB1dC52YWxpZGF0aW9uTWVzc2Fn
ZSBpcyAncGF0dGVybiBtaXNtYXRjaCcKIFBBU1MgcmVxdWlyZWRJbnB1dC52YWxpZGF0aW9uTWVz
c2FnZSBpcyAndmFsdWUgbWlzc2luZycKIFBBU1MgcmVxdWlyZWRUZXh0QXJlYS52YWxpZGF0aW9u
TWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgcmVxdWlyZWRTZWxlY3QudmFsaWRhdGlv
bk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIGVtYWlsSW5wdXQudmFsaWRhdGlvbk1l
c3NhZ2UgaXMgJ3R5cGUgbWlzbWF0Y2gnCiBQQVNTIGJ1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAn
JwogUEFTUyBhbm9uaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJycKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWxpdmUtcHNl
dWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZhODlmYTU4OGI1MWI5YjZjNmRhMDlhZjhjYTY3NDg4Y2EzNzdjYWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1o
dG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTUgQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENT
UyBwc3VkbyBzZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVkIGJ5IEhUTUxTZWxlY3RFbGVtZW50
OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworQ2hhbmdlIHRoZSB2YWx1ZSBvZiBhIG1lbnVsaXN0IHNlbGVjdCBieSBzZXRTZWxlY3RlZElu
ZGV4QnlVc2VyOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFj
a2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSB0aGUgdmFsdWUgb2YgYSBsaXN0
Ym94IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2VyOgorUEFTUyBiYWNrZ3JvdW5kT2Yo
ZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVj
dC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUxOTQxNjY1MTA1MmQyMTExOGYwOGUyZmYxZTE2MTI1MjdhYzRmZTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNl
bGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbApAQCAtMCwwICsxLDczIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9mYXN0L2Zv
cm1zL3Jlc291cmNlcy9saXZlLXBzZXVkby1zZWxlY3RvcnMuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBwZXJmb3JtcyBhIGNo
ZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3RvcnMgYXJlIGxpdmVseSBh
cHBsaWVkIGJ5IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyLiIpOwor
CisvLyBTZXR1cCBmb3Igc3RhdGljIGVsZW1lbnRzLgordmFyIGZvcm0gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdmb3JtJyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOworCitm
dW5jdGlvbiBtYWtlSW52YWxpZChpZCkgeworICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzZWxlY3QnKTsKKyAgICBzZWxlY3QubmFtZSA9ICdmb28nOworICAgIHNlbGVj
dC5yZXF1aXJlZCA9IHRydWU7CisgICAgaWYgKGlkICE9IHVuZGVmaW5lZCkKKyAgICAgICAgc2Vs
ZWN0LmlkID0gaWQ7CisgICAgc2VsZWN0LnZhbHVlID0gJyc7CisgICAgZm9ybS5hcHBlbmRDaGls
ZChzZWxlY3QpOworICAgIHJldHVybiBzZWxlY3Q7Cit9CisKK2Z1bmN0aW9uIGFwcGVuZE9wdGlv
bih2YWx1ZSwgc2VsZWN0KSB7CisgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ29wdGlvbicpOworICAgIG9wdGlvbi52YWx1ZSA9IHZhbHVlOworICAgIG9wdGlvbi5pbm5l
clRleHQgPSB2YWx1ZTsKKyAgICBzZWxlY3QuYWRkKG9wdGlvbik7CisgICAgcmV0dXJuIG9wdGlv
bjsKK30KKworZnVuY3Rpb24gYmFja2dyb3VuZE9mKGVsKSB7CisgICAgcmV0dXJuIGRvY3VtZW50
LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUo
J2JhY2tncm91bmQtY29sb3InKTsKK30KKwordmFyIGVsQmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5k
T2YoZWwpJzsKK3ZhciBpbnZhbGlkQ29sb3IgPSAncmdiKDI1NSwgMCwgMCknOwordmFyIG5vcm1h
bENvbG9yID0gJ3JnYigyNTUsIDI1NSwgMjU1KSc7Cit2YXIgZGlzYWJsZWRDb2xvciA9ICdyZ2Io
MCwgMCwgMCknOwordmFyIHJlYWRPbmx5Q29sb3IgPSAncmdiKDAsIDI1NSwgMCknCit2YXIgdmFs
aWRDb2xvciA9ICdyZ2IoMCwgMCwgMjU1KSc7CisKK2RlYnVnKCdDaGFuZ2UgdGhlIHZhbHVlIG9m
IGEgbWVudWxpc3Qgc2VsZWN0IGJ5IHNldFNlbGVjdGVkSW5kZXhCeVVzZXI6Jyk7CitlbCA9IG1h
a2VJbnZhbGlkKCdtZW51bGlzdCcpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0g
YXBwZW5kT3B0aW9uKCdYJywgZWwpOworb2JqQ0NvbnRyb2xsZXIuc2V0U2VsZWN0RWxlbWVudFNl
bGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAxLCBmYWxzZSk7CitzaG91bGRCZShlbEJh
Y2tncm91bmQsICd2YWxpZENvbG9yJyk7CitvYmpDQ29udHJvbGxlci5zZXRTZWxlY3RFbGVtZW50
U2VsZWN0ZWRJbmRleEFsbG93aW5nTXVsdGlwbGUoZWwsIDAsIGZhbHNlKTsKK3Nob3VsZEJlKGVs
QmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIHRoZSB2YWx1ZSBv
ZiBhIGxpc3Rib3ggc2VsZWN0IGJ5IHNldFNlbGVjdGVkSW5kZXhCeVVzZXI6Jyk7CitlbCA9IG1h
a2VJbnZhbGlkKCdsaXN0Ym94Jyk7CitlbC5tdWx0aXBsZSA9IHRydWU7CitvMSA9IGFwcGVuZE9w
dGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9
IGZhbHNlOworbzIuc2VsZWN0ZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2lu
dmFsaWRDb2xvcicpOworb2JqQ0NvbnRyb2xsZXIuc2V0U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5k
ZXhBbGxvd2luZ011bHRpcGxlKGVsLCAwLCBmYWxzZSk7CitzaG91bGRCZShlbEJhY2tncm91bmQs
ICd2YWxpZENvbG9yJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkZGRlNTk4OTM0MTQyMGM1NDZi
NjkzZGQwYTZlNWNlMzFjMTAzOS4uOTlhZjc1NWNlY2Q1ZWMxNWI2YjIyZDg5OGIxN2IxMzIwYjk5
YWU1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMC0xMi0wMiAgRGFpIE1pa3VydWJlICA8ZG1pa3VydWJl
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50ICJyZXF1aXJlZCIgYXR0cmlidXRlIGZvciBzZWxlY3QgdGFncworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAzODAKKworICAg
ICAgICBUZXN0OiBmYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbAor
ICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZl
LXBzZXVkby1zZWxlY3RvcnMuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVt
cyk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkgdG8gZW5hYmxlIHZhbGlk
aXR5IGNoZWNrIGFmdGVyIGNoYW5naW5nLiBObyB0ZXN0cyBmb3IgdGhpcyBjaGFuZ2Ugc2luY2Ug
dGhpcyBmdW5jdGlvbiBpcyBub3QgZXhwb3NlZCB0byBKYXZhU2NyaXB0IG9yIGFueSB3ZWIgaW50
ZXJmYWNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVk
SW5kZXgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIpOiBBZGRl
ZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNlbGVjdEVsZW1lbnQ6OnZhbHVlTWlzc2luZyk6IEFkZGVkIHZhbHVlTWlzc2luZygpIHRvIGNo
ZWNrIGlmIHNlbGVjdGluZyBhbiBpbnZhbGlkIG9yIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbiB3
aGVuIGEgdmFsaWQgcmVxdWlyZWQgYXR0cmlidXRlIGlzIHNwZWNpZmllZC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2VsZWN0SXRlbSk6IEFkZGVkIGNhbGxp
bmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuIE5vIHRlc3RzIGZvciB0aGlzIGNoYW5nZSBzaW5j
ZSBpdCBpcyBub3QgY2FsbGVkIHlldC4gTG9vayBhdCB0aGUgYnVnIDM2MTc3IGFuZCB0aGUgY2hh
bmdlc2V0IDU2MTgwLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmFkZCk6
IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlk
aXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCku
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6
cmVzZXQpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24pOiBBZGRl
ZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLiBTa2lwcGVkIGFkZGluZyB0ZXN0cyBm
b3IgdGhpcyBjaGFuZ2UgYXMgdG9vIGNvbXBsaWNhdGVkLi4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTZWxlY3RFbGVtZW50OjpzZXRMZW5ndGgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRp
dHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmlzUmVxdWly
ZWRGb3JtQ29udHJvbCk6IENoZWNrIGlmIHJlcXVpcmVkIG9yIG5vdC4KKyAgICAgICAgKiBodG1s
L0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6aXNPcHRpb25hbEZvcm1Db250cm9sKTogQ2hlY2sgaWYgbm90IHJlcXVpcmVkLgorICAgICAg
ICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBBZGRlZCBhIHJlcXVpcmVkIGF0dHJpYnV0
ZSB0byBzZWxlY3QgZWxlbWVudHMuLgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3NpbmcpOiBBZGRlZCB2
YWx1ZU1pc3NpbmcgY2hlY2sgZm9yIHNlbGVjdCBlbGVtZW50cyBpbnRvIHRoZSBnbG9iYWwgY2hl
Y2tlciwgVmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKCkuCisKIDIwMTAtMTItMDEgIEdlb2Zm
cmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXg6IEFkZGVk
IGEgZm9yd2FyZGluZyBoZWFkZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBj
NjgwZTkyZTQwYWE5NTEyYWE4MjdlZTg5YTI3YzBhYWVhY2UzODAwLi42YWQ2MjRiMzA3MTBlNDMw
MWIxNWI2Yzk2OTIyMzljYWFkNWMxNzAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAK
QEAgLTc4LDExICs3OCwxMyBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdGVkSW5kZXgo
KSBjb25zdAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyhIVE1MT3B0aW9u
RWxlbWVudCogZXhjbHVkZUVsZW1lbnQpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJ
dGVtcyhtX2RhdGEsIHRoaXMsIGV4Y2x1ZGVFbGVtZW50KTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5
Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChp
bnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6c2V0
U2VsZWN0ZWRJbmRleChtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBkZXNlbGVjdCwgZmFsc2Us
IGZhbHNlKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJvb2wg
ZGVzZWxlY3QsIGJvb2wgZmlyZU9uQ2hhbmdlTm93LCBib29sIGFsbG93TXVsdGlwbGVTZWxlY3Rp
b24pCkBAIC05MSw2ICs5Myw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVk
SW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0LCBiCiAgICAgLy8gbW91
c2Vkb3duIGV2ZW50cy4gVGhpcyBhbGxvd3MgdGhhdCBzYW1lIGJlaGF2aW9yIHByb2dyYW1tYXRp
Y2FsbHkuCiAgICAgaWYgKCFtX2RhdGEudXNlc01lbnVMaXN0KCkpIHsKICAgICAgICAgdXBkYXRl
U2VsZWN0ZWRTdGF0ZShtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBhbGxvd011bHRpcGxlU2Vs
ZWN0aW9uLCBmYWxzZSk7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgICAg
ICBpZiAoZmlyZU9uQ2hhbmdlTm93KQogICAgICAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTEwNCw2ICsxMDcsNDUgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3Qs
IGIKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVk
SW5kZXgobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZpcmVPbkNoYW5nZU5v
dywgdHJ1ZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Cit9CisKK2Jvb2wgSFRNTFNl
bGVjdEVsZW1lbnQ6OnZhbHVlTWlzc2luZygpIGNvbnN0Cit7CisgICAgaWYgKCFpc1JlcXVpcmVk
Rm9ybUNvbnRyb2woKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IGZpcnN0U2Vs
ZWN0aW9uSW5kZXggPSBzZWxlY3RlZEluZGV4KCk7CisKKyAgICAvLyBUaGUgc2VsZWN0IGVsZW1l
bnQgaGFzIG5vIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbiBpZiBpdCBoYXMgYW4gYXR0cmlidXRl
ICJtdWx0aXBsZSIgc3BlY2lmaWVkIG9yIGEgZGlzcGxheSBzaXplIG9mIG5vbi0xLgorICAgIC8v
IAorICAgIC8vIFRoZSBjb25kaXRpb24gInNpemUoKSA+IDEiIGlzIGFjdHVhbGx5IG5vdCBjb21w
bGlhbnQgd2l0aCB0aGUgSFRNTDUgc3BlYyBhcyBvZiBEZWMgMywgMjAxMC4gInNpemUoKSAhPSAx
IiBpcyBjb3JyZWN0LgorICAgIC8vIFVzaW5nICJzaXplKCkgPiAxIiBoZXJlIGJlY2F1c2Ugc2l6
ZSgpIG1heSBiZSAwIGluIFdlYktpdC4KKyAgICAvLyBTZWUgdGhlIGRpc2N1c3Npb24gYXQgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzODg3CisgICAgLy8KKyAgICAv
LyAiMCBzaXplKCkiIGhhcHBlbnMgd2hlbiBhbiBhdHRyaWJ1dGUgInNpemUiIGlzIGFic2VudCBv
ciBhbiBpbnZhbGlkIHNpemUgYXR0cmlidXRlIGlzIHNwZWNpZmllZC4KKyAgICAvLyBJbiB0aGlz
IGNhc2UsIHRoZSBkaXNwbGF5IHNpemUgc2hvdWxkIGJlIGFzc3VtZWQgYXMgdGhlIGRlZmF1bHQu
CisgICAgLy8gVGhlIGRlZmF1bHQgZGlzcGxheSBzaXplIGlzIDEgZm9yIG5vbi1tdWx0aXBsZSBz
ZWxlY3QgZWxlbWVudHMsIGFuZCA0IGZvciBtdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMuCisgICAg
Ly8KKyAgICAvLyBGaW5hbGx5LCBpZiBzaXplKCkgPT0gMCBhbmQgbm9uLW11bHRpcGxlLCB0aGUg
ZGlzcGxheSBzaXplIGNhbiBiZSBhc3N1bWVkIGFzIDEuCisgICAgaWYgKG11bHRpcGxlKCkgfHwg
c2l6ZSgpID4gMSkKKyAgICAgICAgcmV0dXJuIGZpcnN0U2VsZWN0aW9uSW5kZXggPCAwOworCisg
ICAgLy8gSWYgbm90aGluZyBpcyBzZWxlY3RlZCwgaXQncyB2YWx1ZS1taXNzaW5nLgorICAgIGlm
IChmaXJzdFNlbGVjdGlvbkluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8g
SWYgYSBub24tcGxhY2Vob2xlciBsYWJlbCBvcHRpb24gaXMgc2VsZWN0ZWQsIGl0J3Mgbm90IHZh
bHVlLW1pc3NpbmcuCisgICAgaWYgKGZpcnN0U2VsZWN0aW9uSW5kZXggPiAwKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJdCBtYXkgYmUgYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRp
b24uCisgICAgLy8gQ2hlY2sgaWYgdGhlIG9wdGlvbiBpcyBub3QgZGlzYWJsZWQgYW5kIG5vdCB1
bmRlciBvcHRncm91cCBlbGVtZW50cywgYW5kIHRoZSB2YWx1ZSBpcyB0aGUgZW1wdHkgc3RyaW5n
LgorICAgIGludCBsaXN0SW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleCgwKTsKKyAgICBBU1NFUlQo
bGlzdEluZGV4ID49IDApOworICAgIGlmIChsaXN0SW5kZXggPCAwKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHN0YXRpY19jYXN0PEhUTUxP
cHRpb25FbGVtZW50Kj4obGlzdEl0ZW1zKClbbGlzdEluZGV4XSk7CisgICAgcmV0dXJuICFvcHRp
b24tPmRpc2FibGVkKCkgJiYgIWxpc3RJbmRleCAmJiB2YWx1ZSgpLmlzRW1wdHkoKTsKIH0KIAog
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0ZW0oaW50IGxpc3RJbmRleCwg
Ym9vbCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgYm9vbCBzaGlmdCwgYm9vbCBmaXJlT25DaGFu
Z2VOb3cpCkBAIC0xMTIsNiArMTU0LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJv
eFNlbGVjdEl0ZW0oaW50IGxpc3RJbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWMKICAgICAg
ICAgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihsaXN0VG9PcHRpb25JbmRleChsaXN0SW5kZXgpLCB0
cnVlLCBmaXJlT25DaGFuZ2VOb3cpOwogICAgIGVsc2UgewogICAgICAgICB1cGRhdGVTZWxlY3Rl
ZFN0YXRlKG1fZGF0YSwgdGhpcywgbGlzdEluZGV4LCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywg
c2hpZnQpOworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAgICAgICAgaWYgKGZp
cmVPbkNoYW5nZU5vdykKICAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwogICAgIH0KQEAg
LTE0NCw2ICsxODcsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQg
KmVsZW1lbnQsIEhUTUxFbGVtZW50ICpiZWZvcmUsIEV4Y2VwdGlvbgogICAgICAgICByZXR1cm47
CiAKICAgICBpbnNlcnRCZWZvcmUoZWxlbWVudCwgYmVmb3JlLCBlYyk7CisgICAgc2V0TmVlZHNW
YWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShpbnQg
aW5kZXgpCkBAIC0xNTYsOSArMjAwLDEwIEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92
ZShpbnQgaW5kZXgpCiAgICAgQVNTRVJUKGl0ZW0tPnBhcmVudE5vZGUoKSk7CiAgICAgRXhjZXB0
aW9uQ29kZSBlYzsKICAgICBpdGVtLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGl0ZW0sIGVj
KTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAotU3RyaW5nIEhUTUxTZWxlY3RF
bGVtZW50Ojp2YWx1ZSgpCitTdHJpbmcgSFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QK
IHsKICAgICBjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBpdGVtcyA9IGxpc3RJdGVtcygpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7IGkrKykgewpAQCAtMTk1LDYg
KzI0MCw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0
cmluZyYgdmFsdWUpIGNvbnN0CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNv
bnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnJl
c3RvcmVGb3JtQ29udHJvbFN0YXRlKG1fZGF0YSwgdGhpcywgc3RhdGUpOworICAgIHNldE5lZWRz
VmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpIApAQCAtMjE1LDE0ICsyNjEsMTYgQEAgdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQog
ICAgICAgICAgICAgcmVjYWxjTGlzdEl0ZW1zSWZOZWVkZWQoKTsKIAogICAgICAgICBtX2RhdGEu
c2V0U2l6ZShzaXplKTsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAgICAg
IGlmICgob2xkVXNlc01lbnVMaXN0ICE9IG1fZGF0YS51c2VzTWVudUxpc3QoKSB8fCAoIW9sZFVz
ZXNNZW51TGlzdCAmJiBtX2RhdGEuc2l6ZSgpICE9IG9sZFNpemUpKSAmJiBhdHRhY2hlZCgpKSB7
CiAgICAgICAgICAgICBkZXRhY2goKTsKICAgICAgICAgICAgIGF0dGFjaCgpOwogICAgICAgICAg
ICAgc2V0UmVjYWxjTGlzdEl0ZW1zKCk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBtdWx0aXBsZUF0dHIpCisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
bXVsdGlwbGVBdHRyKSB7CiAgICAgICAgIFNlbGVjdEVsZW1lbnQ6OnBhcnNlTXVsdGlwbGVBdHRy
aWJ1dGUobV9kYXRhLCB0aGlzLCBhdHRyKTsKLSAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
YWNjZXNza2V5QXR0cikgeworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKKyAgICB9
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhY2Nlc3NrZXlBdHRyKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBpZ25vcmUgZm9yIHRoZSBtb21lbnQKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBhbGlnbkF0dHIpIHsKICAgICAgICAgLy8gRG9uJ3QgbWFwICdhbGlnbicgYXR0cmlidXRlLiAg
VGhpcyBtYXRjaGVzIHdoYXQgRmlyZWZveCwgT3BlcmEgYW5kIElFIGRvLgpAQCAtMjU1LDYgKzMw
Myw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNhblNlbGVjdEFsbCgpIGNvbnN0CiB2b2lk
IEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwoKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNl
bGVjdEFsbChtX2RhdGEsIHRoaXMpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQog
CiBSZW5kZXJPYmplY3QqIEhUTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKQEAgLTMxNSw2ICszNjQsNyBAQCB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpzZXRSZWNhbGNMaXN0SXRlbXMoKQogdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6cmVzZXQoKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnJlc2V0KG1fZGF0YSwgdGhpcyk7Cisg
ICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OmRpc3BhdGNoRm9jdXNFdmVudCgpCkBAIC0zNTAsNiArNDAwLDcgQEAgdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgoaW50IGluZGV4KQogdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbihib29sIGRlc2VsZWN0T3RoZXJP
cHRpb25zKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24obV9k
YXRhLCB0aGlzLCBkZXNlbGVjdE90aGVyT3B0aW9ucyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Om1lbnVMaXN0T25DaGFuZ2UoKQpA
QCAtNDU4LDYgKzUwOSw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldExlbmd0aCh1bnNp
Z25lZCBuZXdMZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfQorICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpzY3JvbGxUb1NlbGVjdGlvbigpCkBAIC00NzEsNCArNTIzLDkgQEAgdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCiAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6aW5zZXJ0ZWRJbnRvVHJlZShkZWVwKTsKIH0KIAor
Ym9vbCBIVE1MU2VsZWN0RWxlbWVudDo6aXNSZXF1aXJlZEZvcm1Db250cm9sKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gcmVxdWlyZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmgKaW5kZXggYTNiNDQ2MGQ0YmM5MGVmOTg4ZGQ2ZWIwNzEzYTlmYjlmODI1MDMz
Mi4uZTJmNTFkODJiYWYzNWU0OTE3OTRhZDc3NjNkNDMzNTk3ZTVjMTE3MiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmgKQEAgLTQzLDYgKzQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTZWxlY3RlZEluZGV4KGludCBpbmRleCwgYm9vbCBkZXNlbGVjdCA9IHRydWUpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGludCBpbmRleCwgYm9vbCBkZXNl
bGVjdCA9IHRydWUsIGJvb2wgZmlyZU9uQ2hhbmdlTm93ID0gZmFsc2UsIGJvb2wgYWxsb3dNdWx0
aXBsZVNlbGVjdGlvbiA9IGZhbHNlKTsKIAorICAgIC8vIEZvciBWYWxpZGl0eVN0YXRlCisgICAg
Ym9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdDsKKwogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCBpbnQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zaXplKCk7
IH0KQEAgLTUxLDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkKEhUTUxFbGVtZW50KiBl
bGVtZW50LCBIVE1MRWxlbWVudCogYmVmb3JlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBy
ZW1vdmUoaW50IGluZGV4KTsKIAotICAgIFN0cmluZyB2YWx1ZSgpOworICAgIFN0cmluZyB2YWx1
ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CiAKICAgICBQYXNz
UmVmUHRyPEhUTUxPcHRpb25zQ29sbGVjdGlvbj4gb3B0aW9ucygpOwpAQCAtMTM0LDcgKzEzNyw4
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZShib29sKTsK
IAotICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFsRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0
IHsgcmV0dXJuICFpc1JlcXVpcmVkRm9ybUNvbnRyb2woKTsgfQorICAgIHZpcnR1YWwgYm9vbCBp
c1JlcXVpcmVkRm9ybUNvbnRyb2woKSBjb25zdDsKIAogICAgIFNlbGVjdEVsZW1lbnREYXRhIG1f
ZGF0YTsKICAgICBDb2xsZWN0aW9uQ2FjaGUgbV9jb2xsZWN0aW9uSW5mbzsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaWRsCmluZGV4IDJlNTNiY2FhNmM2MzcwODE0NjdmMTU2MDY2ZDBlY2FhODUy
N2I3MjcuLmY1YWM2OWIyZjgxYzM5MzA4NDExZjZkYjhlZjBhNmY0MzU5YWZhZjEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNDksNiArNDksNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7CiAgICAgICAgIGF0
dHJpYnV0ZSBib29sZWFuIG11bHRpcGxlOwogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBib29sZWFuIHJlcXVpcmVkOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzaXplOwogICAgICAg
ICAKICAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBhZGQoaW4gSFRNTEVsZW1lbnQgZWxlbWVu
dCwgaW4gSFRNTEVsZW1lbnQgYmVmb3JlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0
eVN0YXRlLmNwcAppbmRleCBlZjNkZTY2YmI2NDM5MGU1YzI4Nzc1ZGVlNDAyNTI2ZTYyMDZiMWQ1
Li41MWU5YTlkYzczN2EwMzk1MmMyOGM1NDQ1MjUyZjhkZjQzMmQ5YTY0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5
U3RhdGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRyZWVC
dWlsZGVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtMTAyLDYgKzEwMyw5
IEBAIHZvaWQgVmFsaWRpdHlTdGF0ZTo6c2V0Q3VzdG9tRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKIAogYm9vbCBWYWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3NpbmcoKSBjb25zdAog
eworICAgIGlmICghbV9jb250cm9sLT53aWxsVmFsaWRhdGUoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCiAgICAgaWYgKG1fY29udHJvbC0+aGFzVGFnTmFtZShpbnB1dFRhZykpIHsKICAgICAg
ICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50
Kj4obV9jb250cm9sKTsKICAgICAgICAgcmV0dXJuIGlucHV0LT52YWx1ZU1pc3NpbmcoaW5wdXQt
PnZhbHVlKCkpOwpAQCAtMTEwLDYgKzExNCwxMCBAQCBib29sIFZhbGlkaXR5U3RhdGU6OnZhbHVl
TWlzc2luZygpIGNvbnN0CiAgICAgICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQqIHRleHRBcmVhID0g
c3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KG1fY29udHJvbCk7CiAgICAgICAgIHJl
dHVybiB0ZXh0QXJlYS0+dmFsdWVNaXNzaW5nKHRleHRBcmVhLT52YWx1ZSgpKTsKICAgICB9Cisg
ICAgaWYgKG1fY29udHJvbC0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7CisgICAgICAgIEhUTUxT
ZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KG1f
Y29udHJvbCk7CisgICAgICAgIHJldHVybiBzZWxlY3QtPnZhbHVlTWlzc2luZygpOworICAgIH0K
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75795</attachid>
            <date>2010-12-07 02:59:16 -0800</date>
            <delta_ts>2010-12-07 05:30:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101207195927.patch</filename>
            <type>text/plain</type>
            <size>56059</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNTM0NTRiYjg5MDllMmI2ODJmZDA2YTZhZDA3ZDAwNDgwMjM5YTg3Li42ZDg3ZDBh
YzkxMzYxM2RhMTVlNTBmODM2MzhiZDlkZTI0ZjMyNWYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMTItMDYgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9v
YmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1
ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTItMDYgIFl1dGEgS2l0
YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3Npbmct
MDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12
YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dAppbmRleCBiMDY5YTc0ZTA1ZGU1MWUzNzdjMzBj
MDU4NWVmNTU1NGQ0YWZjYWFmLi42NDJhNDE4Yjk0ODIxOTEyMzc3MjkwOWU5OGEzMDg5NzU5ODdm
NjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFs
dWVNaXNzaW5nLTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjMg
QEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVp
cmVkIGFuZCBibGFuazogdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBiZSB0cnVlIGluIGJv
dGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIGJs
YW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBzZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4K
IAotIAotU1VDQ0VTUworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVN
aXNzaW5nRm9yKCJpbnB1dCIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJl
YSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2Vs
ZWN0ZWQiKSBpcyB0cnVlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxh
Y2Vob2xkZXIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhv
bGRlci1zZWxlY3RlZC1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3Np
bmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLW11bHRpcGxlIikgaXMgdHJ1ZQorUEFTUyB2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIikg
aXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNl
aG9sZGVyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qt
bm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhv
bGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LW9wdGdyb3VwIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZGlz
YWJsZWQtb3B0aW9uIikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWwKaW5kZXgg
ZGM4ODg3OTI5NDY0YjgxNGY1MjZmMDMzMTZmMGI1MTNmNGE0MzFiNS4uODQyMGMxYzc0YzI0Mjhj
MmYxYTMyYmNlMjZjYjNlZmMwMTkwNGRlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS5odG1sCkBAIC0xLDI3
ICsxLDkxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJlcXVpcmVkIGFuZCBiYXNpYyB2YWx1ZU1pc3Npbmc8
L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJp
bnB1dCIgbmFtZT0idmljdGltIiByZXF1aXJlZC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBu
YW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxh
Y2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFs
dWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxl
Y3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGlt
IiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhv
bGRlci1zZWxlY3RlZC1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAg
PG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRp
b24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNp
emUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJY
Ij5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0Pgor
PHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIg
bXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFj
ZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJl
ZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5Y
PC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxh
Y2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxv
cHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAv
PgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0
aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlv
biB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4K
KzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRp
cGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9u
IHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwv
c2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXpl
Mi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAg
PG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVk
IC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1vcHRncm91cCIgbmFtZT0idmljdGlt
IiByZXF1aXJlZD4KKyAgPG9wdGdyb3VwIGxhYmVsPSIxIj4KKyAgICA8b3B0aW9uIHZhbHVlPSIi
IHNlbGVjdGVkIC8+CisgIDwvb3B0Z3JvdXA+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWRpc2FibGVkLW9wdGlvbiIgbmFtZT0i
dmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCAv
PgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFu
Z3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1
ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgp
IHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgd2l0aCBibGFuayB2YWx1ZXMsIGJs
YW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9yIG5vdGhpbmcgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAg
diA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAgICAgIGxvZygodlswXS52YWxp
ZGl0eS52YWx1ZU1pc3NpbmcgJiYgdlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NF
U1MiIDogIkZBSUxVUkUiKTsKLSAgICB9CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdG
b3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFy
ZWEiKScpOworICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vo
b2xkZXItc2VsZWN0ZWQiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigi
c2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVl
TWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIiknKTsKKyAgICBz
aG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVy
LXNpemUyIiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5v
bmUtc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2lu
Z0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAg
IHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFj
ZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZh
bHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNp
emUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNl
bGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNo
b3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW9wdGdyb3VwIiknKTsKKyAgICBz
aG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1kaXNhYmxlZC1vcHRpb24iKScp
OworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9s
IGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCBibGFuazoKLXZhbGlkaXR5LnZhbHVl
TWlzc2luZyBzaG91bGQgYmUgdHJ1ZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2
aWN0aW0iIHJlcXVpcmVkLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4
dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12
YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dAppbmRleCAzNjA2OWI4NTNj
OTEyOWM0NTllZTdjMDNmNmI3ZTM1ODllNDNhYWE0Li5iY2IyYTg0NDIyNWZmYTk2ZDg2OTQ1MTgx
ZWI3MzQ3N2Q3NzczZjI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMTkgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93
LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6IHZhbGlkaXR5LnZhbHVlTWlzc2lu
ZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy4KK1RoaXMgdGVzdCBjaGVja3MgdmFsaWRp
dHkudmFsdWVNaXNzaW5nIHdpdGggc29tZSB2YWx1ZXMgb3Igb3B0aW9ucyB3aXRoIHNvbWUgdmFs
dWVzIHNlbGVjdGVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB2YWx1ZU1pc3NpbmdGb3IoImlucHV0IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNz
aW5nRm9yKCJ0ZXh0YXJlYSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0
LXdpdGgtcGxhY2Vob2xkZXIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC13aXRob3V0LXBsYWNlaG9sZGVyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11
bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1m
YWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNp
emUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDIuaHRtbAppbmRleCA2ZjA2
ZjlmNDM2NDVmNDljYzMzZjc4MGI1YWY5NjJiMTQ3YTdlODM1Li43MDVmMDIyM2U2NmZjMGI5ODE2
YjM2MTY4ZjM4OTMyZWViMThiN2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwKQEAgLTEsMjcgKzEs
NjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxo
dG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYW5kIGJhc2ljIHZhbHVlTWlzc2luZyAyPC90
aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0iaW5w
dXQiIG5hbWU9InZpY3RpbSIgdmFsdWU9InNvbWV0aGluZyIgcmVxdWlyZWQvPgorPHRleHRhcmVh
IGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1aXJlZD5zb21ldGhpbmc8L3RleHRhcmVh
PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIgcmVx
dWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0
ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFj
ZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2Vs
ZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIg
c2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
d2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJl
cXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+CisgIDxvcHRp
b24gdmFsdWU9IiIgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgtZmFrZS1w
bGFjZWhvbGRlci1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAg
PG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRp
b24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xk
ZXItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24g
dmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9z
ZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11
bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0
aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4K
Kzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1z
aXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4K
KyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVl
PSIiIC8+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3Nh
Z2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAg
cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7
CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1
ZU1pc3Npbmcgd2l0aCBzb21lIHZhbHVlcyBvciBvcHRpb25zIHdpdGggc29tZSB2YWx1ZXMgc2Vs
ZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0g
ICAgICAgIGxvZygoIXZbMF0udmFsaWRpdHkudmFsdWVNaXNzaW5nICYmICF2WzFdLnZhbGlkaXR5
LnZhbHVlTWlzc2luZykgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICBzaG91
bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZUZhbHNl
KCd2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLXBsYWNlaG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZh
bHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLWZha2UtcGxhY2Vo
b2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxl
IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0
LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVl
TWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIp
Jyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1m
YWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBy
ZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3Vs
ZCBiZSBmYWxzZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIHZhbHVl
PSJzb21ldGhpbmciIHJlcXVpcmVkLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVk
PnNvbWV0aGluZzwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dApp
bmRleCBkZmUzMzk4NjkwZTE5YmYzMmVhMjIwMGZjNDE1OGZhOWVhYjM4NTcyLi4xZjQxMmJkNmVh
NjY2ZjViZTViNTAxZDJhMTVkMTFiZTNlNDYwMWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjEgQEAKLVRoZXJlIGFyZSB0d28gZGlzYWJsZWQgZm9y
bSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFs
dWU6IHZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy4K
K1RoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIG9mIGRpc2FibGVkIGZvcm0g
Y29udHJvbHMgd2l0aCBibGFuayB2YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9yIG5v
dGhpbmcgc2VsZWN0ZWQuCiAKLSAKLVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHZhbHVlTWlzc2luZ0ZvcigiaW5wdXQiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1p
c3NpbmdGb3IoInRleHRhcmVhIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBsZSIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXIt
c2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3Rl
ZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0
LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAgICAgICAg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLTAwMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDMuaHRtbAppbmRleCA5ZDkyZmZiMzRiNzIyNDZmY2RhNzIwN2M0NTczMzdh
MWVmMmZmZDRjLi4xM2Q0NGZjZjlkNDc4MDJiZDVlYzgzZTZkMTE2Mzk3OWFlYmU3Y2E1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5n
LTAwMy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAzLmh0bWwKQEAgLTEsMjcgKzEsNzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWly
ZWQgYW5kIHZhbHVlTWlzc2luZyBvbiBkaXNhYmxlZCBlbGVtZW50czwvdGl0bGU+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0
aW0iIGRpc2FibGVkIHJlcXVpcmVkIC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2
aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
cGxhY2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0
aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIg
bmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwv
b3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIgbmFtZT0idmljdGltIiBz
aXplPSIyIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAv
PgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIi
IGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxv
cHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0
LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwv
b3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1z
ZWxlY3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJl
ZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5Y
PC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxh
Y2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWly
ZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBz
ZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1z
aXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiBkaXNhYmxlZCBy
ZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9v
cHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNl
bGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIGRp
c2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRp
b24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdp
dGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0
aXBsZSBzaXplPSIyIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwv
b3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KIDxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlv
biB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24g
dGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgb2YgZGlzYWJsZWQgZm9y
bSBjb250cm9scyB3aXRoIGJsYW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBzZWxlY3RlZCwgb3Ig
bm90aGluZyBzZWxlY3RlZC4iKTsKIAotICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eU5hbWUoInZpY3RpbSIpOworICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmlj
dGltIik7CiAKLSAgICAgICAgbG9nKCghdlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgIXZb
MV0udmFsaWRpdHkudmFsdWVNaXNzaW5nKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAg
fQorICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0ZvcigiaW5wdXQiKScpOworICAgIHNo
b3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJl
RmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNl
aG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1w
bGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBs
ZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1w
bGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikn
KTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVj
dGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2Ut
cGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4K
LTxwPlRoZXJlIGFyZSB0d28gZGlzYWJsZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBi
b3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6Ci12YWxpZGl0eS52YWx1ZU1pc3Npbmcg
c2hvdWxkIGJlIGZhbHNlIGluIGJvdGggY2FzZXMuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIg
ZGlzYWJsZWQgcmVxdWlyZWQgLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJl
cXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hl
Y2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVj
a1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQKaW5kZXggMTg1Nzk0NDQ4NzBkMzk0MDU1ZDNhOTIw
Mzc0NGM3ZWQ4NDBjOGU4NC4uODM4ODgyODg4Zjc2MmJiMTQ1MWQxODBhYjI5ZjFmYjg4ODg4Yzg5
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAw
Mi1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTQgQEAKLVRoaXMgdGVzdCBjaGVja3MgaWYgY2hl
Y2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJl
c3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRzLgorVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlk
aXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9u
IGludmFsaWQgZWxlbWVudHMsIGFuZCByZXR1cm5zIGEgdHJ1ZSByZXN1bHQgb24gYSBibGFuayBi
dXQgdmFsaWQgZWxlbWVudHMuIEJsYW5rIGJ1dCBub24tcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9u
cyBhcmUgdmFsaWQuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi0gIAotUEFTUyB2
W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQotUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBp
cyBmYWxzZQotUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorICAgIAorUEFTUyBj
aGVja1ZhbGlkaXR5Rm9yKCJpbnB1dC1lbXB0eSIpIGlzIGZhbHNlCitQQVNTIGNoZWNrVmFsaWRp
dHlGb3IoImlucHV0LXBhdHRlcm4tbWlzbWF0Y2giKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlk
aXR5Rm9yKCJ0ZXh0YXJlYSIpIGlzIGZhbHNlCitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoInNlbGVj
dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoInNlbGVjdC1u
b24tcGxhY2Vob2xkZXIiKSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hl
Y2tWYWxpZGl0eS0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0
eS0wMDIuaHRtbAppbmRleCAyODcyZmFkMzViZWU4MmU0NjViZWUxN2VmYmYxMWY1ODBmZjQyY2M5
Li42NjJmNmViZmQzMTExZWFmZTJiNzExY2Y4YjAwMmYxYjA4YmVlOWQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCkBAIC03LDE5ICs3LDMzIEBA
CiA8Ym9keT4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgogPGZvcm0gbWV0aG9kPSJnZXQiPgot
PGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVxdWlyZWQvPgotPGlucHV0IG5hbWU9
InZpY3RpbSIgdHlwZT0idGV4dCIgcGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlw
c3VtIi8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPGlu
cHV0IGlkPSJpbnB1dC1lbXB0eSIgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZC8+
Cis8aW5wdXQgaWQ9ImlucHV0LXBhdHRlcm4tbWlzbWF0Y2giIG5hbWU9InZpY3RpbSIgdHlwZT0i
dGV4dCIgcGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFy
ZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2Vs
ZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxv
cHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9u
PgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uLXBsYWNlaG9sZGVyIiBuYW1lPSJ2
aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRp
b24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgogPC9mb3JtPgogPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CiA8c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYg
Y2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3Ip
IHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRzLiIpOworICAgIGZ1bmN0aW9uIGNoZWNrVmFsaWRp
dHlGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5j
aGVja1ZhbGlkaXR5KCk7CisgICAgfQogCi12ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUo
InZpY3RpbSIpOwotZm9yIChpID0gMDsgaSA8IHYubGVuZ3RoOyBpKyspCi0gICAgc2hvdWxkQmUo
InZbaV0uY2hlY2tWYWxpZGl0eSgpIiwgImZhbHNlIik7CisgICAgZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2Ug
KG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRzLCBhbmQgcmV0dXJucyBh
IHRydWUgcmVzdWx0IG9uIGEgYmxhbmsgYnV0IHZhbGlkIGVsZW1lbnRzLiBCbGFuayBidXQgbm9u
LXBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbnMgYXJlIHZhbGlkLiIpOwogCi12YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBzaG91bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5Rm9yKCJp
bnB1dC1lbXB0eSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigiaW5w
dXQtcGF0dGVybi1taXNtYXRjaCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0
eUZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3Io
InNlbGVjdC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdjaGVja1ZhbGlkaXR5
Rm9yKCJzZWxlY3Qtbm9uLXBsYWNlaG9sZGVyIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dAppbmRl
eCA5YjIwMTQzMThhM2U1MGJkM2VmNWQ0MDAxMzZjMzAyNDY5MWY4OWNkLi5iOWI1NGI4NzY0YzQ5
ZGE2MDE3YTQxN2M3ZThmMzdmZjFjZTY0YWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwxMiBAQAotVGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJv
dGggcmVxdWlyZWQuCitUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93
LCBhbGwgcmVxdWlyZWQuCiAKLSAKLVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlcXVpcmVkRm9yKCJpbnB1dCIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3Io
InRleHRhcmVhIikgaXMgdHJ1ZQorUEFTUyByZXF1aXJlZEZvcigic2VsZWN0IikgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEuaHRtbApp
bmRleCAyZjM0YzE2MWFjZjZhM2Y1ZjQwMDA4NzNmZDgyNjZjMDE3ZmUwMzYwLi44YWVhNTdjMzE2
MzU0ZTY3ZGI4OTQwMDZlODcwZDUzNGVmNzM5NWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEuaHRtbApAQCAtMSwyNiArMSwzNCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8
aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhdHRyaWJ1dGUgcHJlc2VuY2UgdGVzdDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1l
PSJ2aWN0aW0iIHJlcXVpcmVkIC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0
aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QiIG5hbWU9InZpY3Rp
bSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2
YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2Ny
aXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7
Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9
ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rpb24gcmVxdWlyZWRGb3IoaWQpIHsK
KyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5yZXF1aXJlZDsKICAg
ICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGRlc2NyaXB0aW9uKCJUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1l
bnRzIGJlbG93LCBhbGwgcmVxdWlyZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5h
bWUoInZpY3RpbSIpOwogCi0gICAgICAgIGxvZygodlswXS5yZXF1aXJlZCAmJiB2WzFdLnJlcXVp
cmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgfQorICAgIHNob3VsZEJlVHJ1ZSgn
cmVxdWlyZWRGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJ0
ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigic2VsZWN0IiknKTsK
KworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBl
bGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZC48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiBy
ZXF1aXJlZCAvPgotPHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4K
LTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRl
LTAwMi1leHBlY3RlZC50eHQKaW5kZXggYWM1YzBmZmYyMjg2NmUxMTVmZjBjYzQzY2Q0ZGI0OWM4
ZTk4ZmJmYS4uYzI1NTYxZDE0Y2M3NjBjMjc3ODEzOGY3NGM3ZjI0NjVhMjAyNjJjNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0w
MDItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTkgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250
cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIG9wdGlvbmFsLiBUaGV5J3JlIHNldCBhcyByZXF1aXJl
ZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0ZS4KK1RoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgYmVsb3csIGFsbCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQg
dmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUuCiAKLSAKLVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitCZWZvcmUgc2V0OgorUEFTUyByZXF1aXJlZEZvcigiaW5wdXQiKSBp
cyBmYWxzZQorUEFTUyByZXF1aXJlZEZvcigidGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyByZXF1
aXJlZEZvcigic2VsZWN0IikgaXMgZmFsc2UKKworQWZ0ZXIgc2V0OgorUEFTUyByZXF1aXJlZEZv
cigiaW5wdXQiKSBpcyB0cnVlCitQQVNTIHJlcXVpcmVkRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUK
K1BBU1MgcmVxdWlyZWRGb3IoInNlbGVjdCIpIGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbAppbmRleCBhYTg1ZTg5NTRlZTA3
ODE4ZDFjMjhiZDU1MjBhOTViMjIxYzc3YjkwLi45MjhlMzNmYzgwNTBkM2UyYjRlYTg3NWI2ZmVk
ZTNkZTA0MjY5M2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVk
LWF0dHJpYnV0ZS0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVk
LWF0dHJpYnV0ZS0wMDIuaHRtbApAQCAtMSwzMiArMSw0NiBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1
aXJlZCBhdHRyaWJ1dGUgSlMgc2V0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxpbnB1dCBpZD0iaW5wdXQiIG5hbWU9InZpY3RpbSIgLz4KKzx0ZXh0YXJlYSBp
ZD0idGV4dGFyZWEiIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVj
dCIgbmFtZT0idmljdGltIj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0
aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9Ikph
dmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhU
TUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiByZXF1aXJlZEZvcihp
ZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnJlcXVpcmVk
OwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgZGVzY3JpcHRpb24oIlRoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wg
ZWxlbWVudHMgYmVsb3csIGFsbCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlh
IHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5h
bWUoInZpY3RpbSIpOwogCi0gICAgICAgIGlmICh2WzBdLnJlcXVpcmVkID09IGZhbHNlICYmIHZb
MV0ucmVxdWlyZWQgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIHZbMF0ucmVxdWlyZWQgPSB0cnVl
OwotICAgICAgICAgICAgdlsxXS5yZXF1aXJlZCA9IHRydWU7Ci0gICAgICAgICAgICBsb2cgKCh2
WzBdLnJlcXVpcmVkICYmIHZbMV0ucmVxdWlyZWQpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsK
LSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsb2coIkZBSUxVUkUiKTsKLSAg
ICB9CisgICAgZGVidWcoIkJlZm9yZSBzZXQ6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgncmVxdWly
ZWRGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdyZXF1aXJlZEZvcigidGV4dGFy
ZWEiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3JlcXVpcmVkRm9yKCJzZWxlY3QiKScpOworICAg
IGRlYnVnKCIiKTsKKworICAgIHZbMF0ucmVxdWlyZWQgPSB0cnVlOworICAgIHZbMV0ucmVxdWly
ZWQgPSB0cnVlOworICAgIHZbMl0ucmVxdWlyZWQgPSB0cnVlOworCisgICAgZGVidWcoIkFmdGVy
IHNldDoiKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJpbnB1dCIpJyk7CisgICAg
c2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1
ZSgncmVxdWlyZWRGb3IoInNlbGVjdCIpJyk7CisgICAgZGVidWcoIiIpOworCisgICAgdmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93
LCBib3RoIG9wdGlvbmFsLiBUaGV5J3JlIHNldCBhcyByZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9N
IGF0dHJpYnV0ZS48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiAvPgotPHRleHRhcmVhIG5hbWU9
InZpY3RpbSI+PC90ZXh0YXJlYT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
ZXNvdXJjZXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVzb3VyY2VzL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzIyMTMzYzVkMjdmYTBiOTI5YzFkYmZkMjAwM2M4ODlmODhiYzE2MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3NlbGVjdC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuanMKQEAgLTAsMCArMSwxODMgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgcGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0
b3JzIGFyZSBsaXZlbHkgYXBwbGllZC4iKTsKKworLy8gU2V0dXAgZm9yIHN0YXRpYyBlbGVtZW50
cy4KK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChmb3JtKTsKK3ZhciBub25Gb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5vbkZvcm0pOworCitmdW5j
dGlvbiBtYWtlSW52YWxpZCgpIHsKKyAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2VsZWN0Jyk7CisgICAgc2VsZWN0Lm5hbWUgPSAnZm9vJzsKKyAgICBzZWxlY3QucmVx
dWlyZWQgPSB0cnVlOworICAgIHNlbGVjdC52YWx1ZSA9ICcnOworICAgIGZvcm0uYXBwZW5kQ2hp
bGQoc2VsZWN0KTsKKyAgICByZXR1cm4gc2VsZWN0OworfQorCitmdW5jdGlvbiBhcHBlbmRPcHRp
b24odmFsdWUsIHNlbGVjdCkgeworICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdvcHRpb24nKTsKKyAgICBvcHRpb24udmFsdWUgPSB2YWx1ZTsKKyAgICBvcHRpb24uaW5u
ZXJUZXh0ID0gdmFsdWU7CisgICAgc2VsZWN0LmFkZChvcHRpb24pOworICAgIHJldHVybiBvcHRp
b247Cit9CisKK2Z1bmN0aW9uIGluc2VydE9wdGlvbkJlZm9yZSh2YWx1ZSwgc2VsZWN0LCBiZWZv
cmUpIHsKKyAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7
CisgICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7CisgICAgb3B0aW9uLmlubmVyVGV4dCA9IHZhbHVl
OworICAgIHNlbGVjdC5hZGQob3B0aW9uLCBiZWZvcmUpOworICAgIHJldHVybiBvcHRpb247Cit9
CisKK2Z1bmN0aW9uIHJlbW92ZU9wdGlvbihvcHRpb24sIHNlbGVjdCkgeworICAgIHNlbGVjdC5y
ZW1vdmUob3B0aW9uKTsKKyAgICByZXR1cm4gb3B0aW9uOworfQorCitmdW5jdGlvbiBiYWNrZ3Jv
dW5kT2YoZWwpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpOworfQor
Cit2YXIgZWxCYWNrZ3JvdW5kID0gJ2JhY2tncm91bmRPZihlbCknOwordmFyIGludmFsaWRDb2xv
ciA9ICdyZ2IoMjU1LCAwLCAwKSc7Cit2YXIgbm9ybWFsQ29sb3IgPSAncmdiKDI1NSwgMjU1LCAy
NTUpJzsKK3ZhciBkaXNhYmxlZENvbG9yID0gJ3JnYigwLCAwLCAwKSc7Cit2YXIgcmVhZE9ubHlD
b2xvciA9ICdyZ2IoMCwgMjU1LCAwKScKK3ZhciB2YWxpZENvbG9yID0gJ3JnYigwLCAwLCAyNTUp
JzsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICB3aWxsVmFs
aWRhdGUgY2hhbmdlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordmFyIGVs
ID0gbWFrZUludmFsaWQoKTsKK3ZhciBvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOwordmFyIG8y
ID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworLy8gQ29uZmly
bSB0aGlzIGVsZW1lbnQgaXMgaW52YWxpZC4KK2RlYnVnKCdDaGVjayB0aGUgaW5pdGlhbCBzdGF0
ZTonKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1Zygn
Q2hhbmdlIG5hbWU6Jyk7CitlbC5uYW1lID0gJyc7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdp
bnZhbGlkQ29sb3InKTsKK2VsLm5hbWUgPSAnYmFyJzsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIGRpc2FibGVkOicpOworZWwgPSBtYWtl
SW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9u
KCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworZWwuZGlzYWJsZWQgPSB0cnVlOworc2hv
dWxkQmUoZWxCYWNrZ3JvdW5kLCAnZGlzYWJsZWRDb2xvcicpOworZWwuZGlzYWJsZWQgPSBmYWxz
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnSW5z
aWRlL291dHNpZGUgb2YgYSBmb3JtOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBl
bmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0
ZWQgPSB0cnVlOworbm9uRm9ybS5hcHBlbmRDaGlsZChlbCk7CitzaG91bGRCZShlbEJhY2tncm91
bmQsICdpbnZhbGlkQ29sb3InKTsKK2Zvcm0uYXBwZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxC
YWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyAgICAgdmFsdWUgY2hhbmdlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorZGVidWcoJ0NoYW5nZSB0aGUgdmFsdWUgd2l0aCBhIHBsYWNlaG9sZGVyIGxh
YmVsIG9wdGlvbjonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcn
LCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsK
K3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hh
bmdlIHRoZSB2YWx1ZSB3aXRob3V0IGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uOicpOworZWwg
PSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMiA9IGFwcGVu
ZE9wdGlvbignJywgZWwpOworbzIuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAndmFsaWRDb2xvcicpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNr
Z3JvdW5kLCAndmFsaWRDb2xvcicpOworCitkZWJ1ZygnSW5zZXJ0L3JlbW92ZSBvcHRpb25zOicp
OworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0g
YXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxC
YWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitvMyA9IGluc2VydE9wdGlvbkJlZm9yZSgnWScs
IGVsLCBlbC5maXJzdENoaWxkKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3In
KTsKK3JlbW92ZU9wdGlvbihvMywgZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxp
ZENvbG9yJyk7CitvMyA9IGFwcGVuZE9wdGlvbignWicsIGVsKTsKK28zLnNlbGVjdGVkID0gdHJ1
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLmxlbmd0aCA9IDI7
CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1NldCBh
biBhdHRyaWJ1dGU6IG11bHRpcGxlOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBl
bmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0
ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitlbC5t
dWx0aXBsZSA9IHRydWU7CitzaG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7Citl
bC5yZW1vdmVBdHRyaWJ1dGUoJ211bHRpcGxlJyk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdp
bnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1NldCBhbiBhdHRyaWJ1dGU6IHNpemU6Jyk7CitlbCA9
IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRP
cHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRCZShlbEJhY2tncm91
bmQsICdpbnZhbGlkQ29sb3InKTsKK2VsLnNpemUgPSAyOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5k
LCAndmFsaWRDb2xvcicpOworZWwucmVtb3ZlQXR0cmlidXRlKCdzaXplJyk7CitzaG91bGRCZShl
bEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1NlbGVjdEFsbDonKTsKK2Vs
ID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVu
ZE9wdGlvbignWCcsIGVsKTsKK2VsLm11bHRpcGxlID0gdHJ1ZTsKK28xLnNlbGVjdGVkID0gZmFs
c2U7CitvMi5zZWxlY3RlZCA9IGZhbHNlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxp
ZENvbG9yJyk7CitlbC5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIp
Oworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwubXVsdGlwbGUgPSBm
YWxzZTsKK28xLnNlbGVjdGVkID0gZmFsc2U7CitvMi5zZWxlY3RlZCA9IHRydWU7CisKK2RlYnVn
KCdSZXNldDonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBl
bCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3No
b3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2Zvcm0ucmVzZXQoKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorLy8gICAgIENvbnN0cmFpbnRzIGNoYW5nZQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2RlYnVnKCdDaGFuZ2UgcmVxdWlyZWQ6Jyk7CitlbCA9
IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRP
cHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitlbC5yZXF1aXJlZCA9IGZhbHNl
Oworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwucmVxdWlyZWQgPSB0
cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcwppbmRleCBkNjgyNmRlMTgyZTMx
Mzc3YWMwYzQ4ZDk0NjhjYjc2YThhNTZmNDcxLi41YzU2NTQyNzAxNTE0MmVkMmQwNmY0NDQ2MmM3
YWNjODU1ZDdhNWYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcwpAQCAtMjQsNiArMjQsMTMgQEAgcmVxdWly
ZWRUZXh0QXJlYS5yZXF1aXJlZCA9IHRydWU7CiBmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkVGV4
dEFyZWEpOwogc2hvdWxkQmUoInJlcXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UiLCAi
J3ZhbHVlIG1pc3NpbmcnIik7CiAKKy8vIEEgcmVxdWlyZWQgc2VsZWN0IHdpdGggYW4gZW1wdHkg
dmFsdWUKK3ZhciByZXF1aXJlZFNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVj
dCIpOworcmVxdWlyZWRTZWxlY3QubmFtZSA9ICJyZXF1aXJlZFNlbGVjdCI7CityZXF1aXJlZFNl
bGVjdC5yZXF1aXJlZCA9IHRydWU7Citmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkU2VsZWN0KTsK
K3Nob3VsZEJlKCJyZXF1aXJlZFNlbGVjdC52YWxpZGF0aW9uTWVzc2FnZSIsICIndmFsdWUgbWlz
c2luZyciKTsKKwogLy8gQSB0eXBlPWVtYWlsIGlucHV0IGZvciB0aGUgInR5cGUgbWlzbWF0Y2gi
IGZsYWcKIHZhciBlbWFpbElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsK
IGVtYWlsSW5wdXQubmFtZSA9ICJlbWFpbElucHV0IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRkN2NiNzM0ZWE5MmU5ZjhjNGNiZWIwNWQ2ZjNmMTRmMjdkNjk1
NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZl
LXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTAgQEAKK1RoaXMgdGVz
dCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3Rv
cnMgYXJlIGxpdmVseSBhcHBsaWVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
Q2hlY2sgdGhlIGluaXRpYWwgc3RhdGU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxp
ZENvbG9yCitDaGFuZ2UgbmFtZToKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSBkaXNhYmxl
ZDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBkaXNhYmxlZENvbG9yCitQQVNTIGJhY2tncm91
bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitJbnNpZGUvb3V0c2lkZSBvZiBhIGZvcm06CitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkg
aXMgaW52YWxpZENvbG9yCitDaGFuZ2UgdGhlIHZhbHVlIHdpdGggYSBwbGFjZWhvbGRlciBsYWJl
bCBvcHRpb246CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSB3aXRob3V0IGEg
cGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlk
Q29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitJbnNlcnQvcmVtb3Zl
IG9wdGlvbnM6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJh
Y2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGlu
dmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFj
a2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1NldCBhbiBhdHRyaWJ1dGU6IG11bHRpcGxl
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK1NldCBhbiBhdHRyaWJ1dGU6IHNpemU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorU2VsZWN0QWxsOgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29s
b3IKK1Jlc2V0OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFj
a2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSByZXF1aXJlZDoKK1BBU1MgYmFj
a2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZTlmODc2NTBjNGQzYmZhYzg5ZDRh
ODFhYzFkYzU5MTYyNWZmZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbAorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9saXZl
LXBzZXVkby1zZWxlY3RvcnMuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3Nh
Z2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2Fn
ZS1leHBlY3RlZC50eHQKaW5kZXggMGUxMmQ4YTI3MWU1ZGQ4ZjU1M2EyMWQxYTljMmJkN2FiZTVk
ZDYzMS4uZTkxOTYxZDEwMDlmMzk5MTkwY2RhZGUzMzAwZjkzYWIzNDQ0NjY0YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50
eHQKQEAgLTYsNiArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIHBhdHRlcm5J
bnB1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAncGF0dGVybiBtaXNtYXRjaCcKIFBBU1MgcmVxdWly
ZWRJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKIFBBU1MgcmVxdWly
ZWRUZXh0QXJlYS52YWxpZGF0aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgcmVx
dWlyZWRTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIGVt
YWlsSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUgbWlzbWF0Y2gnCiBQQVNTIGJ1dC52
YWxpZGF0aW9uTWVzc2FnZSBpcyAnJwogUEFTUyBhbm9uaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2Ug
aXMgJycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9t
LWh0bWwtc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1z
ZWxlY3RvcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhODlmYTU4OGI1MWI5YjZjNmRhMDlh
ZjhjYTY3NDg4Y2EzNzdjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRo
YXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVk
IGJ5IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworQ2hhbmdlIHRoZSB2YWx1ZSBvZiBhIG1lbnVsaXN0IHNl
bGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2VyOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5n
ZSB0aGUgdmFsdWUgb2YgYSBsaXN0Ym94IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWxpdmUtcHNldWRv
LXNlbGVjdG9ycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOTQxNjY1MTA1MmQyMTExOGYwOGUyZmYxZTE2
MTI1MjdhYzRmZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbApAQCAt
MCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+PC90
aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi8uLi8uLi9mYXN0L2Zvcm1zL3Jlc291cmNlcy9saXZlLXBzZXVkby1zZWxlY3RvcnMu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBz
ZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVkIGJ5IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxl
Y3RlZEluZGV4QnlVc2VyLiIpOworCisvLyBTZXR1cCBmb3Igc3RhdGljIGVsZW1lbnRzLgordmFy
IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGZvcm0pOworCitmdW5jdGlvbiBtYWtlSW52YWxpZChpZCkgeworICAgIHZhciBz
ZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTsKKyAgICBzZWxlY3QubmFt
ZSA9ICdmb28nOworICAgIHNlbGVjdC5yZXF1aXJlZCA9IHRydWU7CisgICAgaWYgKGlkICE9IHVu
ZGVmaW5lZCkKKyAgICAgICAgc2VsZWN0LmlkID0gaWQ7CisgICAgc2VsZWN0LnZhbHVlID0gJyc7
CisgICAgZm9ybS5hcHBlbmRDaGlsZChzZWxlY3QpOworICAgIHJldHVybiBzZWxlY3Q7Cit9CisK
K2Z1bmN0aW9uIGFwcGVuZE9wdGlvbih2YWx1ZSwgc2VsZWN0KSB7CisgICAgdmFyIG9wdGlvbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOworICAgIG9wdGlvbi52YWx1ZSA9IHZh
bHVlOworICAgIG9wdGlvbi5pbm5lclRleHQgPSB2YWx1ZTsKKyAgICBzZWxlY3QuYWRkKG9wdGlv
bik7CisgICAgcmV0dXJuIG9wdGlvbjsKK30KKworZnVuY3Rpb24gYmFja2dyb3VuZE9mKGVsKSB7
CisgICAgcmV0dXJuIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51
bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKTsKK30KKwordmFyIGVsQmFj
a2dyb3VuZCA9ICdiYWNrZ3JvdW5kT2YoZWwpJzsKK3ZhciBpbnZhbGlkQ29sb3IgPSAncmdiKDI1
NSwgMCwgMCknOwordmFyIG5vcm1hbENvbG9yID0gJ3JnYigyNTUsIDI1NSwgMjU1KSc7Cit2YXIg
ZGlzYWJsZWRDb2xvciA9ICdyZ2IoMCwgMCwgMCknOwordmFyIHJlYWRPbmx5Q29sb3IgPSAncmdi
KDAsIDI1NSwgMCknCit2YXIgdmFsaWRDb2xvciA9ICdyZ2IoMCwgMCwgMjU1KSc7CisKK2RlYnVn
KCdDaGFuZ2UgdGhlIHZhbHVlIG9mIGEgbWVudWxpc3Qgc2VsZWN0IGJ5IHNldFNlbGVjdGVkSW5k
ZXhCeVVzZXI6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCdtZW51bGlzdCcpOworbzEgPSBhcHBlbmRP
cHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworb2JqQ0NvbnRyb2xs
ZXIuc2V0U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAxLCBm
YWxzZSk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitvYmpDQ29udHJv
bGxlci5zZXRTZWxlY3RFbGVtZW50U2VsZWN0ZWRJbmRleEFsbG93aW5nTXVsdGlwbGUoZWwsIDAs
IGZhbHNlKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1
ZygnQ2hhbmdlIHRoZSB2YWx1ZSBvZiBhIGxpc3Rib3ggc2VsZWN0IGJ5IHNldFNlbGVjdGVkSW5k
ZXhCeVVzZXI6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCdsaXN0Ym94Jyk7CitlbC5tdWx0aXBsZSA9
IHRydWU7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gn
LCBlbCk7CitvMS5zZWxlY3RlZCA9IGZhbHNlOworbzIuc2VsZWN0ZWQgPSBmYWxzZTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworb2JqQ0NvbnRyb2xsZXIuc2V0U2Vs
ZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAwLCBmYWxzZSk7Citz
aG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDQ4N2YyNjQ0YjE2OThjMGNmODQ4MDQ1OTc2YmVkZGJmYzZjOWIwZC4uZTkyZTQyNjUyNTgxNGQ2
OWY0YWM3MDFmZTA2NzAzMmUwYjUxYmM0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMi0wNiAgRGFp
IE1pa3VydWJlICA8ZG1pa3VydWJlQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ICJyZXF1aXJlZCIgYXR0cmlidXRl
IGZvciBzZWxlY3QgdGFncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTAzODAKKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuaHRtbAorICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvZmFzdC9vYmpj
L2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbAorCisgICAgICAgICog
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0
RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCkgdG8gZW5hYmxlIHZhbGlkaXR5IGNoZWNrIGFmdGVyIGNoYW5naW5nLiBObyB0ZXN0cyBm
b3IgdGhpcyBjaGFuZ2Ugc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBub3QgZXhwb3NlZCB0byBKYXZh
U2NyaXB0IG9yIGFueSB3ZWIgaW50ZXJmYWNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVj
dEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRp
dHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVj
dGVkSW5kZXhCeVVzZXIpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlTWlzc2luZyk6IEFkZGVk
IHZhbHVlTWlzc2luZygpIHRvIGNoZWNrIGlmIHNlbGVjdGluZyBhbiBpbnZhbGlkIG9yIHBsYWNl
aG9sZGVyIGxhYmVsIG9wdGlvbiB3aGVuIGEgdmFsaWQgcmVxdWlyZWQgYXR0cmlidXRlIGlzIHNw
ZWNpZmllZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2Vs
ZWN0SXRlbSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuIE5vIHRlc3Rz
IGZvciB0aGlzIGNoYW5nZSBzaW5jZSBpdCBpcyBub3QgY2FsbGVkIHlldC4gTG9vayBhdCB0aGUg
YnVnIDM2MTc3IGFuZCB0aGUgY2hhbmdlc2V0IDU2MTgwLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNlbGVjdEVsZW1lbnQ6OmFkZCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNr
KCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKTogQWRkZWQg
Y2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6IEFkZGVkIGNhbGxpbmcgc2V0
TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlD
aGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbCk6
IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRp
dHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxp
c3RCb3hTZWxlY3Rpb24pOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLiBT
a2lwcGVkIGFkZGluZyB0ZXN0cyBmb3IgdGhpcyBjaGFuZ2UgYXMgdG9vIGNvbXBsaWNhdGVkLi4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZXRMZW5ndGgpOiBBZGRlZCBj
YWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNl
bGVjdEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3JtQ29udHJvbCk6IENoZWNrIGlmIHJlcXVpcmVkIG9y
IG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpoYXNQbGFjZWhvbGRl
ckxhYmVsT3B0aW9uKTogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmlzT3B0aW9uYWxGb3JtQ29u
dHJvbCk6IENoZWNrIGlmIG5vdCByZXF1aXJlZC4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RF
bGVtZW50LmlkbDogQWRkZWQgYSByZXF1aXJlZCBhdHRyaWJ1dGUgdG8gc2VsZWN0IGVsZW1lbnRz
Li4KKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKTogQWRkZWQgdmFsdWVNaXNzaW5nIGNoZWNrIGZv
ciBzZWxlY3QgZWxlbWVudHMgaW50byB0aGUgZ2xvYmFsIGNoZWNrZXIsIFZhbGlkaXR5U3RhdGU6
OnZhbHVlTWlzc2luZygpLgorCiAyMDEwLTEyLTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gUm9sbGluZyBvdXQgcjcyOTg4
IGZvciBicmVha2luZyBpZnJhbWVzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXgg
YzY4MGU5MmU0MGFhOTUxMmFhODI3ZWU4OWEyN2MwYWFlYWNlMzgwMC4uMjY1MmNiNGY0M2E1ZWI4
OWQ3OTllMzBjYjUxNmM0OWQ3MTlhOGM0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
CkBAIC03OCwxMSArNzgsMTMgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RlZEluZGV4
KCkgY29uc3QKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXMoSFRNTE9wdGlv
bkVsZW1lbnQqIGV4Y2x1ZGVFbGVtZW50KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0
SXRlbXMobV9kYXRhLCB0aGlzLCBleGNsdWRlRWxlbWVudCk7CisgICAgc2V0TmVlZHNWYWxpZGl0
eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgo
aW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNl
dFNlbGVjdGVkSW5kZXgobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZhbHNl
LCBmYWxzZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29s
IGRlc2VsZWN0LCBib29sIGZpcmVPbkNoYW5nZU5vdywgYm9vbCBhbGxvd011bHRpcGxlU2VsZWN0
aW9uKQpAQCAtOTEsNiArOTMsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3Rl
ZEluZGV4QnlVc2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBkZXNlbGVjdCwgYgogICAgIC8vIG1v
dXNlZG93biBldmVudHMuIFRoaXMgYWxsb3dzIHRoYXQgc2FtZSBiZWhhdmlvciBwcm9ncmFtbWF0
aWNhbGx5LgogICAgIGlmICghbV9kYXRhLnVzZXNNZW51TGlzdCgpKSB7CiAgICAgICAgIHVwZGF0
ZVNlbGVjdGVkU3RhdGUobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgYWxsb3dNdWx0aXBsZVNl
bGVjdGlvbiwgZmFsc2UpOworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAgICAg
ICAgaWYgKGZpcmVPbkNoYW5nZU5vdykKICAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwog
ICAgICAgICByZXR1cm47CkBAIC0xMDQsNiArMTA3LDQ3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0
LCBiCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3Rl
ZEluZGV4KG1fZGF0YSwgdGhpcywgb3B0aW9uSW5kZXgsIGRlc2VsZWN0LCBmaXJlT25DaGFuZ2VO
b3csIHRydWUpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOworfQorCitib29sIEhUTUxT
ZWxlY3RFbGVtZW50OjpoYXNQbGFjZWhvbGRlckxhYmVsT3B0aW9uKCkgY29uc3QKK3sKKyAgICBp
bnQgbGlzdEluZGV4ID0gb3B0aW9uVG9MaXN0SW5kZXgoMCk7CisgICAgQVNTRVJUKGxpc3RJbmRl
eCA+PSAwKTsKKyAgICBpZiAobGlzdEluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxl
bWVudCo+KGxpc3RJdGVtcygpW2xpc3RJbmRleF0pOworICAgIHJldHVybiAhb3B0aW9uLT5kaXNh
YmxlZCgpICYmICFsaXN0SW5kZXggJiYgdmFsdWUoKS5pc0VtcHR5KCk7Cit9CisKK2Jvb2wgSFRN
TFNlbGVjdEVsZW1lbnQ6OnZhbHVlTWlzc2luZygpIGNvbnN0Cit7CisgICAgaWYgKCFpc1JlcXVp
cmVkRm9ybUNvbnRyb2woKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IGZpcnN0
U2VsZWN0aW9uSW5kZXggPSBzZWxlY3RlZEluZGV4KCk7CisKKyAgICAvLyBUaGUgc2VsZWN0IGVs
ZW1lbnQgaGFzIG5vIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbiBpZiBpdCBoYXMgYW4gYXR0cmli
dXRlICJtdWx0aXBsZSIgc3BlY2lmaWVkIG9yIGEgZGlzcGxheSBzaXplIG9mIG5vbi0xLgorICAg
IC8vIAorICAgIC8vIFRoZSBjb25kaXRpb24gInNpemUoKSA+IDEiIGlzIGFjdHVhbGx5IG5vdCBj
b21wbGlhbnQgd2l0aCB0aGUgSFRNTDUgc3BlYyBhcyBvZiBEZWMgMywgMjAxMC4gInNpemUoKSAh
PSAxIiBpcyBjb3JyZWN0LgorICAgIC8vIFVzaW5nICJzaXplKCkgPiAxIiBoZXJlIGJlY2F1c2Ug
c2l6ZSgpIG1heSBiZSAwIGluIFdlYktpdC4KKyAgICAvLyBTZWUgdGhlIGRpc2N1c3Npb24gYXQg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzODg3CisgICAgLy8KKyAg
ICAvLyAiMCBzaXplKCkiIGhhcHBlbnMgd2hlbiBhbiBhdHRyaWJ1dGUgInNpemUiIGlzIGFic2Vu
dCBvciBhbiBpbnZhbGlkIHNpemUgYXR0cmlidXRlIGlzIHNwZWNpZmllZC4KKyAgICAvLyBJbiB0
aGlzIGNhc2UsIHRoZSBkaXNwbGF5IHNpemUgc2hvdWxkIGJlIGFzc3VtZWQgYXMgdGhlIGRlZmF1
bHQuCisgICAgLy8gVGhlIGRlZmF1bHQgZGlzcGxheSBzaXplIGlzIDEgZm9yIG5vbi1tdWx0aXBs
ZSBzZWxlY3QgZWxlbWVudHMsIGFuZCA0IGZvciBtdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMuCisg
ICAgLy8KKyAgICAvLyBGaW5hbGx5LCBpZiBzaXplKCkgPT0gMCBhbmQgbm9uLW11bHRpcGxlLCB0
aGUgZGlzcGxheSBzaXplIGNhbiBiZSBhc3N1bWVkIGFzIDEuCisgICAgaWYgKG11bHRpcGxlKCkg
fHwgc2l6ZSgpID4gMSkKKyAgICAgICAgcmV0dXJuIGZpcnN0U2VsZWN0aW9uSW5kZXggPCAwOwor
CisgICAgaWYgKGZpcnN0U2VsZWN0aW9uSW5kZXggPCAwKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAvLyBJZiBhIG5vbi1wbGFjZWhvbGVyIGxhYmVsIG9wdGlvbiBpcyBzZWxlY3RlZCwgaXQn
cyBub3QgdmFsdWUtbWlzc2luZy4KKyAgICBpZiAoZmlyc3RTZWxlY3Rpb25JbmRleCA+IDApCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBoYXNQbGFjZWhvbGRlckxhYmVsT3B0
aW9uKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hTZWxlY3RJdGVtKGlu
dCBsaXN0SW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQsIGJv
b2wgZmlyZU9uQ2hhbmdlTm93KQpAQCAtMTEyLDYgKzE1Niw3IEBAIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6Omxpc3RCb3hTZWxlY3RJdGVtKGludCBsaXN0SW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBs
eVNlbGVjCiAgICAgICAgIHNldFNlbGVjdGVkSW5kZXhCeVVzZXIobGlzdFRvT3B0aW9uSW5kZXgo
bGlzdEluZGV4KSwgdHJ1ZSwgZmlyZU9uQ2hhbmdlTm93KTsKICAgICBlbHNlIHsKICAgICAgICAg
dXBkYXRlU2VsZWN0ZWRTdGF0ZShtX2RhdGEsIHRoaXMsIGxpc3RJbmRleCwgYWxsb3dNdWx0aXBs
eVNlbGVjdGlvbnMsIHNoaWZ0KTsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAg
ICAgICAgIGlmIChmaXJlT25DaGFuZ2VOb3cpCiAgICAgICAgICAgICBsaXN0Qm94T25DaGFuZ2Uo
KTsKICAgICB9CkBAIC0xNDQsNiArMTg5LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRk
KEhUTUxFbGVtZW50ICplbGVtZW50LCBIVE1MRWxlbWVudCAqYmVmb3JlLCBFeGNlcHRpb24KICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGJlZm9yZSwgZWMpOwor
ICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50
OjpyZW1vdmUoaW50IGluZGV4KQpAQCAtMTU2LDkgKzIwMiwxMCBAQCB2b2lkIEhUTUxTZWxlY3RF
bGVtZW50OjpyZW1vdmUoaW50IGluZGV4KQogICAgIEFTU0VSVChpdGVtLT5wYXJlbnROb2RlKCkp
OwogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgaXRlbS0+cGFyZW50Tm9kZSgpLT5yZW1vdmVD
aGlsZChpdGVtLCBlYyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKLVN0cmlu
ZyBIVE1MU2VsZWN0RWxlbWVudDo6dmFsdWUoKQorU3RyaW5nIEhUTUxTZWxlY3RFbGVtZW50Ojp2
YWx1ZSgpIGNvbnN0CiB7CiAgICAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgaXRlbXMgPSBsaXN0
SXRlbXMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyBpKysp
IHsKQEAgLTE5NSw2ICsyNDIsNyBAQCBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpzYXZlRm9ybUNv
bnRyb2xTdGF0ZShTdHJpbmcmIHZhbHVlKSBjb25zdAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKIHsKICAgICBTZWxl
Y3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShtX2RhdGEsIHRoaXMsIHN0YXRlKTsK
KyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSAKQEAgLTIxNSwxNCArMjYz
LDE2IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKICAgICAgICAgICAgIHJlY2FsY0xpc3RJdGVtc0lmTmVlZGVkKCk7CiAKICAg
ICAgICAgbV9kYXRhLnNldFNpemUoc2l6ZSk7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpOwogICAgICAgICBpZiAoKG9sZFVzZXNNZW51TGlzdCAhPSBtX2RhdGEudXNlc01lbnVMaXN0
KCkgfHwgKCFvbGRVc2VzTWVudUxpc3QgJiYgbV9kYXRhLnNpemUoKSAhPSBvbGRTaXplKSkgJiYg
YXR0YWNoZWQoKSkgewogICAgICAgICAgICAgZGV0YWNoKCk7CiAgICAgICAgICAgICBhdHRhY2go
KTsKICAgICAgICAgICAgIHNldFJlY2FsY0xpc3RJdGVtcygpOwogICAgICAgICB9Ci0gICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbXVsdGlwbGVBdHRyKQorICAgIH0gZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IG11bHRpcGxlQXR0cikgewogICAgICAgICBTZWxlY3RFbGVtZW50OjpwYXJz
ZU11bHRpcGxlQXR0cmlidXRlKG1fZGF0YSwgdGhpcywgYXR0cik7Ci0gICAgZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IGFjY2Vzc2tleUF0dHIpIHsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYWNjZXNza2V5QXR0cikgewog
ICAgICAgICAvLyBGSVhNRTogaWdub3JlIGZvciB0aGUgbW9tZW50CiAgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gYWxpZ25BdHRyKSB7CiAgICAgICAgIC8vIERvbid0IG1hcCAnYWxpZ24n
IGF0dHJpYnV0ZS4gIFRoaXMgbWF0Y2hlcyB3aGF0IEZpcmVmb3gsIE9wZXJhIGFuZCBJRSBkby4K
QEAgLTI1NSw2ICszMDUsNyBAQCBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpjYW5TZWxlY3RBbGwo
KSBjb25zdAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0QWxsKCkKIHsKICAgICBTZWxl
Y3RFbGVtZW50OjpzZWxlY3RBbGwobV9kYXRhLCB0aGlzKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5
Q2hlY2soKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCkBAIC0zMTUsNiArMzY2LDcg
QEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0UmVjYWxjTGlzdEl0ZW1zKCkKIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnJlc2V0KCkKIHsKICAgICBTZWxlY3RFbGVtZW50OjpyZXNldChtX2Rh
dGEsIHRoaXMpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoKQpAQCAtMzUwLDYgKzQwMiw3IEBAIHZv
aWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkVuZEluZGV4KGludCBpbmRl
eCkKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24oYm9vbCBk
ZXNlbGVjdE90aGVyT3B0aW9ucykKIHsKICAgICBTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94
U2VsZWN0aW9uKG1fZGF0YSwgdGhpcywgZGVzZWxlY3RPdGhlck9wdGlvbnMpOworICAgIHNldE5l
ZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjptZW51TGlz
dE9uQ2hhbmdlKCkKQEAgLTQ1OCw2ICs1MTEsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpz
ZXRMZW5ndGgodW5zaWduZWQgbmV3TGVuLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAog
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2Nyb2xsVG9TZWxlY3Rpb24oKQpAQCAtNDcxLDQgKzUy
NSw5IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVw
KQogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6Omluc2VydGVkSW50b1RyZWUo
ZGVlcCk7CiB9CiAKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3JtQ29udHJv
bCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlcXVpcmVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGEzYjQ0NjBkNGJjOTBlZjk4OGRkNmViMDcx
M2E5ZmI5ZjgyNTAzMzIuLjUxZWZjYmQzMTk3M2JjYTNmMTFlMGRlZDk2OTYwNDk5ZDRkYmVjZTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgZGVzZWxlY3Qg
PSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgaW5k
ZXgsIGJvb2wgZGVzZWxlY3QgPSB0cnVlLCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IGZhbHNlLCBi
b29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24gPSBmYWxzZSk7CiAKKyAgICAvLyBGb3IgVmFsaWRp
dHlTdGF0ZQorICAgIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3Q7CisKICAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IHNpemUoKSBjb25zdCB7IHJldHVybiBt
X2RhdGEuc2l6ZSgpOyB9CkBAIC01MSw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZChI
VE1MRWxlbWVudCogZWxlbWVudCwgSFRNTEVsZW1lbnQqIGJlZm9yZSwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgcmVtb3ZlKGludCBpbmRleCk7CiAKLSAgICBTdHJpbmcgdmFsdWUoKTsKKyAg
ICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYp
OwogCiAgICAgUGFzc1JlZlB0cjxIVE1MT3B0aW9uc0NvbGxlY3Rpb24+IG9wdGlvbnMoKTsKQEAg
LTEzNCw3ICsxMzcsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZElu
dG9UcmVlKGJvb2wpOwogCi0gICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1D
b250cm9sKCkgY29uc3QgeyByZXR1cm4gIWlzUmVxdWlyZWRGb3JtQ29udHJvbCgpOyB9CisgICAg
dmlydHVhbCBib29sIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpIGNvbnN0OworCisgICAgYm9vbCBo
YXNQbGFjZWhvbGRlckxhYmVsT3B0aW9uKCkgY29uc3Q7CiAKICAgICBTZWxlY3RFbGVtZW50RGF0
YSBtX2RhdGE7CiAgICAgQ29sbGVjdGlvbkNhY2hlIG1fY29sbGVjdGlvbkluZm87CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAyZTUzYmNhYTZjNjM3MDgxNDY3ZjE1NjA2NmQwZWNh
YTg1MjdiNzI3Li5mNWFjNjliMmY4MWMzOTMwODQxMWY2ZGI4ZWYwYTZmNDM1OWFmYWYxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ5LDYgKzQ5LDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOwogICAgICAg
ICBhdHRyaWJ1dGUgYm9vbGVhbiBtdWx0aXBsZTsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gYm9vbGVhbiByZXF1aXJlZDsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2l6ZTsKICAg
ICAgICAgCiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgYWRkKGluIEhUTUxFbGVtZW50IGVs
ZW1lbnQsIGluIEhUTUxFbGVtZW50IGJlZm9yZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgYi9XZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5jcHAKaW5kZXggZWYzZGU2NmJiNjQzOTBlNWMyODc3NWRlZTQwMjUyNmU2MjA2
YjFkNS4uNTFlOWE5ZGM3MzdhMDM5NTJjMjhjNTQ0NTI1MmY4ZGY0MzJkOWE2NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9WYWxp
ZGl0eVN0YXRlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxU
cmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTEwMiw2ICsx
MDMsOSBAQCB2b2lkIFZhbGlkaXR5U3RhdGU6OnNldEN1c3RvbUVycm9yTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiAKIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKCkgY29u
c3QKIHsKKyAgICBpZiAoIW1fY29udHJvbC0+d2lsbFZhbGlkYXRlKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKwogICAgIGlmIChtX2NvbnRyb2wtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7CiAg
ICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KG1fY29udHJvbCk7CiAgICAgICAgIHJldHVybiBpbnB1dC0+dmFsdWVNaXNzaW5nKGlu
cHV0LT52YWx1ZSgpKTsKQEAgLTExMCw2ICsxMTQsMTAgQEAgYm9vbCBWYWxpZGl0eVN0YXRlOjp2
YWx1ZU1pc3NpbmcoKSBjb25zdAogICAgICAgICBIVE1MVGV4dEFyZWFFbGVtZW50KiB0ZXh0QXJl
YSA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihtX2NvbnRyb2wpOwogICAgICAg
ICByZXR1cm4gdGV4dEFyZWEtPnZhbHVlTWlzc2luZyh0ZXh0QXJlYS0+dmFsdWUoKSk7CiAgICAg
fQorICAgIGlmIChtX2NvbnRyb2wtPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkgeworICAgICAgICBI
VE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQq
PihtX2NvbnRyb2wpOworICAgICAgICByZXR1cm4gc2VsZWN0LT52YWx1ZU1pc3NpbmcoKTsKKyAg
ICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75797</attachid>
            <date>2010-12-07 03:55:02 -0800</date>
            <delta_ts>2010-12-07 19:21:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101207205513.patch</filename>
            <type>text/plain</type>
            <size>56241</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNTM0NTRiYjg5MDllMmI2ODJmZDA2YTZhZDA3ZDAwNDgwMjM5YTg3Li42ZDg3ZDBh
YzkxMzYxM2RhMTVlNTBmODM2MzhiZDlkZTI0ZjMyNWYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMTItMDYgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9v
YmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1
ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTItMDYgIFl1dGEgS2l0
YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3Npbmct
MDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12
YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dAppbmRleCBiMDY5YTc0ZTA1ZGU1MWUzNzdjMzBj
MDU4NWVmNTU1NGQ0YWZjYWFmLi42NDJhNDE4Yjk0ODIxOTEyMzc3MjkwOWU5OGEzMDg5NzU5ODdm
NjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFs
dWVNaXNzaW5nLTAwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjMg
QEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVp
cmVkIGFuZCBibGFuazogdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBiZSB0cnVlIGluIGJv
dGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIGJs
YW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBzZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4K
IAotIAotU1VDQ0VTUworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVN
aXNzaW5nRm9yKCJpbnB1dCIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJl
YSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2Vs
ZWN0ZWQiKSBpcyB0cnVlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxh
Y2Vob2xkZXIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhv
bGRlci1zZWxlY3RlZC1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3Np
bmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLW11bHRpcGxlIikgaXMgdHJ1ZQorUEFTUyB2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIikg
aXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNl
aG9sZGVyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qt
bm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhv
bGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LW9wdGdyb3VwIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZGlz
YWJsZWQtb3B0aW9uIikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWwKaW5kZXgg
ZGM4ODg3OTI5NDY0YjgxNGY1MjZmMDMzMTZmMGI1MTNmNGE0MzFiNS4uODQyMGMxYzc0YzI0Mjhj
MmYxYTMyYmNlMjZjYjNlZmMwMTkwNGRlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS5odG1sCkBAIC0xLDI3
ICsxLDkxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJlcXVpcmVkIGFuZCBiYXNpYyB2YWx1ZU1pc3Npbmc8
L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJp
bnB1dCIgbmFtZT0idmljdGltIiByZXF1aXJlZC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBu
YW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxh
Y2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFs
dWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxl
Y3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGlt
IiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhv
bGRlci1zZWxlY3RlZC1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAg
PG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRp
b24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNp
emUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJY
Ij5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0Pgor
PHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIg
bXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFj
ZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJl
ZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5Y
PC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxh
Y2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxv
cHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAv
PgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0
aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlv
biB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4K
KzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRp
cGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9u
IHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwv
c2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXpl
Mi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAg
PG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVk
IC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1vcHRncm91cCIgbmFtZT0idmljdGlt
IiByZXF1aXJlZD4KKyAgPG9wdGdyb3VwIGxhYmVsPSIxIj4KKyAgICA8b3B0aW9uIHZhbHVlPSIi
IHNlbGVjdGVkIC8+CisgIDwvb3B0Z3JvdXA+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWRpc2FibGVkLW9wdGlvbiIgbmFtZT0i
dmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCAv
PgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFu
Z3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUi
KS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1
ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgp
IHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgd2l0aCBibGFuayB2YWx1ZXMsIGJs
YW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9yIG5vdGhpbmcgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAg
diA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAgICAgIGxvZygodlswXS52YWxp
ZGl0eS52YWx1ZU1pc3NpbmcgJiYgdlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NF
U1MiIDogIkZBSUxVUkUiKTsKLSAgICB9CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdG
b3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFy
ZWEiKScpOworICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vo
b2xkZXItc2VsZWN0ZWQiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigi
c2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVl
TWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIiknKTsKKyAgICBz
aG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVy
LXNpemUyIiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5v
bmUtc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2lu
Z0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAg
IHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFj
ZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZh
bHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNp
emUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNl
bGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNo
b3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW9wdGdyb3VwIiknKTsKKyAgICBz
aG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1kaXNhYmxlZC1vcHRpb24iKScp
OworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9s
IGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCBibGFuazoKLXZhbGlkaXR5LnZhbHVl
TWlzc2luZyBzaG91bGQgYmUgdHJ1ZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2
aWN0aW0iIHJlcXVpcmVkLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4
dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12
YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dAppbmRleCAzNjA2OWI4NTNj
OTEyOWM0NTllZTdjMDNmNmI3ZTM1ODllNDNhYWE0Li5iY2IyYTg0NDIyNWZmYTk2ZDg2OTQ1MTgx
ZWI3MzQ3N2Q3NzczZjI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0CkBA
IC0xLDQgKzEsMTkgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93
LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6IHZhbGlkaXR5LnZhbHVlTWlzc2lu
ZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy4KK1RoaXMgdGVzdCBjaGVja3MgdmFsaWRp
dHkudmFsdWVNaXNzaW5nIHdpdGggc29tZSB2YWx1ZXMgb3Igb3B0aW9ucyB3aXRoIHNvbWUgdmFs
dWVzIHNlbGVjdGVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB2YWx1ZU1pc3NpbmdGb3IoImlucHV0IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNz
aW5nRm9yKCJ0ZXh0YXJlYSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0
LXdpdGgtcGxhY2Vob2xkZXIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC13aXRob3V0LXBsYWNlaG9sZGVyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11
bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1m
YWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNp
emUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDIuaHRtbAppbmRleCA2ZjA2
ZjlmNDM2NDVmNDljYzMzZjc4MGI1YWY5NjJiMTQ3YTdlODM1Li43MDVmMDIyM2U2NmZjMGI5ODE2
YjM2MTY4ZjM4OTMyZWViMThiN2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwKQEAgLTEsMjcgKzEs
NjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxo
dG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYW5kIGJhc2ljIHZhbHVlTWlzc2luZyAyPC90
aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0iaW5w
dXQiIG5hbWU9InZpY3RpbSIgdmFsdWU9InNvbWV0aGluZyIgcmVxdWlyZWQvPgorPHRleHRhcmVh
IGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1aXJlZD5zb21ldGhpbmc8L3RleHRhcmVh
PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIgcmVx
dWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0
ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFj
ZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2Vs
ZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIg
c2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
d2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJl
cXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+CisgIDxvcHRp
b24gdmFsdWU9IiIgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgtZmFrZS1w
bGFjZWhvbGRlci1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAg
PG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRp
b24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xk
ZXItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24g
dmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9z
ZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11
bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0
aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4K
Kzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1z
aXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4K
KyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVl
PSIiIC8+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3Nh
Z2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAg
cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7
CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1
ZU1pc3Npbmcgd2l0aCBzb21lIHZhbHVlcyBvciBvcHRpb25zIHdpdGggc29tZSB2YWx1ZXMgc2Vs
ZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0g
ICAgICAgIGxvZygoIXZbMF0udmFsaWRpdHkudmFsdWVNaXNzaW5nICYmICF2WzFdLnZhbGlkaXR5
LnZhbHVlTWlzc2luZykgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICBzaG91
bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZUZhbHNl
KCd2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLXBsYWNlaG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZh
bHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLWZha2UtcGxhY2Vo
b2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxl
IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0
LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVl
TWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIp
Jyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1m
YWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBy
ZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3Vs
ZCBiZSBmYWxzZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIHZhbHVl
PSJzb21ldGhpbmciIHJlcXVpcmVkLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVk
PnNvbWV0aGluZzwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dApp
bmRleCBkZmUzMzk4NjkwZTE5YmYzMmVhMjIwMGZjNDE1OGZhOWVhYjM4NTcyLi4xZjQxMmJkNmVh
NjY2ZjViZTViNTAxZDJhMTVkMTFiZTNlNDYwMWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjEgQEAKLVRoZXJlIGFyZSB0d28gZGlzYWJsZWQgZm9y
bSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFs
dWU6IHZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy4K
K1RoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIG9mIGRpc2FibGVkIGZvcm0g
Y29udHJvbHMgd2l0aCBibGFuayB2YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9yIG5v
dGhpbmcgc2VsZWN0ZWQuCiAKLSAKLVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHZhbHVlTWlzc2luZ0ZvcigiaW5wdXQiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1p
c3NpbmdGb3IoInRleHRhcmVhIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBsZSIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXIt
c2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3Rl
ZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0
LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAgICAgICAg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLTAwMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDMuaHRtbAppbmRleCA5ZDkyZmZiMzRiNzIyNDZmY2RhNzIwN2M0NTczMzdh
MWVmMmZmZDRjLi4xM2Q0NGZjZjlkNDc4MDJiZDVlYzgzZTZkMTE2Mzk3OWFlYmU3Y2E1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5n
LTAwMy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAzLmh0bWwKQEAgLTEsMjcgKzEsNzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWly
ZWQgYW5kIHZhbHVlTWlzc2luZyBvbiBkaXNhYmxlZCBlbGVtZW50czwvdGl0bGU+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0
aW0iIGRpc2FibGVkIHJlcXVpcmVkIC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2
aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
cGxhY2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0
aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIg
bmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwv
b3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIgbmFtZT0idmljdGltIiBz
aXplPSIyIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAv
PgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIi
IGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxv
cHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0
LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwv
b3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1z
ZWxlY3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJl
ZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5Y
PC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxh
Y2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWly
ZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBz
ZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1z
aXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiBkaXNhYmxlZCBy
ZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9v
cHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNl
bGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIGRp
c2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRp
b24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdp
dGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0
aXBsZSBzaXplPSIyIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwv
b3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KIDxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlv
biB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24g
dGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgb2YgZGlzYWJsZWQgZm9y
bSBjb250cm9scyB3aXRoIGJsYW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBzZWxlY3RlZCwgb3Ig
bm90aGluZyBzZWxlY3RlZC4iKTsKIAotICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eU5hbWUoInZpY3RpbSIpOworICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmlj
dGltIik7CiAKLSAgICAgICAgbG9nKCghdlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgIXZb
MV0udmFsaWRpdHkudmFsdWVNaXNzaW5nKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAg
fQorICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0ZvcigiaW5wdXQiKScpOworICAgIHNo
b3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJl
RmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNl
aG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1w
bGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBs
ZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1w
bGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikn
KTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVj
dGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2Ut
cGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4K
LTxwPlRoZXJlIGFyZSB0d28gZGlzYWJsZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBi
b3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6Ci12YWxpZGl0eS52YWx1ZU1pc3Npbmcg
c2hvdWxkIGJlIGZhbHNlIGluIGJvdGggY2FzZXMuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIg
ZGlzYWJsZWQgcmVxdWlyZWQgLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJl
cXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hl
Y2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVj
a1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQKaW5kZXggMTg1Nzk0NDQ4NzBkMzk0MDU1ZDNhOTIw
Mzc0NGM3ZWQ4NDBjOGU4NC4uODM4ODgyODg4Zjc2MmJiMTQ1MWQxODBhYjI5ZjFmYjg4ODg4Yzg5
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAw
Mi1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEsMTQgQEAKLVRoaXMgdGVzdCBjaGVja3MgaWYgY2hl
Y2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJl
c3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRzLgorVGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlk
aXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBmYWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9u
IGludmFsaWQgZWxlbWVudHMsIGFuZCByZXR1cm5zIGEgdHJ1ZSByZXN1bHQgb24gYSBibGFuayBi
dXQgdmFsaWQgZWxlbWVudHMuIEJsYW5rIGJ1dCBub24tcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9u
cyBhcmUgdmFsaWQuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi0gIAotUEFTUyB2
W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQotUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBp
cyBmYWxzZQotUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQorICAgIAorUEFTUyBj
aGVja1ZhbGlkaXR5Rm9yKCJpbnB1dC1lbXB0eSIpIGlzIGZhbHNlCitQQVNTIGNoZWNrVmFsaWRp
dHlGb3IoImlucHV0LXBhdHRlcm4tbWlzbWF0Y2giKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlk
aXR5Rm9yKCJ0ZXh0YXJlYSIpIGlzIGZhbHNlCitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoInNlbGVj
dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoInNlbGVjdC1u
b24tcGxhY2Vob2xkZXIiKSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hl
Y2tWYWxpZGl0eS0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0
eS0wMDIuaHRtbAppbmRleCAyODcyZmFkMzViZWU4MmU0NjViZWUxN2VmYmYxMWY1ODBmZjQyY2M5
Li42NjJmNmViZmQzMTExZWFmZTJiNzExY2Y4YjAwMmYxYjA4YmVlOWQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCkBAIC03LDE5ICs3LDMzIEBA
CiA8Ym9keT4KIDxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgogPGZvcm0gbWV0aG9kPSJnZXQiPgot
PGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVxdWlyZWQvPgotPGlucHV0IG5hbWU9
InZpY3RpbSIgdHlwZT0idGV4dCIgcGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlw
c3VtIi8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPGlu
cHV0IGlkPSJpbnB1dC1lbXB0eSIgbmFtZT0idmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZC8+
Cis8aW5wdXQgaWQ9ImlucHV0LXBhdHRlcm4tbWlzbWF0Y2giIG5hbWU9InZpY3RpbSIgdHlwZT0i
dGV4dCIgcGF0dGVybj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFy
ZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2Vs
ZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxv
cHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9u
PgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uLXBsYWNlaG9sZGVyIiBuYW1lPSJ2
aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRp
b24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgogPC9mb3JtPgogPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+CiA8c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYg
Y2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3Ip
IHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRzLiIpOworICAgIGZ1bmN0aW9uIGNoZWNrVmFsaWRp
dHlGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5j
aGVja1ZhbGlkaXR5KCk7CisgICAgfQogCi12ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUo
InZpY3RpbSIpOwotZm9yIChpID0gMDsgaSA8IHYubGVuZ3RoOyBpKyspCi0gICAgc2hvdWxkQmUo
InZbaV0uY2hlY2tWYWxpZGl0eSgpIiwgImZhbHNlIik7CisgICAgZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2Ug
KG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRzLCBhbmQgcmV0dXJucyBh
IHRydWUgcmVzdWx0IG9uIGEgYmxhbmsgYnV0IHZhbGlkIGVsZW1lbnRzLiBCbGFuayBidXQgbm9u
LXBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbnMgYXJlIHZhbGlkLiIpOwogCi12YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBzaG91bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5Rm9yKCJp
bnB1dC1lbXB0eSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigiaW5w
dXQtcGF0dGVybi1taXNtYXRjaCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0
eUZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3Io
InNlbGVjdC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdjaGVja1ZhbGlkaXR5
Rm9yKCJzZWxlY3Qtbm9uLXBsYWNlaG9sZGVyIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dAppbmRl
eCA5YjIwMTQzMThhM2U1MGJkM2VmNWQ0MDAxMzZjMzAyNDY5MWY4OWNkLi5iOWI1NGI4NzY0YzQ5
ZGE2MDE3YTQxN2M3ZThmMzdmZjFjZTY0YWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSwxMiBAQAotVGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJv
dGggcmVxdWlyZWQuCitUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93
LCBhbGwgcmVxdWlyZWQuCiAKLSAKLVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHJlcXVpcmVkRm9yKCJpbnB1dCIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3Io
InRleHRhcmVhIikgaXMgdHJ1ZQorUEFTUyByZXF1aXJlZEZvcigic2VsZWN0IikgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEuaHRtbApp
bmRleCAyZjM0YzE2MWFjZjZhM2Y1ZjQwMDA4NzNmZDgyNjZjMDE3ZmUwMzYwLi44YWVhNTdjMzE2
MzU0ZTY3ZGI4OTQwMDZlODcwZDUzNGVmNzM5NWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEuaHRtbApAQCAtMSwyNiArMSwzNCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8
aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhdHRyaWJ1dGUgcHJlc2VuY2UgdGVzdDwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1l
PSJ2aWN0aW0iIHJlcXVpcmVkIC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0
aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QiIG5hbWU9InZpY3Rp
bSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2
YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2Ny
aXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7
Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9
ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rpb24gcmVxdWlyZWRGb3IoaWQpIHsK
KyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5yZXF1aXJlZDsKICAg
ICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGRlc2NyaXB0aW9uKCJUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1l
bnRzIGJlbG93LCBhbGwgcmVxdWlyZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5h
bWUoInZpY3RpbSIpOwogCi0gICAgICAgIGxvZygodlswXS5yZXF1aXJlZCAmJiB2WzFdLnJlcXVp
cmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgfQorICAgIHNob3VsZEJlVHJ1ZSgn
cmVxdWlyZWRGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJ0
ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigic2VsZWN0IiknKTsK
KworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBl
bGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZC48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiBy
ZXF1aXJlZCAvPgotPHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4K
LTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRl
LTAwMi1leHBlY3RlZC50eHQKaW5kZXggYWM1YzBmZmYyMjg2NmUxMTVmZjBjYzQzY2Q0ZGI0OWM4
ZTk4ZmJmYS4uYzI1NTYxZDE0Y2M3NjBjMjc3ODEzOGY3NGM3ZjI0NjVhMjAyNjJjNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0w
MDItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTkgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250
cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIG9wdGlvbmFsLiBUaGV5J3JlIHNldCBhcyByZXF1aXJl
ZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0ZS4KK1RoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRy
b2wgZWxlbWVudHMgYmVsb3csIGFsbCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQg
dmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUuCiAKLSAKLVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitCZWZvcmUgc2V0OgorUEFTUyByZXF1aXJlZEZvcigiaW5wdXQiKSBp
cyBmYWxzZQorUEFTUyByZXF1aXJlZEZvcigidGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyByZXF1
aXJlZEZvcigic2VsZWN0IikgaXMgZmFsc2UKKworQWZ0ZXIgc2V0OgorUEFTUyByZXF1aXJlZEZv
cigiaW5wdXQiKSBpcyB0cnVlCitQQVNTIHJlcXVpcmVkRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUK
K1BBU1MgcmVxdWlyZWRGb3IoInNlbGVjdCIpIGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbAppbmRleCBhYTg1ZTg5NTRlZTA3
ODE4ZDFjMjhiZDU1MjBhOTViMjIxYzc3YjkwLi45MjhlMzNmYzgwNTBkM2UyYjRlYTg3NWI2ZmVk
ZTNkZTA0MjY5M2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVk
LWF0dHJpYnV0ZS0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVk
LWF0dHJpYnV0ZS0wMDIuaHRtbApAQCAtMSwzMiArMSw0NiBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1
aXJlZCBhdHRyaWJ1dGUgSlMgc2V0PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxpbnB1dCBpZD0iaW5wdXQiIG5hbWU9InZpY3RpbSIgLz4KKzx0ZXh0YXJlYSBp
ZD0idGV4dGFyZWEiIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVj
dCIgbmFtZT0idmljdGltIj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0
aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9Ikph
dmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhU
TUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiByZXF1aXJlZEZvcihp
ZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnJlcXVpcmVk
OwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgZGVzY3JpcHRpb24oIlRoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wg
ZWxlbWVudHMgYmVsb3csIGFsbCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlh
IHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5h
bWUoInZpY3RpbSIpOwogCi0gICAgICAgIGlmICh2WzBdLnJlcXVpcmVkID09IGZhbHNlICYmIHZb
MV0ucmVxdWlyZWQgPT0gZmFsc2UpIHsKLSAgICAgICAgICAgIHZbMF0ucmVxdWlyZWQgPSB0cnVl
OwotICAgICAgICAgICAgdlsxXS5yZXF1aXJlZCA9IHRydWU7Ci0gICAgICAgICAgICBsb2cgKCh2
WzBdLnJlcXVpcmVkICYmIHZbMV0ucmVxdWlyZWQpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsK
LSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsb2coIkZBSUxVUkUiKTsKLSAg
ICB9CisgICAgZGVidWcoIkJlZm9yZSBzZXQ6Iik7CisgICAgc2hvdWxkQmVGYWxzZSgncmVxdWly
ZWRGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdyZXF1aXJlZEZvcigidGV4dGFy
ZWEiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3JlcXVpcmVkRm9yKCJzZWxlY3QiKScpOworICAg
IGRlYnVnKCIiKTsKKworICAgIHZbMF0ucmVxdWlyZWQgPSB0cnVlOworICAgIHZbMV0ucmVxdWly
ZWQgPSB0cnVlOworICAgIHZbMl0ucmVxdWlyZWQgPSB0cnVlOworCisgICAgZGVidWcoIkFmdGVy
IHNldDoiKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJpbnB1dCIpJyk7CisgICAg
c2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1
ZSgncmVxdWlyZWRGb3IoInNlbGVjdCIpJyk7CisgICAgZGVidWcoIiIpOworCisgICAgdmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93
LCBib3RoIG9wdGlvbmFsLiBUaGV5J3JlIHNldCBhcyByZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9N
IGF0dHJpYnV0ZS48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiAvPgotPHRleHRhcmVhIG5hbWU9
InZpY3RpbSI+PC90ZXh0YXJlYT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
ZXNvdXJjZXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVzb3VyY2VzL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzIyMTMzYzVkMjdmYTBiOTI5YzFkYmZkMjAwM2M4ODlmODhiYzE2MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3NlbGVjdC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuanMKQEAgLTAsMCArMSwxODMgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgcGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0
b3JzIGFyZSBsaXZlbHkgYXBwbGllZC4iKTsKKworLy8gU2V0dXAgZm9yIHN0YXRpYyBlbGVtZW50
cy4KK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChmb3JtKTsKK3ZhciBub25Gb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5vbkZvcm0pOworCitmdW5j
dGlvbiBtYWtlSW52YWxpZCgpIHsKKyAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc2VsZWN0Jyk7CisgICAgc2VsZWN0Lm5hbWUgPSAnZm9vJzsKKyAgICBzZWxlY3QucmVx
dWlyZWQgPSB0cnVlOworICAgIHNlbGVjdC52YWx1ZSA9ICcnOworICAgIGZvcm0uYXBwZW5kQ2hp
bGQoc2VsZWN0KTsKKyAgICByZXR1cm4gc2VsZWN0OworfQorCitmdW5jdGlvbiBhcHBlbmRPcHRp
b24odmFsdWUsIHNlbGVjdCkgeworICAgIHZhciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdvcHRpb24nKTsKKyAgICBvcHRpb24udmFsdWUgPSB2YWx1ZTsKKyAgICBvcHRpb24uaW5u
ZXJUZXh0ID0gdmFsdWU7CisgICAgc2VsZWN0LmFkZChvcHRpb24pOworICAgIHJldHVybiBvcHRp
b247Cit9CisKK2Z1bmN0aW9uIGluc2VydE9wdGlvbkJlZm9yZSh2YWx1ZSwgc2VsZWN0LCBiZWZv
cmUpIHsKKyAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7
CisgICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7CisgICAgb3B0aW9uLmlubmVyVGV4dCA9IHZhbHVl
OworICAgIHNlbGVjdC5hZGQob3B0aW9uLCBiZWZvcmUpOworICAgIHJldHVybiBvcHRpb247Cit9
CisKK2Z1bmN0aW9uIHJlbW92ZU9wdGlvbihvcHRpb24sIHNlbGVjdCkgeworICAgIHNlbGVjdC5y
ZW1vdmUob3B0aW9uKTsKKyAgICByZXR1cm4gb3B0aW9uOworfQorCitmdW5jdGlvbiBiYWNrZ3Jv
dW5kT2YoZWwpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpOworfQor
Cit2YXIgZWxCYWNrZ3JvdW5kID0gJ2JhY2tncm91bmRPZihlbCknOwordmFyIGludmFsaWRDb2xv
ciA9ICdyZ2IoMjU1LCAwLCAwKSc7Cit2YXIgbm9ybWFsQ29sb3IgPSAncmdiKDI1NSwgMjU1LCAy
NTUpJzsKK3ZhciBkaXNhYmxlZENvbG9yID0gJ3JnYigwLCAwLCAwKSc7Cit2YXIgcmVhZE9ubHlD
b2xvciA9ICdyZ2IoMCwgMjU1LCAwKScKK3ZhciB2YWxpZENvbG9yID0gJ3JnYigwLCAwLCAyNTUp
JzsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vICAgICB3aWxsVmFs
aWRhdGUgY2hhbmdlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordmFyIGVs
ID0gbWFrZUludmFsaWQoKTsKK3ZhciBvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOwordmFyIG8y
ID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworLy8gQ29uZmly
bSB0aGlzIGVsZW1lbnQgaXMgaW52YWxpZC4KK2RlYnVnKCdDaGVjayB0aGUgaW5pdGlhbCBzdGF0
ZTonKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1Zygn
Q2hhbmdlIG5hbWU6Jyk7CitlbC5uYW1lID0gJyc7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdp
bnZhbGlkQ29sb3InKTsKK2VsLm5hbWUgPSAnYmFyJzsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIGRpc2FibGVkOicpOworZWwgPSBtYWtl
SW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9u
KCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworZWwuZGlzYWJsZWQgPSB0cnVlOworc2hv
dWxkQmUoZWxCYWNrZ3JvdW5kLCAnZGlzYWJsZWRDb2xvcicpOworZWwuZGlzYWJsZWQgPSBmYWxz
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnSW5z
aWRlL291dHNpZGUgb2YgYSBmb3JtOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBl
bmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0
ZWQgPSB0cnVlOworbm9uRm9ybS5hcHBlbmRDaGlsZChlbCk7CitzaG91bGRCZShlbEJhY2tncm91
bmQsICdpbnZhbGlkQ29sb3InKTsKK2Zvcm0uYXBwZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxC
YWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisvLyAgICAgdmFsdWUgY2hhbmdlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorZGVidWcoJ0NoYW5nZSB0aGUgdmFsdWUgd2l0aCBhIHBsYWNlaG9sZGVyIGxh
YmVsIG9wdGlvbjonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcn
LCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsK
K3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hh
bmdlIHRoZSB2YWx1ZSB3aXRob3V0IGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uOicpOworZWwg
PSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMiA9IGFwcGVu
ZE9wdGlvbignJywgZWwpOworbzIuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAndmFsaWRDb2xvcicpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNr
Z3JvdW5kLCAndmFsaWRDb2xvcicpOworCitkZWJ1ZygnSW5zZXJ0L3JlbW92ZSBvcHRpb25zOicp
OworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0g
YXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxC
YWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitvMyA9IGluc2VydE9wdGlvbkJlZm9yZSgnWScs
IGVsLCBlbC5maXJzdENoaWxkKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3In
KTsKK3JlbW92ZU9wdGlvbihvMywgZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxp
ZENvbG9yJyk7CitvMyA9IGFwcGVuZE9wdGlvbignWicsIGVsKTsKK28zLnNlbGVjdGVkID0gdHJ1
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLmxlbmd0aCA9IDI7
CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1NldCBh
biBhdHRyaWJ1dGU6IG11bHRpcGxlOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBl
bmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0
ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitlbC5t
dWx0aXBsZSA9IHRydWU7CitzaG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7Citl
bC5yZW1vdmVBdHRyaWJ1dGUoJ211bHRpcGxlJyk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdp
bnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1NldCBhbiBhdHRyaWJ1dGU6IHNpemU6Jyk7CitlbCA9
IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRP
cHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRCZShlbEJhY2tncm91
bmQsICdpbnZhbGlkQ29sb3InKTsKK2VsLnNpemUgPSAyOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5k
LCAndmFsaWRDb2xvcicpOworZWwucmVtb3ZlQXR0cmlidXRlKCdzaXplJyk7CitzaG91bGRCZShl
bEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1NlbGVjdEFsbDonKTsKK2Vs
ID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVu
ZE9wdGlvbignWCcsIGVsKTsKK2VsLm11bHRpcGxlID0gdHJ1ZTsKK28xLnNlbGVjdGVkID0gZmFs
c2U7CitvMi5zZWxlY3RlZCA9IGZhbHNlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxp
ZENvbG9yJyk7CitlbC5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIp
Oworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwubXVsdGlwbGUgPSBm
YWxzZTsKK28xLnNlbGVjdGVkID0gZmFsc2U7CitvMi5zZWxlY3RlZCA9IHRydWU7CisKK2RlYnVn
KCdSZXNldDonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBl
bCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3No
b3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2Zvcm0ucmVzZXQoKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorLy8gICAgIENvbnN0cmFpbnRzIGNoYW5nZQorLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2RlYnVnKCdDaGFuZ2UgcmVxdWlyZWQ6Jyk7CitlbCA9
IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRP
cHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitlbC5yZXF1aXJlZCA9IGZhbHNl
Oworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwucmVxdWlyZWQgPSB0
cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcwppbmRleCBkNjgyNmRlMTgyZTMx
Mzc3YWMwYzQ4ZDk0NjhjYjc2YThhNTZmNDcxLi41YzU2NTQyNzAxNTE0MmVkMmQwNmY0NDQ2MmM3
YWNjODU1ZDdhNWYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Nj
cmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcwpAQCAtMjQsNiArMjQsMTMgQEAgcmVxdWly
ZWRUZXh0QXJlYS5yZXF1aXJlZCA9IHRydWU7CiBmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkVGV4
dEFyZWEpOwogc2hvdWxkQmUoInJlcXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UiLCAi
J3ZhbHVlIG1pc3NpbmcnIik7CiAKKy8vIEEgcmVxdWlyZWQgc2VsZWN0IHdpdGggYW4gZW1wdHkg
dmFsdWUKK3ZhciByZXF1aXJlZFNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVj
dCIpOworcmVxdWlyZWRTZWxlY3QubmFtZSA9ICJyZXF1aXJlZFNlbGVjdCI7CityZXF1aXJlZFNl
bGVjdC5yZXF1aXJlZCA9IHRydWU7Citmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkU2VsZWN0KTsK
K3Nob3VsZEJlKCJyZXF1aXJlZFNlbGVjdC52YWxpZGF0aW9uTWVzc2FnZSIsICIndmFsdWUgbWlz
c2luZyciKTsKKwogLy8gQSB0eXBlPWVtYWlsIGlucHV0IGZvciB0aGUgInR5cGUgbWlzbWF0Y2gi
IGZsYWcKIHZhciBlbWFpbElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsK
IGVtYWlsSW5wdXQubmFtZSA9ICJlbWFpbElucHV0IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRkN2NiNzM0ZWE5MmU5ZjhjNGNiZWIwNWQ2ZjNmMTRmMjdkNjk1
NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZl
LXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTAgQEAKK1RoaXMgdGVz
dCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3Rv
cnMgYXJlIGxpdmVseSBhcHBsaWVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
Q2hlY2sgdGhlIGluaXRpYWwgc3RhdGU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxp
ZENvbG9yCitDaGFuZ2UgbmFtZToKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSBkaXNhYmxl
ZDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBkaXNhYmxlZENvbG9yCitQQVNTIGJhY2tncm91
bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitJbnNpZGUvb3V0c2lkZSBvZiBhIGZvcm06CitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkg
aXMgaW52YWxpZENvbG9yCitDaGFuZ2UgdGhlIHZhbHVlIHdpdGggYSBwbGFjZWhvbGRlciBsYWJl
bCBvcHRpb246CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSB3aXRob3V0IGEg
cGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlk
Q29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitJbnNlcnQvcmVtb3Zl
IG9wdGlvbnM6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJh
Y2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGlu
dmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFj
a2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1NldCBhbiBhdHRyaWJ1dGU6IG11bHRpcGxl
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK1NldCBhbiBhdHRyaWJ1dGU6IHNpemU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorU2VsZWN0QWxsOgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29s
b3IKK1Jlc2V0OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFj
a2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSByZXF1aXJlZDoKK1BBU1MgYmFj
a2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyZTlmODc2NTBjNGQzYmZhYzg5ZDRh
ODFhYzFkYzU5MTYyNWZmZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbAorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9saXZl
LXBzZXVkby1zZWxlY3RvcnMuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3Nh
Z2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2Fn
ZS1leHBlY3RlZC50eHQKaW5kZXggMGUxMmQ4YTI3MWU1ZGQ4ZjU1M2EyMWQxYTljMmJkN2FiZTVk
ZDYzMS4uZTkxOTYxZDEwMDlmMzk5MTkwY2RhZGUzMzAwZjkzYWIzNDQ0NjY0YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50
eHQKQEAgLTYsNiArNiw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBQQVNTIHBhdHRlcm5J
bnB1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAncGF0dGVybiBtaXNtYXRjaCcKIFBBU1MgcmVxdWly
ZWRJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKIFBBU1MgcmVxdWly
ZWRUZXh0QXJlYS52YWxpZGF0aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgcmVx
dWlyZWRTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIGVt
YWlsSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUgbWlzbWF0Y2gnCiBQQVNTIGJ1dC52
YWxpZGF0aW9uTWVzc2FnZSBpcyAnJwogUEFTUyBhbm9uaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2Ug
aXMgJycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9t
LWh0bWwtc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1z
ZWxlY3RvcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhODlmYTU4OGI1MWI5YjZjNmRhMDlh
ZjhjYTY3NDg4Y2EzNzdjYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRo
YXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVk
IGJ5IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworQ2hhbmdlIHRoZSB2YWx1ZSBvZiBhIG1lbnVsaXN0IHNl
bGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2VyOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5n
ZSB0aGUgdmFsdWUgb2YgYSBsaXN0Ym94IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWxpdmUtcHNldWRv
LXNlbGVjdG9ycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOTQxNjY1MTA1MmQyMTExOGYwOGUyZmYxZTE2
MTI1MjdhYzRmZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbApAQCAt
MCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+PC90
aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi8uLi8uLi9mYXN0L2Zvcm1zL3Jlc291cmNlcy9saXZlLXBzZXVkby1zZWxlY3RvcnMu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBz
ZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVkIGJ5IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxl
Y3RlZEluZGV4QnlVc2VyLiIpOworCisvLyBTZXR1cCBmb3Igc3RhdGljIGVsZW1lbnRzLgordmFy
IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Citkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGZvcm0pOworCitmdW5jdGlvbiBtYWtlSW52YWxpZChpZCkgeworICAgIHZhciBz
ZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTsKKyAgICBzZWxlY3QubmFt
ZSA9ICdmb28nOworICAgIHNlbGVjdC5yZXF1aXJlZCA9IHRydWU7CisgICAgaWYgKGlkICE9IHVu
ZGVmaW5lZCkKKyAgICAgICAgc2VsZWN0LmlkID0gaWQ7CisgICAgc2VsZWN0LnZhbHVlID0gJyc7
CisgICAgZm9ybS5hcHBlbmRDaGlsZChzZWxlY3QpOworICAgIHJldHVybiBzZWxlY3Q7Cit9CisK
K2Z1bmN0aW9uIGFwcGVuZE9wdGlvbih2YWx1ZSwgc2VsZWN0KSB7CisgICAgdmFyIG9wdGlvbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOworICAgIG9wdGlvbi52YWx1ZSA9IHZh
bHVlOworICAgIG9wdGlvbi5pbm5lclRleHQgPSB2YWx1ZTsKKyAgICBzZWxlY3QuYWRkKG9wdGlv
bik7CisgICAgcmV0dXJuIG9wdGlvbjsKK30KKworZnVuY3Rpb24gYmFja2dyb3VuZE9mKGVsKSB7
CisgICAgcmV0dXJuIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51
bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKTsKK30KKwordmFyIGVsQmFj
a2dyb3VuZCA9ICdiYWNrZ3JvdW5kT2YoZWwpJzsKK3ZhciBpbnZhbGlkQ29sb3IgPSAncmdiKDI1
NSwgMCwgMCknOwordmFyIG5vcm1hbENvbG9yID0gJ3JnYigyNTUsIDI1NSwgMjU1KSc7Cit2YXIg
ZGlzYWJsZWRDb2xvciA9ICdyZ2IoMCwgMCwgMCknOwordmFyIHJlYWRPbmx5Q29sb3IgPSAncmdi
KDAsIDI1NSwgMCknCit2YXIgdmFsaWRDb2xvciA9ICdyZ2IoMCwgMCwgMjU1KSc7CisKK2RlYnVn
KCdDaGFuZ2UgdGhlIHZhbHVlIG9mIGEgbWVudWxpc3Qgc2VsZWN0IGJ5IHNldFNlbGVjdGVkSW5k
ZXhCeVVzZXI6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCdtZW51bGlzdCcpOworbzEgPSBhcHBlbmRP
cHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworb2JqQ0NvbnRyb2xs
ZXIuc2V0U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAxLCBm
YWxzZSk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitvYmpDQ29udHJv
bGxlci5zZXRTZWxlY3RFbGVtZW50U2VsZWN0ZWRJbmRleEFsbG93aW5nTXVsdGlwbGUoZWwsIDAs
IGZhbHNlKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1
ZygnQ2hhbmdlIHRoZSB2YWx1ZSBvZiBhIGxpc3Rib3ggc2VsZWN0IGJ5IHNldFNlbGVjdGVkSW5k
ZXhCeVVzZXI6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCdsaXN0Ym94Jyk7CitlbC5tdWx0aXBsZSA9
IHRydWU7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gn
LCBlbCk7CitvMS5zZWxlY3RlZCA9IGZhbHNlOworbzIuc2VsZWN0ZWQgPSBmYWxzZTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworb2JqQ0NvbnRyb2xsZXIuc2V0U2Vs
ZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAwLCBmYWxzZSk7Citz
aG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDQ4N2YyNjQ0YjE2OThjMGNmODQ4MDQ1OTc2YmVkZGJmYzZjOWIwZC4uZjEwOTdiYTY3OWIwYzQw
YmVkNmI2YmFhMjIwNmQ3NzY3NGY1MjY4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0xMi0wNiAgRGFp
IE1pa3VydWJlICA8ZG1pa3VydWJlQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ICJyZXF1aXJlZCIgYXR0cmlidXRl
IGZvciBzZWxlY3QgdGFncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTAzODAKKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuaHRtbAorICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMvZmFzdC9vYmpj
L2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbAorCisgICAgICAgICog
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0
RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCkgdG8gZW5hYmxlIHZhbGlkaXR5IGNoZWNrIGFmdGVyIGNoYW5naW5nLiBObyB0ZXN0cyBm
b3IgdGhpcyBjaGFuZ2Ugc2luY2UgdGhpcyBmdW5jdGlvbiBpcyBub3QgZXhwb3NlZCB0byBKYXZh
U2NyaXB0IG9yIGFueSB3ZWIgaW50ZXJmYWNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVj
dEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRp
dHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVj
dGVkSW5kZXhCeVVzZXIpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlTWlzc2luZyk6IEFkZGVk
IHZhbHVlTWlzc2luZygpIHRvIGNoZWNrIGlmIHNlbGVjdGluZyBhbiBpbnZhbGlkIG9yIHBsYWNl
aG9sZGVyIGxhYmVsIG9wdGlvbiB3aGVuIGEgdmFsaWQgcmVxdWlyZWQgYXR0cmlidXRlIGlzIHNw
ZWNpZmllZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp2YWx1ZSk6IENo
YW5nZWQgdGhpcyBmdW5jdGlvbiB0byBjb25zdC4gSXQgc2hvdWxkIGJlIGNvbnN0IG5hdHVyYWxs
eSwgYW5kIHRoZSBjaGFuZ2UgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUgbmV3IGZ1bmN0aW9uIHZh
bHVlTWlzc2luZygpIGNvbnN0LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6
Omxpc3RCb3hTZWxlY3RJdGVtKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2so
KS4gTm8gdGVzdHMgZm9yIHRoaXMgY2hhbmdlIHNpbmNlIGl0IGlzIG5vdCBjYWxsZWQgeWV0LiBM
b29rIGF0IHRoZSBidWcgMzYxNzcgYW5kIHRoZSBjaGFuZ2VzZXQgNTYxODAuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWRkKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1Zh
bGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZW1v
dmUpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogQWRkZWQg
Y2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6
c2VsZWN0QWxsKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZXNldCk6IEFkZGVkIGNhbGxpbmcgc2V0
TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbik6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0
eUNoZWNrKCkuIFNraXBwZWQgYWRkaW5nIHRlc3RzIGZvciB0aGlzIGNoYW5nZSBhcyB0b28gY29t
cGxpY2F0ZWQuLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldExlbmd0
aCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aXNSZXF1aXJlZEZvcm1Db250cm9sKTogQ2hlY2sgaWYg
cmVxdWlyZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omhh
c1BsYWNlaG9sZGVyTGFiZWxPcHRpb24pOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxl
Y3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aXNPcHRp
b25hbEZvcm1Db250cm9sKTogQ2hlY2sgaWYgbm90IHJlcXVpcmVkLgorICAgICAgICAqIGh0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBBZGRlZCBhIHJlcXVpcmVkIGF0dHJpYnV0ZSB0byBzZWxl
Y3QgZWxlbWVudHMuLgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3NpbmcpOiBBZGRlZCB2YWx1ZU1pc3Np
bmcgY2hlY2sgZm9yIHNlbGVjdCBlbGVtZW50cyBpbnRvIHRoZSBnbG9iYWwgY2hlY2tlciwgVmFs
aWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKCkuCisKIDIwMTAtMTItMDYgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBSb2xsaW5n
IG91dCByNzI5ODggZm9yIGJyZWFraW5nIGlmcmFtZXMuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcAppbmRleCBjNjgwZTkyZTQwYWE5NTEyYWE4MjdlZTg5YTI3YzBhYWVhY2UzODAwLi4yNjUy
Y2I0ZjQzYTVlYjg5ZDc5OWUzMGNiNTE2YzQ5ZDcxOWE4YzQ3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAKQEAgLTc4LDExICs3OCwxMyBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNl
bGVjdGVkSW5kZXgoKSBjb25zdAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVt
cyhIVE1MT3B0aW9uRWxlbWVudCogZXhjbHVkZUVsZW1lbnQpCiB7CiAgICAgU2VsZWN0RWxlbWVu
dDo6ZGVzZWxlY3RJdGVtcyhtX2RhdGEsIHRoaXMsIGV4Y2x1ZGVFbGVtZW50KTsKKyAgICBzZXRO
ZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2Vs
ZWN0ZWRJbmRleChpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QpCiB7CiAgICAgU2VsZWN0
RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBkZXNl
bGVjdCwgZmFsc2UsIGZhbHNlKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAog
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9u
SW5kZXgsIGJvb2wgZGVzZWxlY3QsIGJvb2wgZmlyZU9uQ2hhbmdlTm93LCBib29sIGFsbG93TXVs
dGlwbGVTZWxlY3Rpb24pCkBAIC05MSw2ICs5Myw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0LCBi
CiAgICAgLy8gbW91c2Vkb3duIGV2ZW50cy4gVGhpcyBhbGxvd3MgdGhhdCBzYW1lIGJlaGF2aW9y
IHByb2dyYW1tYXRpY2FsbHkuCiAgICAgaWYgKCFtX2RhdGEudXNlc01lbnVMaXN0KCkpIHsKICAg
ICAgICAgdXBkYXRlU2VsZWN0ZWRTdGF0ZShtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBhbGxv
d011bHRpcGxlU2VsZWN0aW9uLCBmYWxzZSk7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpOwogICAgICAgICBpZiAoZmlyZU9uQ2hhbmdlTm93KQogICAgICAgICAgICAgbGlzdEJveE9u
Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTEwNCw2ICsxMDcsNDcgQEAgdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJv
b2wgZGVzZWxlY3QsIGIKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFNlbGVjdEVsZW1lbnQ6
OnNldFNlbGVjdGVkSW5kZXgobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZp
cmVPbkNoYW5nZU5vdywgdHJ1ZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Cit9CisK
K2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6Omhhc1BsYWNlaG9sZGVyTGFiZWxPcHRpb24oKSBjb25z
dAoreworICAgIGludCBsaXN0SW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleCgwKTsKKyAgICBBU1NF
UlQobGlzdEluZGV4ID49IDApOworICAgIGlmIChsaXN0SW5kZXggPCAwKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbiA9IHN0YXRpY19jYXN0PEhU
TUxPcHRpb25FbGVtZW50Kj4obGlzdEl0ZW1zKClbbGlzdEluZGV4XSk7CisgICAgcmV0dXJuICFv
cHRpb24tPmRpc2FibGVkKCkgJiYgIWxpc3RJbmRleCAmJiB2YWx1ZSgpLmlzRW1wdHkoKTsKK30K
KworYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6dmFsdWVNaXNzaW5nKCkgY29uc3QKK3sKKyAgICBp
ZiAoIWlzUmVxdWlyZWRGb3JtQ29udHJvbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpbnQgZmlyc3RTZWxlY3Rpb25JbmRleCA9IHNlbGVjdGVkSW5kZXgoKTsKKworICAgIC8vIFRo
ZSBzZWxlY3QgZWxlbWVudCBoYXMgbm8gcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uIGlmIGl0IGhh
cyBhbiBhdHRyaWJ1dGUgIm11bHRpcGxlIiBzcGVjaWZpZWQgb3IgYSBkaXNwbGF5IHNpemUgb2Yg
bm9uLTEuCisgICAgLy8gCisgICAgLy8gVGhlIGNvbmRpdGlvbiAic2l6ZSgpID4gMSIgaXMgYWN0
dWFsbHkgbm90IGNvbXBsaWFudCB3aXRoIHRoZSBIVE1MNSBzcGVjIGFzIG9mIERlYyAzLCAyMDEw
LiAic2l6ZSgpICE9IDEiIGlzIGNvcnJlY3QuCisgICAgLy8gVXNpbmcgInNpemUoKSA+IDEiIGhl
cmUgYmVjYXVzZSBzaXplKCkgbWF5IGJlIDAgaW4gV2ViS2l0LgorICAgIC8vIFNlZSB0aGUgZGlz
Y3Vzc2lvbiBhdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM4ODcK
KyAgICAvLworICAgIC8vICIwIHNpemUoKSIgaGFwcGVucyB3aGVuIGFuIGF0dHJpYnV0ZSAic2l6
ZSIgaXMgYWJzZW50IG9yIGFuIGludmFsaWQgc2l6ZSBhdHRyaWJ1dGUgaXMgc3BlY2lmaWVkLgor
ICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIGRpc3BsYXkgc2l6ZSBzaG91bGQgYmUgYXNzdW1lZCBh
cyB0aGUgZGVmYXVsdC4KKyAgICAvLyBUaGUgZGVmYXVsdCBkaXNwbGF5IHNpemUgaXMgMSBmb3Ig
bm9uLW11bHRpcGxlIHNlbGVjdCBlbGVtZW50cywgYW5kIDQgZm9yIG11bHRpcGxlIHNlbGVjdCBl
bGVtZW50cy4KKyAgICAvLworICAgIC8vIEZpbmFsbHksIGlmIHNpemUoKSA9PSAwIGFuZCBub24t
bXVsdGlwbGUsIHRoZSBkaXNwbGF5IHNpemUgY2FuIGJlIGFzc3VtZWQgYXMgMS4KKyAgICBpZiAo
bXVsdGlwbGUoKSB8fCBzaXplKCkgPiAxKQorICAgICAgICByZXR1cm4gZmlyc3RTZWxlY3Rpb25J
bmRleCA8IDA7CisKKyAgICBpZiAoZmlyc3RTZWxlY3Rpb25JbmRleCA8IDApCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIC8vIElmIGEgbm9uLXBsYWNlaG9sZXIgbGFiZWwgb3B0aW9uIGlzIHNl
bGVjdGVkLCBpdCdzIG5vdCB2YWx1ZS1taXNzaW5nLgorICAgIGlmIChmaXJzdFNlbGVjdGlvbklu
ZGV4ID4gMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGhhc1BsYWNlaG9s
ZGVyTGFiZWxPcHRpb24oKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveFNl
bGVjdEl0ZW0oaW50IGxpc3RJbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgYm9v
bCBzaGlmdCwgYm9vbCBmaXJlT25DaGFuZ2VOb3cpCkBAIC0xMTIsNiArMTU2LDcgQEAgdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0ZW0oaW50IGxpc3RJbmRleCwgYm9vbCBh
bGxvd011bHRpcGx5U2VsZWMKICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihsaXN0VG9P
cHRpb25JbmRleChsaXN0SW5kZXgpLCB0cnVlLCBmaXJlT25DaGFuZ2VOb3cpOwogICAgIGVsc2Ug
ewogICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKG1fZGF0YSwgdGhpcywgbGlzdEluZGV4LCBh
bGxvd011bHRpcGx5U2VsZWN0aW9ucywgc2hpZnQpOworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5
Q2hlY2soKTsKICAgICAgICAgaWYgKGZpcmVPbkNoYW5nZU5vdykKICAgICAgICAgICAgIGxpc3RC
b3hPbkNoYW5nZSgpOwogICAgIH0KQEAgLTE0NCw2ICsxODksNyBAQCB2b2lkIEhUTUxTZWxlY3RF
bGVtZW50OjphZGQoSFRNTEVsZW1lbnQgKmVsZW1lbnQsIEhUTUxFbGVtZW50ICpiZWZvcmUsIEV4
Y2VwdGlvbgogICAgICAgICByZXR1cm47CiAKICAgICBpbnNlcnRCZWZvcmUoZWxlbWVudCwgYmVm
b3JlLCBlYyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6OnJlbW92ZShpbnQgaW5kZXgpCkBAIC0xNTYsOSArMjAyLDEwIEBAIHZvaWQg
SFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShpbnQgaW5kZXgpCiAgICAgQVNTRVJUKGl0ZW0tPnBh
cmVudE5vZGUoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICBpdGVtLT5wYXJlbnROb2Rl
KCktPnJlbW92ZUNoaWxkKGl0ZW0sIGVjKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsK
IH0KIAotU3RyaW5nIEhUTUxTZWxlY3RFbGVtZW50Ojp2YWx1ZSgpCitTdHJpbmcgSFRNTFNlbGVj
dEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKIHsKICAgICBjb25zdCBWZWN0b3I8RWxlbWVudCo+JiBp
dGVtcyA9IGxpc3RJdGVtcygpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtcy5z
aXplKCk7IGkrKykgewpAQCAtMTk1LDYgKzI0Miw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6
OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0CiB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQog
ewogICAgIFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKG1fZGF0YSwgdGhp
cywgc3RhdGUpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpIApAQCAt
MjE1LDE0ICsyNjMsMTYgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICAgICAgcmVjYWxjTGlzdEl0ZW1zSWZOZWVk
ZWQoKTsKIAogICAgICAgICBtX2RhdGEuc2V0U2l6ZShzaXplKTsKKyAgICAgICAgc2V0TmVlZHNW
YWxpZGl0eUNoZWNrKCk7CiAgICAgICAgIGlmICgob2xkVXNlc01lbnVMaXN0ICE9IG1fZGF0YS51
c2VzTWVudUxpc3QoKSB8fCAoIW9sZFVzZXNNZW51TGlzdCAmJiBtX2RhdGEuc2l6ZSgpICE9IG9s
ZFNpemUpKSAmJiBhdHRhY2hlZCgpKSB7CiAgICAgICAgICAgICBkZXRhY2goKTsKICAgICAgICAg
ICAgIGF0dGFjaCgpOwogICAgICAgICAgICAgc2V0UmVjYWxjTGlzdEl0ZW1zKCk7CiAgICAgICAg
IH0KLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBtdWx0aXBsZUF0dHIpCisgICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbXVsdGlwbGVBdHRyKSB7CiAgICAgICAgIFNlbGVjdEVs
ZW1lbnQ6OnBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUobV9kYXRhLCB0aGlzLCBhdHRyKTsKLSAgICBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYWNjZXNza2V5QXR0cikgeworICAgICAgICBzZXROZWVk
c1ZhbGlkaXR5Q2hlY2soKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhY2Nlc3Nr
ZXlBdHRyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBpZ25vcmUgZm9yIHRoZSBtb21lbnQKICAgICB9
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhbGlnbkF0dHIpIHsKICAgICAgICAgLy8gRG9uJ3Qg
bWFwICdhbGlnbicgYXR0cmlidXRlLiAgVGhpcyBtYXRjaGVzIHdoYXQgRmlyZWZveCwgT3BlcmEg
YW5kIElFIGRvLgpAQCAtMjU1LDYgKzMwNSw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNh
blNlbGVjdEFsbCgpIGNvbnN0CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwoKQog
ewogICAgIFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbChtX2RhdGEsIHRoaXMpOworICAgIHNldE5l
ZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiBSZW5kZXJPYmplY3QqIEhUTUxTZWxlY3RFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKQEAgLTMx
NSw2ICszNjYsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRSZWNhbGNMaXN0SXRlbXMo
KQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQoKQogewogICAgIFNlbGVjdEVsZW1lbnQ6
OnJlc2V0KG1fZGF0YSwgdGhpcyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAK
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCgpCkBAIC0zNTAsNiAr
NDAyLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0aW9uRW5kSW5k
ZXgoaW50IGluZGV4KQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVj
dGlvbihib29sIGRlc2VsZWN0T3RoZXJPcHRpb25zKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnVw
ZGF0ZUxpc3RCb3hTZWxlY3Rpb24obV9kYXRhLCB0aGlzLCBkZXNlbGVjdE90aGVyT3B0aW9ucyk7
CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6Om1lbnVMaXN0T25DaGFuZ2UoKQpAQCAtNDU4LDYgKzUxMSw3IEBAIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OnNldExlbmd0aCh1bnNpZ25lZCBuZXdMZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorICAgIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzY3JvbGxUb1NlbGVjdGlvbigpCkBA
IC00NzEsNCArNTI1LDkgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvVHJl
ZShib29sIGRlZXApCiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6aW5zZXJ0
ZWRJbnRvVHJlZShkZWVwKTsKIH0KIAorYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6aXNSZXF1aXJl
ZEZvcm1Db250cm9sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVxdWlyZWQoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5o
IGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggYTNiNDQ2MGQ0YmM5MGVm
OTg4ZGQ2ZWIwNzEzYTlmYjlmODI1MDMzMi4uNTFlZmNiZDMxOTczYmNhM2YxMWUwZGVkOTY5NjA0
OTlkNGRiZWNlMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQzLDYgKzQzLDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZEluZGV4KGludCBpbmRleCwgYm9v
bCBkZXNlbGVjdCA9IHRydWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZEluZGV4QnlV
c2VyKGludCBpbmRleCwgYm9vbCBkZXNlbGVjdCA9IHRydWUsIGJvb2wgZmlyZU9uQ2hhbmdlTm93
ID0gZmFsc2UsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiA9IGZhbHNlKTsKIAorICAgIC8v
IEZvciBWYWxpZGl0eVN0YXRlCisgICAgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdDsKKwogICAg
IHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgc2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZGF0YS5zaXplKCk7IH0KQEAgLTUxLDcgKzU0LDcgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkKEhUTUxFbGVtZW50KiBlbGVtZW50LCBIVE1MRWxlbWVudCogYmVmb3JlLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCByZW1vdmUoaW50IGluZGV4KTsKIAotICAgIFN0cmluZyB2
YWx1ZSgpOworICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJik7CiAKICAgICBQYXNzUmVmUHRyPEhUTUxPcHRpb25zQ29sbGVjdGlvbj4gb3B0
aW9ucygpOwpAQCAtMTM0LDcgKzEzNywxMCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lk
IGluc2VydGVkSW50b1RyZWUoYm9vbCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZv
cm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc09w
dGlvbmFsRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiAhaXNSZXF1aXJlZEZvcm1Db250cm9s
KCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXF1aXJlZEZvcm1Db250cm9sKCkgY29uc3Q7CisK
KyAgICBib29sIGhhc1BsYWNlaG9sZGVyTGFiZWxPcHRpb24oKSBjb25zdDsKIAogICAgIFNlbGVj
dEVsZW1lbnREYXRhIG1fZGF0YTsKICAgICBDb2xsZWN0aW9uQ2FjaGUgbV9jb2xsZWN0aW9uSW5m
bzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgYi9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCmluZGV4IDJlNTNiY2FhNmM2MzcwODE0Njdm
MTU2MDY2ZDBlY2FhODUyN2I3MjcuLmY1YWM2OWIyZjgxYzM5MzA4NDExZjZkYjhlZjBhNmY0MzU5
YWZhZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNDksNiArNDksNyBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9j
dXM7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIG11bHRpcGxlOwogICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgYXR0
cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlcXVpcmVkOwogICAgICAgICBhdHRyaWJ1dGUgbG9u
ZyBzaXplOwogICAgICAgICAKICAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBhZGQoaW4gSFRN
TEVsZW1lbnQgZWxlbWVudCwgaW4gSFRNTEVsZW1lbnQgYmVmb3JlKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNv
cmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCBlZjNkZTY2YmI2NDM5MGU1YzI4Nzc1ZGVl
NDAyNTI2ZTYyMDZiMWQ1Li41MWU5YTlkYzczN2EwMzk1MmMyOGM1NDQ1MjUyZjhkZjQzMmQ5YTY0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRN
TFNlbGVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpA
QCAtMTAyLDYgKzEwMyw5IEBAIHZvaWQgVmFsaWRpdHlTdGF0ZTo6c2V0Q3VzdG9tRXJyb3JNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAogYm9vbCBWYWxpZGl0eVN0YXRlOjp2YWx1ZU1p
c3NpbmcoKSBjb25zdAogeworICAgIGlmICghbV9jb250cm9sLT53aWxsVmFsaWRhdGUoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKG1fY29udHJvbC0+aGFzVGFnTmFtZShpbnB1
dFRhZykpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4obV9jb250cm9sKTsKICAgICAgICAgcmV0dXJuIGlucHV0LT52YWx1
ZU1pc3NpbmcoaW5wdXQtPnZhbHVlKCkpOwpAQCAtMTEwLDYgKzExNCwxMCBAQCBib29sIFZhbGlk
aXR5U3RhdGU6OnZhbHVlTWlzc2luZygpIGNvbnN0CiAgICAgICAgIEhUTUxUZXh0QXJlYUVsZW1l
bnQqIHRleHRBcmVhID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KG1fY29udHJv
bCk7CiAgICAgICAgIHJldHVybiB0ZXh0QXJlYS0+dmFsdWVNaXNzaW5nKHRleHRBcmVhLT52YWx1
ZSgpKTsKICAgICB9CisgICAgaWYgKG1fY29udHJvbC0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7
CisgICAgICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBzdGF0aWNfY2FzdDxIVE1MU2Vs
ZWN0RWxlbWVudCo+KG1fY29udHJvbCk7CisgICAgICAgIHJldHVybiBzZWxlY3QtPnZhbHVlTWlz
c2luZygpOworICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75861</attachid>
            <date>2010-12-07 19:21:38 -0800</date>
            <delta_ts>2010-12-07 19:56:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101208122150.patch</filename>
            <type>text/plain</type>
            <size>55643</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YjBiNTliMjY5MTYwYzQ5ZDc5NzA2NjVlNWQ0NjA3MTExZmQ4YzE3Li4xMmZiMGE3
NjE3ZTkyMGEyOTU5MDkwZGZlNWNiOWEwMThkOTZhOWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMTItMDYgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9v
YmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1
ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTItMDcgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlYmFzZWxpbmUgR1RL
KyByZXN1bHRzIGFmdGVyIHI3MzM4NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4
dAppbmRleCBiMDY5YTc0ZTA1ZGU1MWUzNzdjMzBjMDU4NWVmNTU1NGQ0YWZjYWFmLi42NDJhNDE4
Yjk0ODIxOTEyMzc3MjkwOWU5OGEzMDg5NzU5ODdmNjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjMgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250
cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCBibGFuazogdmFsaWRpdHkudmFs
dWVNaXNzaW5nIHNob3VsZCBiZSB0cnVlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tz
IHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIGJsYW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBz
ZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4KIAotIAotU1VDQ0VTUworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpIGlzIHRydWUK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiKSBpcyB0cnVlCitQQVNTIHZhbHVl
TWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiKSBpcyBmYWxzZQorUEFTUyB2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIpIGlzIGZh
bHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXItc2l6
ZTIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVk
LW11bHRpcGxlIikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBs
YWNlaG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikgaXMgZmFsc2UK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBs
ZSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRl
ci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZh
bHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW9wdGdyb3VwIikgaXMgZmFsc2UKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZGlzYWJsZWQtb3B0aW9uIikgaXMgZmFsc2UKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAgICAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWwKaW5kZXggZGM4ODg3OTI5NDY0YjgxNGY1MjZmMDMzMTZm
MGI1MTNmNGE0MzFiNS4uODQyMGMxYzc0YzI0MjhjMmYxYTMyYmNlMjZjYjNlZmMwMTkwNGRlMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
dmFsdWVNaXNzaW5nLTAwMS5odG1sCkBAIC0xLDI3ICsxLDkxIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJl
cXVpcmVkIGFuZCBiYXNpYyB2YWx1ZU1pc3Npbmc8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGltIiByZXF1aXJl
ZC8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4
dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9InZp
Y3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlv
biB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0
aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVj
dD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIgbmFtZT0i
dmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAv
PgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIi
IHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFs
dWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUtc2Vs
ZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRp
b24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+
Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBsZSIg
bmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxl
Y3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9InZp
Y3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4K
KyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJz
ZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBs
ZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZh
bHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBs
YWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxl
IHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxv
cHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0
LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBt
dWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9u
PgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
InNlbGVjdC1vcHRncm91cCIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGdyb3VwIGxh
YmVsPSIxIj4KKyAgICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDwvb3B0Z3JvdXA+
CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0i
c2VsZWN0LWRpc2FibGVkLW9wdGlvbiIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlv
biB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9v
cHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3Nh
Z2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAg
cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7
CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1
ZU1pc3Npbmcgd2l0aCBibGFuayB2YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9yIG5v
dGhpbmcgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlO
YW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3Rp
bSIpOwogCi0gICAgICAgIGxvZygodlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgdlsxXS52
YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICB9Cisg
ICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoImlucHV0IiknKTsKKyAgICBzaG91bGRC
ZVRydWUoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1ZSgn
dmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiKScpOworICAgIHNo
b3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIi
KScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9s
ZGVyLXNlbGVjdGVkLXNpemUyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiknKTsKKyAgICBzaG91bGRCZVRy
dWUoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2lu
Z0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUy
LW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91
bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xk
ZXItc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LW9wdGdyb3VwIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC1kaXNhYmxlZC1vcHRpb24iKScpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4K
LTxwPlRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVp
cmVkIGFuZCBibGFuazoKLXZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgdHJ1ZSBpbiBi
b3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkLz4KLTx0ZXh0YXJl
YSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNv
bGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAy
LWV4cGVjdGVkLnR4dAppbmRleCAzNjA2OWI4NTNjOTEyOWM0NTllZTdjMDNmNmI3ZTM1ODllNDNh
YWE0Li5iY2IyYTg0NDIyNWZmYTk2ZDg2OTQ1MTgxZWI3MzQ3N2Q3NzczZjI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTkgQEAKLVRoZXJlIGFyZSB0
d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNv
bWUgdmFsdWU6IHZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBj
YXNlcy4KK1RoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIHdpdGggc29tZSB2
YWx1ZXMgb3Igb3B0aW9ucyB3aXRoIHNvbWUgdmFsdWVzIHNlbGVjdGVkLgogCi0gCi1TVUNDRVNT
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZU1pc3NpbmdGb3IoImlu
cHV0IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlzIGZhbHNl
CitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtcGxhY2Vob2xkZXIiKSBpcyBmYWxz
ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIikgaXMg
ZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVy
LXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1m
YWtlLXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIikg
aXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9s
ZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAgICAgICAg
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDIuaHRtbAppbmRleCA2ZjA2ZjlmNDM2NDVmNDljYzMzZjc4MGI1YWY5NjJi
MTQ3YTdlODM1Li43MDVmMDIyM2U2NmZjMGI5ODE2YjM2MTY4ZjM4OTMyZWViMThiN2JlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5n
LTAwMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAyLmh0bWwKQEAgLTEsMjcgKzEsNjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWly
ZWQgYW5kIGJhc2ljIHZhbHVlTWlzc2luZyAyPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0iaW5wdXQiIG5hbWU9InZpY3RpbSIgdmFsdWU9InNv
bWV0aGluZyIgcmVxdWlyZWQvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGlt
IiByZXF1aXJlZD5zb21ldGhpbmc8L3RleHRhcmVhPgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgt
cGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIg
Lz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8
c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1
aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9u
IHZhbHVlPSIiIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRoLWZha2UtcGxh
Y2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRp
b24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgor
PC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNp
emUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJY
IiBzZWxlY3RlZD5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKzwvc2VsZWN0Pgor
PHNlbGVjdCBpZD0ic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIgbmFtZT0i
dmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0
aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIg
bXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlv
bj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
d2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRp
cGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24g
dmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGlt
IiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0
ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVjdD4KIDxzY3JpcHQg
bGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2
YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVz
dCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigi
VGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgd2l0aCBzb21lIHZhbHVlcyBv
ciBvcHRpb25zIHdpdGggc29tZSB2YWx1ZXMgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAgICAgIGxvZygoIXZbMF0udmFsaWRpdHku
dmFsdWVNaXNzaW5nICYmICF2WzFdLnZhbGlkaXR5LnZhbHVlTWlzc2luZykgPyAiU1VDQ0VTUyIg
OiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3Io
ImlucHV0IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVh
IiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLXBs
YWNlaG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVj
dC13aXRob3V0LXBsYWNlaG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3Np
bmdGb3IoInNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItc2l6ZTIiKScpOworICAgIHNob3Vs
ZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRl
ci1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qt
d2l0aC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUi
KScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFr
ZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRp
cGxlIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0g
Y29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVl
OgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBiZSBmYWxzZSBpbiBib3RoIGNhc2VzLjwv
cD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIHZhbHVlPSJzb21ldGhpbmciIHJlcXVpcmVkLz4KLTx0
ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPnNvbWV0aGluZzwvdGV4dGFyZWE+Ci08aHI+
Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3Npbmct
MDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12
YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dAppbmRleCBkZmUzMzk4NjkwZTE5YmYzMmVhMjIw
MGZjNDE1OGZhOWVhYjM4NTcyLi4xZjQxMmJkNmVhNjY2ZjViZTViNTAxZDJhMTVkMTFiZTNlNDYw
MWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFs
dWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9W
YWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjEg
QEAKLVRoZXJlIGFyZSB0d28gZGlzYWJsZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBi
b3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUgdmFsdWU6IHZhbGlkaXR5LnZhbHVlTWlzc2luZyBz
aG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNlcy4KK1RoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHku
dmFsdWVNaXNzaW5nIG9mIGRpc2FibGVkIGZvcm0gY29udHJvbHMgd2l0aCBibGFuayB2YWx1ZXMs
IGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9yIG5vdGhpbmcgc2VsZWN0ZWQuCiAKLSAKLVNVQ0NF
U1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigi
aW5wdXQiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInRleHRhcmVhIikgaXMgZmFs
c2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiKSBp
cyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVy
IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xkZXItc2Vs
ZWN0ZWQtc2l6ZTIiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRo
b3V0LXBsYWNlaG9sZGVyLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2lu
Z0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxz
ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXIt
bXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNl
bGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNl
CitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1z
aXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKyAgICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMuaHRtbAppbmRleCA5
ZDkyZmZiMzRiNzIyNDZmY2RhNzIwN2M0NTczMzdhMWVmMmZmZDRjLi4xM2Q0NGZjZjlkNDc4MDJi
ZDVlYzgzZTZkMTE2Mzk3OWFlYmU3Y2E1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwKQEAgLTEsMjcg
KzEsNzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
IDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYW5kIHZhbHVlTWlzc2luZyBvbiBkaXNh
YmxlZCBlbGVtZW50czwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVkIC8+Cis8
dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVkPjwv
dGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9
InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQg
Lz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlk
PSJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1
aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIi
IHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1z
ZWxlY3RlZC1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiBkaXNhYmxlZCByZXF1aXJlZD4K
KyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9v
cHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVy
LXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0
aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4K
Kzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiIG5h
bWU9InZpY3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9
IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0
IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBsZSIgbmFtZT0idmlj
dGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxl
Y3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxl
Y3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9InZp
Y3RpbSIgbXVsdGlwbGUgZGlzYWJsZWQgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8
L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2Vs
ZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGlt
IiBtdWx0aXBsZSBzaXplPSIyIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0i
IiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3Qg
aWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1l
PSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9u
IHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwv
c2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXpl
Mi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBzaXplPSIyIiBkaXNhYmxlZCByZXF1
aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIi
IHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5
cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4i
K21lc3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAg
ICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1p
c3Npbmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0
eS52YWx1ZU1pc3Npbmcgb2YgZGlzYWJsZWQgZm9ybSBjb250cm9scyB3aXRoIGJsYW5rIHZhbHVl
cywgYmxhbmsgb3B0aW9ucyBzZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4iKTsKIAotICAg
ICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworICAgIHYgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CiAKLSAgICAgICAgbG9nKCghdlsw
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgIXZbMV0udmFsaWRpdHkudmFsdWVNaXNzaW5nKSA/
ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgfQorICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVl
TWlzc2luZ0ZvcigiaW5wdXQiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zv
cigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiknKTsKKyAgICBzaG91bGRCZUZh
bHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIp
Jyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1w
bGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9y
KCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgn
dmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBs
ZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91
dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVy
LXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUi
KScpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0d28gZGlzYWJsZWQg
Zm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCB3aXRoIHNvbWUg
dmFsdWU6Ci12YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIGZhbHNlIGluIGJvdGggY2Fz
ZXMuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQgLz4KLTx0ZXh0
YXJlYSBuYW1lPSJ2aWN0aW0iIGRpc2FibGVkIHJlcXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08
b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQK
aW5kZXggMTg1Nzk0NDQ4NzBkMzk0MDU1ZDNhOTIwMzc0NGM3ZWQ4NDBjOGU4NC4uODM4ODgyODg4
Zjc2MmJiMTQ1MWQxODBhYjI5ZjFmYjg4ODg4Yzg5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQKQEAgLTEsMTIgKzEs
MTQgQEAKLVRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29ycmVj
dGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRzLgor
VGhpcyB0ZXN0IGNoZWNrcyBpZiBjaGVja1ZhbGlkaXR5KCkgcmV0dXJucyBjb3JyZWN0bHkgYSBm
YWxzZSAobWVhbmluZyBlcnJvcikgcmVzdWx0IG9uIGludmFsaWQgZWxlbWVudHMsIGFuZCByZXR1
cm5zIGEgdHJ1ZSByZXN1bHQgb24gYSBibGFuayBidXQgdmFsaWQgZWxlbWVudHMuIEJsYW5rIGJ1
dCBub24tcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9ucyBhcmUgdmFsaWQuCiAKIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KIAogCi0gIAotUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxz
ZQotUEFTUyB2W2ldLmNoZWNrVmFsaWRpdHkoKSBpcyBmYWxzZQotUEFTUyB2W2ldLmNoZWNrVmFs
aWRpdHkoKSBpcyBmYWxzZQorICAgIAorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJpbnB1dC1lbXB0
eSIpIGlzIGZhbHNlCitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoImlucHV0LXBhdHRlcm4tbWlzbWF0
Y2giKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJ0ZXh0YXJlYSIpIGlzIGZhbHNl
CitQQVNTIGNoZWNrVmFsaWRpdHlGb3IoInNlbGVjdC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQ
QVNTIGNoZWNrVmFsaWRpdHlGb3IoInNlbGVjdC1ub24tcGxhY2Vob2xkZXIiKSBpcyB0cnVlCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbAppbmRleCAyODcyZmFkMzVi
ZWU4MmU0NjViZWUxN2VmYmYxMWY1ODBmZjQyY2M5Li42NjJmNmViZmQzMTExZWFmZTJiNzExY2Y4
YjAwMmYxYjA4YmVlOWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNr
VmFsaWRpdHktMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlk
aXR5LTAwMi5odG1sCkBAIC03LDE5ICs3LDMzIEBACiA8Ym9keT4KIDxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgogPGZvcm0gbWV0aG9kPSJnZXQiPgotPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0i
dGV4dCIgcmVxdWlyZWQvPgotPGlucHV0IG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcGF0dGVy
bj0iTG9yZW0gaXBzdW0iIHZhbHVlPSJMb3JlbWlwc3VtIi8+Ci08dGV4dGFyZWEgbmFtZT0idmlj
dGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPGlucHV0IGlkPSJpbnB1dC1lbXB0eSIgbmFtZT0i
dmljdGltIiB0eXBlPSJ0ZXh0IiByZXF1aXJlZC8+Cis8aW5wdXQgaWQ9ImlucHV0LXBhdHRlcm4t
bWlzbWF0Y2giIG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcGF0dGVybj0iTG9yZW0gaXBzdW0i
IHZhbHVlPSJMb3JlbWlwc3VtIi8+Cis8dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0
aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXIi
IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4K
KyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJz
ZWxlY3Qtbm9uLXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9u
IHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwv
c2VsZWN0PgogPC9mb3JtPgogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgotZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJldHVybnMgY29y
cmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlkIGVsZW1lbnRz
LiIpOworICAgIGZ1bmN0aW9uIGNoZWNrVmFsaWRpdHlGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jaGVja1ZhbGlkaXR5KCk7CisgICAgfQogCi12
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwotZm9yIChpID0gMDsgaSA8
IHYubGVuZ3RoOyBpKyspCi0gICAgc2hvdWxkQmUoInZbaV0uY2hlY2tWYWxpZGl0eSgpIiwgImZh
bHNlIik7CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0
eSgpIHJldHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBp
bnZhbGlkIGVsZW1lbnRzLCBhbmQgcmV0dXJucyBhIHRydWUgcmVzdWx0IG9uIGEgYmxhbmsgYnV0
IHZhbGlkIGVsZW1lbnRzLiBCbGFuayBidXQgbm9uLXBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbnMg
YXJlIHZhbGlkLiIpOwogCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBzaG91
bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5Rm9yKCJpbnB1dC1lbXB0eSIpJyk7CisgICAgc2hvdWxk
QmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigiaW5wdXQtcGF0dGVybi1taXNtYXRjaCIpJyk7Cisg
ICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigidGV4dGFyZWEiKScpOworICAgIHNo
b3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoInNlbGVjdC1wbGFjZWhvbGRlciIpJyk7Cisg
ICAgc2hvdWxkQmVUcnVlKCdjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qtbm9uLXBsYWNlaG9sZGVy
IiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJp
YnV0ZS0wMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1h
dHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dAppbmRleCA5YjIwMTQzMThhM2U1MGJkM2VmNWQ0MDAx
MzZjMzAyNDY5MWY4OWNkLi5iOWI1NGI4NzY0YzQ5ZGE2MDE3YTQxN2M3ZThmMzdmZjFjZTY0YWNk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0w
MDEtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0
cmlidXRlLTAwMS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwxMiBAQAotVGhlcmUgYXJlIHR3byBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQuCitUaGVyZSBhcmUgdGhy
ZWUgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBhbGwgcmVxdWlyZWQuCiAKLSAKLVNVQ0NF
U1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlcXVpcmVkRm9yKCJpbnB1
dCIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInRleHRhcmVhIikgaXMgdHJ1ZQorUEFTUyBy
ZXF1aXJlZEZvcigic2VsZWN0IikgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEuaHRtbAppbmRleCAyZjM0YzE2MWFjZjZhM2Y1ZjQwMDA4
NzNmZDgyNjZjMDE3ZmUwMzYwLi44YWVhNTdjMzE2MzU0ZTY3ZGI4OTQwMDZlODcwZDUzNGVmNzM5
NWJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0
ZS0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0
ZS0wMDEuaHRtbApAQCAtMSwyNiArMSwzNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhdHRy
aWJ1dGUgcHJlc2VuY2UgdGVzdDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkIC8+Cis8dGV4
dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Cis8
c2VsZWN0IGlkPSJzZWxlY3QiIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFs
dWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxl
Y3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Cisg
ICAgZnVuY3Rpb24gcmVxdWlyZWRGb3IoaWQpIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKGlkKS5yZXF1aXJlZDsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkg
ewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRlc2NyaXB0aW9uKCJUaGVy
ZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBhbGwgcmVxdWlyZWQuIik7
CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAg
ICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAgICAgIGxv
ZygodlswXS5yZXF1aXJlZCAmJiB2WzFdLnJlcXVpcmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJF
Iik7Ci0gICAgfQorICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoImlucHV0IiknKTsKKyAg
ICBzaG91bGRCZVRydWUoJ3JlcXVpcmVkRm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVU
cnVlKCdyZXF1aXJlZEZvcigic2VsZWN0IiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08
cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJl
ZC48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiByZXF1aXJlZCAvPgotPHRleHRhcmVhIG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9v
bD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3RlZC50eHQKaW5kZXggYWM1
YzBmZmYyMjg2NmUxMTVmZjBjYzQzY2Q0ZGI0OWM4ZTk4ZmJmYS4uYzI1NTYxZDE0Y2M3NjBjMjc3
ODEzOGY3NGM3ZjI0NjVhMjAyNjJjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDItZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEs
MTkgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIG9w
dGlvbmFsLiBUaGV5J3JlIHNldCBhcyByZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0
ZS4KK1RoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGFsbCBvcHRp
b25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUu
CiAKLSAKLVNVQ0NFU1MKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitCZWZvcmUgc2V0
OgorUEFTUyByZXF1aXJlZEZvcigiaW5wdXQiKSBpcyBmYWxzZQorUEFTUyByZXF1aXJlZEZvcigi
dGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyByZXF1aXJlZEZvcigic2VsZWN0IikgaXMgZmFsc2UK
KworQWZ0ZXIgc2V0OgorUEFTUyByZXF1aXJlZEZvcigiaW5wdXQiKSBpcyB0cnVlCitQQVNTIHJl
cXVpcmVkRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInNlbGVjdCIp
IGlzIHRydWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRy
aWJ1dGUtMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0
ZS0wMDIuaHRtbAppbmRleCBhYTg1ZTg5NTRlZTA3ODE4ZDFjMjhiZDU1MjBhOTViMjIxYzc3Yjkw
Li45MjhlMzNmYzgwNTBkM2UyYjRlYTg3NWI2ZmVkZTNkZTA0MjY5M2EzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbApAQCAtMSwz
MiArMSw0NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgogPGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhdHRyaWJ1dGUgSlMgc2V0PC90aXRs
ZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxpbnB1dCBpZD0iaW5wdXQi
IG5hbWU9InZpY3RpbSIgLz4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZpY3RpbSI+
PC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdCIgbmFtZT0idmljdGltIj4KKyAgPG9wdGlv
biB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8
L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+
IjsKKyAgICBmdW5jdGlvbiByZXF1aXJlZEZvcihpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnJlcXVpcmVkOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHRl
c3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZGVzY3JpcHRpb24o
IlRoZXJlIGFyZSB0aHJlZSBmb3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGFsbCBvcHRpb25h
bC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1dGUuIik7
CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAg
ICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwogCi0gICAgICAgIGlm
ICh2WzBdLnJlcXVpcmVkID09IGZhbHNlICYmIHZbMV0ucmVxdWlyZWQgPT0gZmFsc2UpIHsKLSAg
ICAgICAgICAgIHZbMF0ucmVxdWlyZWQgPSB0cnVlOwotICAgICAgICAgICAgdlsxXS5yZXF1aXJl
ZCA9IHRydWU7Ci0gICAgICAgICAgICBsb2cgKCh2WzBdLnJlcXVpcmVkICYmIHZbMV0ucmVxdWly
ZWQpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBsb2coIkZBSUxVUkUiKTsKLSAgICB9CisgICAgZGVidWcoIkJlZm9yZSBzZXQ6
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgncmVxdWlyZWRGb3IoImlucHV0IiknKTsKKyAgICBzaG91
bGRCZUZhbHNlKCdyZXF1aXJlZEZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlRmFsc2Uo
J3JlcXVpcmVkRm9yKCJzZWxlY3QiKScpOworICAgIGRlYnVnKCIiKTsKKworICAgIHZbMF0ucmVx
dWlyZWQgPSB0cnVlOworICAgIHZbMV0ucmVxdWlyZWQgPSB0cnVlOworICAgIHZbMl0ucmVxdWly
ZWQgPSB0cnVlOworCisgICAgZGVidWcoIkFmdGVyIHNldDoiKTsKKyAgICBzaG91bGRCZVRydWUo
J3JlcXVpcmVkRm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigi
dGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoInNlbGVjdCIpJyk7
CisgICAgZGVidWcoIiIpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxwPlRoZXJlIGFyZSB0
d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIG9wdGlvbmFsLiBUaGV5J3JlIHNl
dCBhcyByZXF1aXJlZCB2aWEgcmVxdWlyZWQgRE9NIGF0dHJpYnV0ZS48L3A+Ci08aW5wdXQgbmFt
ZT0idmljdGltIiAvPgotPHRleHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KLTxocj4K
LTxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvc2VsZWN0LWxpdmUtcHNldWRv
LXNlbGVjdG9ycy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3NlbGVjdC1s
aXZlLXBzZXVkby1zZWxlY3RvcnMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzIyMTMzYzVkMjdmYTBiOTI5YzFk
YmZkMjAwM2M4ODlmODhiYzE2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvcmVzb3VyY2VzL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKQEAgLTAsMCAr
MSwxODMgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgcGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2
YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBsaXZlbHkgYXBwbGllZC4iKTsK
KworLy8gU2V0dXAgZm9yIHN0YXRpYyBlbGVtZW50cy4KK3ZhciBmb3JtID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZm9ybScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsKK3Zh
ciBub25Gb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Citkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKG5vbkZvcm0pOworCitmdW5jdGlvbiBtYWtlSW52YWxpZCgpIHsKKyAgICB2
YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7CisgICAgc2VsZWN0
Lm5hbWUgPSAnZm9vJzsKKyAgICBzZWxlY3QucmVxdWlyZWQgPSB0cnVlOworICAgIHNlbGVjdC52
YWx1ZSA9ICcnOworICAgIGZvcm0uYXBwZW5kQ2hpbGQoc2VsZWN0KTsKKyAgICByZXR1cm4gc2Vs
ZWN0OworfQorCitmdW5jdGlvbiBhcHBlbmRPcHRpb24odmFsdWUsIHNlbGVjdCkgeworICAgIHZh
ciBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKKyAgICBvcHRpb24u
dmFsdWUgPSB2YWx1ZTsKKyAgICBvcHRpb24uaW5uZXJUZXh0ID0gdmFsdWU7CisgICAgc2VsZWN0
LmFkZChvcHRpb24pOworICAgIHJldHVybiBvcHRpb247Cit9CisKK2Z1bmN0aW9uIGluc2VydE9w
dGlvbkJlZm9yZSh2YWx1ZSwgc2VsZWN0LCBiZWZvcmUpIHsKKyAgICB2YXIgb3B0aW9uID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CisgICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7
CisgICAgb3B0aW9uLmlubmVyVGV4dCA9IHZhbHVlOworICAgIHNlbGVjdC5hZGQob3B0aW9uLCBi
ZWZvcmUpOworICAgIHJldHVybiBvcHRpb247Cit9CisKK2Z1bmN0aW9uIHJlbW92ZU9wdGlvbihv
cHRpb24sIHNlbGVjdCkgeworICAgIHNlbGVjdC5yZW1vdmUob3B0aW9uKTsKKyAgICByZXR1cm4g
b3B0aW9uOworfQorCitmdW5jdGlvbiBiYWNrZ3JvdW5kT2YoZWwpIHsKKyAgICByZXR1cm4gZG9j
dW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbCwgbnVsbCkuZ2V0UHJvcGVydHlW
YWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpOworfQorCit2YXIgZWxCYWNrZ3JvdW5kID0gJ2JhY2tn
cm91bmRPZihlbCknOwordmFyIGludmFsaWRDb2xvciA9ICdyZ2IoMjU1LCAwLCAwKSc7Cit2YXIg
bm9ybWFsQ29sb3IgPSAncmdiKDI1NSwgMjU1LCAyNTUpJzsKK3ZhciBkaXNhYmxlZENvbG9yID0g
J3JnYigwLCAwLCAwKSc7Cit2YXIgcmVhZE9ubHlDb2xvciA9ICdyZ2IoMCwgMjU1LCAwKScKK3Zh
ciB2YWxpZENvbG9yID0gJ3JnYigwLCAwLCAyNTUpJzsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKy8vICAgICB3aWxsVmFsaWRhdGUgY2hhbmdlCisvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQordmFyIGVsID0gbWFrZUludmFsaWQoKTsKK3ZhciBvMSA9
IGFwcGVuZE9wdGlvbignJywgZWwpOwordmFyIG8yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOwor
bzEuc2VsZWN0ZWQgPSB0cnVlOworLy8gQ29uZmlybSB0aGlzIGVsZW1lbnQgaXMgaW52YWxpZC4K
K2RlYnVnKCdDaGVjayB0aGUgaW5pdGlhbCBzdGF0ZTonKTsKK3Nob3VsZEJlKGVsQmFja2dyb3Vu
ZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIG5hbWU6Jyk7CitlbC5uYW1lID0g
Jyc7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK2VsLm5hbWUgPSAn
YmFyJzsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1Zygn
Q2hhbmdlIGRpc2FibGVkOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRp
b24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0
cnVlOworZWwuZGlzYWJsZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnZGlzYWJs
ZWRDb2xvcicpOworZWwuZGlzYWJsZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnSW5zaWRlL291dHNpZGUgb2YgYSBmb3JtOicpOwor
ZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBw
ZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworbm9uRm9ybS5hcHBlbmRD
aGlsZChlbCk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK2Zvcm0u
YXBwZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7
CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgdmFsdWUgY2hh
bmdlCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorZGVidWcoJ0NoYW5nZSB0
aGUgdmFsdWUgd2l0aCBhIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbjonKTsKK2VsID0gbWFrZUlu
dmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbign
WCcsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3Zh
bGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIHRoZSB2YWx1ZSB3aXRob3V0IGEgcGxh
Y2Vob2xkZXIgbGFiZWwgb3B0aW9uOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBl
bmRPcHRpb24oJ1gnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIuc2VsZWN0
ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworbzEuc2Vs
ZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworCitk
ZWJ1ZygnSW5zZXJ0L3JlbW92ZSBvcHRpb25zOicpOworZWwgPSBtYWtlSW52YWxpZCgpOworbzEg
PSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzEu
c2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7
CitvMyA9IGluc2VydE9wdGlvbkJlZm9yZSgnWScsIGVsLCBlbC5maXJzdENoaWxkKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK3JlbW92ZU9wdGlvbihvMywgZWwpOwor
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitvMyA9IGFwcGVuZE9wdGlv
bignWicsIGVsKTsKK28zLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J3ZhbGlkQ29sb3InKTsKK2VsLmxlbmd0aCA9IDI7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdp
bnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1NldCBhbiBhdHRyaWJ1dGU6IG11bHRpcGxlOicpOwor
ZWwgPSBtYWtlSW52YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBw
ZW5kT3B0aW9uKCdYJywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNr
Z3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitlbC5tdWx0aXBsZSA9IHRydWU7CitzaG91bGRCZShl
bEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitlbC5yZW1vdmVBdHRyaWJ1dGUoJ211bHRpcGxl
Jyk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ1Nl
dCBhbiBhdHRyaWJ1dGU6IHNpemU6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVu
ZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3Rl
ZCA9IHRydWU7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK2VsLnNp
emUgPSAyOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwucmVtb3Zl
QXR0cmlidXRlKCdzaXplJyk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3In
KTsKKworZGVidWcoJ1NlbGVjdEFsbDonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBw
ZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK2VsLm11bHRp
cGxlID0gdHJ1ZTsKK28xLnNlbGVjdGVkID0gZmFsc2U7CitvMi5zZWxlY3RlZCA9IGZhbHNlOwor
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CitlbC5mb2N1cygpOworZG9j
dW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAn
dmFsaWRDb2xvcicpOworZWwubXVsdGlwbGUgPSBmYWxzZTsKK28xLnNlbGVjdGVkID0gZmFsc2U7
CitvMi5zZWxlY3RlZCA9IHRydWU7CisKK2RlYnVnKCdSZXNldDonKTsKK2VsID0gbWFrZUludmFs
aWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcs
IGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlk
Q29sb3InKTsKK2Zvcm0ucmVzZXQoKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRD
b2xvcicpOworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gICAgIENv
bnN0cmFpbnRzIGNoYW5nZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2Rl
YnVnKCdDaGFuZ2UgcmVxdWlyZWQ6Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVu
ZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3Rl
ZCA9IHRydWU7CitlbC5yZXF1aXJlZCA9IGZhbHNlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAn
dmFsaWRDb2xvcicpOworZWwucmVxdWlyZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5k
LCAnaW52YWxpZENvbG9yJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1l
c3NhZ2UuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9u
TWVzc2FnZS5qcwppbmRleCBkNjgyNmRlMTgyZTMxMzc3YWMwYzQ4ZDk0NjhjYjc2YThhNTZmNDcx
Li41YzU2NTQyNzAxNTE0MmVkMmQwNmY0NDQ2MmM3YWNjODU1ZDdhNWYyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2FnZS5qcwor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy92YWxpZGF0aW9uTWVzc2Fn
ZS5qcwpAQCAtMjQsNiArMjQsMTMgQEAgcmVxdWlyZWRUZXh0QXJlYS5yZXF1aXJlZCA9IHRydWU7
CiBmb3JtLmFwcGVuZENoaWxkKHJlcXVpcmVkVGV4dEFyZWEpOwogc2hvdWxkQmUoInJlcXVpcmVk
VGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVlIG1pc3NpbmcnIik7CiAKKy8vIEEg
cmVxdWlyZWQgc2VsZWN0IHdpdGggYW4gZW1wdHkgdmFsdWUKK3ZhciByZXF1aXJlZFNlbGVjdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOworcmVxdWlyZWRTZWxlY3QubmFtZSA9
ICJyZXF1aXJlZFNlbGVjdCI7CityZXF1aXJlZFNlbGVjdC5yZXF1aXJlZCA9IHRydWU7Citmb3Jt
LmFwcGVuZENoaWxkKHJlcXVpcmVkU2VsZWN0KTsKK3Nob3VsZEJlKCJyZXF1aXJlZFNlbGVjdC52
YWxpZGF0aW9uTWVzc2FnZSIsICIndmFsdWUgbWlzc2luZyciKTsKKwogLy8gQSB0eXBlPWVtYWls
IGlucHV0IGZvciB0aGUgInR5cGUgbWlzbWF0Y2giIGZsYWcKIHZhciBlbWFpbElucHV0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKIGVtYWlsSW5wdXQubmFtZSA9ICJlbWFpbElu
cHV0IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNl
dWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVj
dC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkN2NiNzM0
ZWE5MmU5ZjhjNGNiZWIwNWQ2ZjNmMTRmMjdkNjk1NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNTAgQEAKK1RoaXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgOnZh
bGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVkLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ2hlY2sgdGhlIGluaXRpYWwgc3RhdGU6CitQ
QVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgbmFtZToKK1BBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyBpbnZhbGlkQ29sb3IKK0NoYW5nZSBkaXNhYmxlZDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyBkaXNhYmxlZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitJ
bnNpZGUvb3V0c2lkZSBvZiBhIGZvcm06CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxp
ZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgdGhl
IHZhbHVlIHdpdGggYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRpb246CitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorQ2hhbmdlIHRoZSB2YWx1ZSB3aXRob3V0IGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uOgor
UEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVs
KSBpcyB2YWxpZENvbG9yCitJbnNlcnQvcmVtb3ZlIG9wdGlvbnM6CitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xv
cgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK1NldCBhbiBhdHRyaWJ1dGU6IG11bHRpcGxlOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1NldCBhbiBhdHRyaWJ1dGU6IHNpemU6
CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorU2VsZWN0QWxsOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFT
UyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1Jlc2V0OgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK0NoYW5nZSByZXF1aXJlZDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9y
CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAyZTlmODc2NTBjNGQzYmZhYzg5ZDRhODFhYzFkYzU5MTYyNWZmZGIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxl
Y3RvcnMuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbAorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9saXZlLXBzZXVkby1zZWxlY3RvcnMuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0
b3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKaW5kZXggMGUxMmQ4
YTI3MWU1ZGQ4ZjU1M2EyMWQxYTljMmJkN2FiZTVkZDYzMS4uZTkxOTYxZDEwMDlmMzk5MTkwY2Rh
ZGUzMzAwZjkzYWIzNDQ0NjY0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92
YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKQEAgLTYsNiArNiw3IEBAIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFCiBQQVNTIHBhdHRlcm5JbnB1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAn
cGF0dGVybiBtaXNtYXRjaCcKIFBBU1MgcmVxdWlyZWRJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSBp
cyAndmFsdWUgbWlzc2luZycKIFBBU1MgcmVxdWlyZWRUZXh0QXJlYS52YWxpZGF0aW9uTWVzc2Fn
ZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgcmVxdWlyZWRTZWxlY3QudmFsaWRhdGlvbk1lc3Nh
Z2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIGVtYWlsSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2Ug
aXMgJ3R5cGUgbWlzbWF0Y2gnCiBQQVNTIGJ1dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJwogUEFT
UyBhbm9uaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJycKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWxpdmUtcHNldWRvLXNl
bGVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpj
L2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZhODlmYTU4OGI1MWI5YjZjNmRhMDlhZjhjYTY3NDg4Y2EzNzdjYWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNl
bGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
K1RoaXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRoYXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3Vk
byBzZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVkIGJ5IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRT
ZWxlY3RlZEluZGV4QnlVc2VyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ2hh
bmdlIHRoZSB2YWx1ZSBvZiBhIG1lbnVsaXN0IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlV
c2VyOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3Vu
ZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSB0aGUgdmFsdWUgb2YgYSBsaXN0Ym94IHNl
bGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2VyOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZl
LXBzZXVkby1zZWxlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L29i
amMvZG9tLWh0bWwtc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmUxOTQxNjY1MTA1MmQyMTExOGYwOGUyZmYxZTE2MTI1MjdhYzRmZTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1s
aXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbApAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+PC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9mYXN0L2Zvcm1zL3Jl
c291cmNlcy9saXZlLXBzZXVkby1zZWxlY3RvcnMuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBwZXJmb3JtcyBhIGNoZWNrIHRo
YXQgOnZhbGlkLzppbnZhbGlkIENTUyBwc3VkbyBzZWxlY3RvcnMgYXJlIGxpdmVseSBhcHBsaWVk
IGJ5IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyLiIpOworCisvLyBT
ZXR1cCBmb3Igc3RhdGljIGVsZW1lbnRzLgordmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdmb3JtJyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pOworCitmdW5jdGlv
biBtYWtlSW52YWxpZChpZCkgeworICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzZWxlY3QnKTsKKyAgICBzZWxlY3QubmFtZSA9ICdmb28nOworICAgIHNlbGVjdC5yZXF1
aXJlZCA9IHRydWU7CisgICAgaWYgKGlkICE9IHVuZGVmaW5lZCkKKyAgICAgICAgc2VsZWN0Lmlk
ID0gaWQ7CisgICAgc2VsZWN0LnZhbHVlID0gJyc7CisgICAgZm9ybS5hcHBlbmRDaGlsZChzZWxl
Y3QpOworICAgIHJldHVybiBzZWxlY3Q7Cit9CisKK2Z1bmN0aW9uIGFwcGVuZE9wdGlvbih2YWx1
ZSwgc2VsZWN0KSB7CisgICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29w
dGlvbicpOworICAgIG9wdGlvbi52YWx1ZSA9IHZhbHVlOworICAgIG9wdGlvbi5pbm5lclRleHQg
PSB2YWx1ZTsKKyAgICBzZWxlY3QuYWRkKG9wdGlvbik7CisgICAgcmV0dXJuIG9wdGlvbjsKK30K
KworZnVuY3Rpb24gYmFja2dyb3VuZE9mKGVsKSB7CisgICAgcmV0dXJuIGRvY3VtZW50LmRlZmF1
bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWwsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tn
cm91bmQtY29sb3InKTsKK30KKwordmFyIGVsQmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5kT2YoZWwp
JzsKK3ZhciBpbnZhbGlkQ29sb3IgPSAncmdiKDI1NSwgMCwgMCknOwordmFyIG5vcm1hbENvbG9y
ID0gJ3JnYigyNTUsIDI1NSwgMjU1KSc7Cit2YXIgZGlzYWJsZWRDb2xvciA9ICdyZ2IoMCwgMCwg
MCknOwordmFyIHJlYWRPbmx5Q29sb3IgPSAncmdiKDAsIDI1NSwgMCknCit2YXIgdmFsaWRDb2xv
ciA9ICdyZ2IoMCwgMCwgMjU1KSc7CisKK2RlYnVnKCdDaGFuZ2UgdGhlIHZhbHVlIG9mIGEgbWVu
dWxpc3Qgc2VsZWN0IGJ5IHNldFNlbGVjdGVkSW5kZXhCeVVzZXI6Jyk7CitlbCA9IG1ha2VJbnZh
bGlkKCdtZW51bGlzdCcpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5k
T3B0aW9uKCdYJywgZWwpOworb2JqQ0NvbnRyb2xsZXIuc2V0U2VsZWN0RWxlbWVudFNlbGVjdGVk
SW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAxLCBmYWxzZSk7CitzaG91bGRCZShlbEJhY2tncm91
bmQsICd2YWxpZENvbG9yJyk7CitvYmpDQ29udHJvbGxlci5zZXRTZWxlY3RFbGVtZW50U2VsZWN0
ZWRJbmRleEFsbG93aW5nTXVsdGlwbGUoZWwsIDAsIGZhbHNlKTsKK3Nob3VsZEJlKGVsQmFja2dy
b3VuZCwgJ2ludmFsaWRDb2xvcicpOworCitkZWJ1ZygnQ2hhbmdlIHRoZSB2YWx1ZSBvZiBhIGxp
c3Rib3ggc2VsZWN0IGJ5IHNldFNlbGVjdGVkSW5kZXhCeVVzZXI6Jyk7CitlbCA9IG1ha2VJbnZh
bGlkKCdsaXN0Ym94Jyk7CitlbC5tdWx0aXBsZSA9IHRydWU7CitvMSA9IGFwcGVuZE9wdGlvbign
JywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMS5zZWxlY3RlZCA9IGZhbHNl
OworbzIuc2VsZWN0ZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRD
b2xvcicpOworb2JqQ0NvbnRyb2xsZXIuc2V0U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxv
d2luZ011bHRpcGxlKGVsLCAwLCBmYWxzZSk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICd2YWxp
ZENvbG9yJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZiZWI3MTg3NjgxMTUxOWJiYzFiODQ4MmFi
MGYzNzk5ZDNmMWEwOC4uZGVkMTkyYmIxMTk4NTYyZTEwNWNmZmY4Zjk1NDlhOThiNWE2ZTQ4NyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNSBAQAorMjAxMC0xMi0wNiAgRGFpIE1pa3VydWJlICA8ZG1pa3VydWJlQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50ICJyZXF1aXJlZCIgYXR0cmlidXRlIGZvciBzZWxlY3QgdGFncworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAzODAKKworICAgICAgICBU
ZXN0OiBmYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbAorICAgICAg
ICAgICAgICBwbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVk
by1zZWxlY3RvcnMuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyk6IEFk
ZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkgdG8gZW5hYmxlIHZhbGlkaXR5IGNo
ZWNrIGFmdGVyIGNoYW5naW5nLiBObyB0ZXN0cyBmb3IgdGhpcyBjaGFuZ2Ugc2luY2UgdGhpcyBm
dW5jdGlvbiBpcyBub3QgZXhwb3NlZCB0byBKYXZhU2NyaXB0IG9yIGFueSB3ZWIgaW50ZXJmYWNl
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgp
OiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIpOiBBZGRlZCBjYWxs
aW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVj
dEVsZW1lbnQ6OnZhbHVlTWlzc2luZyk6IEFkZGVkIHZhbHVlTWlzc2luZygpIHRvIGNoZWNrIGlm
IHNlbGVjdGluZyBhbiBpbnZhbGlkIG9yIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbiB3aGVuIGEg
dmFsaWQgcmVxdWlyZWQgYXR0cmlidXRlIGlzIHNwZWNpZmllZC4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2VsZWN0SXRlbSk6IEFkZGVkIGNhbGxpbmcgc2V0
TmVlZHNWYWxpZGl0eUNoZWNrKCkuIE5vIHRlc3RzIGZvciB0aGlzIGNoYW5nZSBzaW5jZSBpdCBp
cyBub3QgY2FsbGVkIHlldC4gTG9vayBhdCB0aGUgYnVnIDM2MTc3IGFuZCB0aGUgY2hhbmdlc2V0
IDU2MTgwLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmFkZCk6IEFkZGVk
IGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2VsZWN0RWxlbWVudDo6cmVtb3ZlKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hl
Y2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNv
bnRyb2xTdGF0ZSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBB
ZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxp
ZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQp
OiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24pOiBBZGRlZCBjYWxs
aW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLiBTa2lwcGVkIGFkZGluZyB0ZXN0cyBmb3IgdGhp
cyBjaGFuZ2UgYXMgdG9vIGNvbXBsaWNhdGVkLi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjpzZXRMZW5ndGgpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3Jt
Q29udHJvbCk6IENoZWNrIGlmIHJlcXVpcmVkIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTZWxlY3RFbGVtZW50OjpoYXNQbGFjZWhvbGRlckxhYmVsT3B0aW9uKTogQWRkZWQuCisgICAg
ICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNl
bGVjdEVsZW1lbnQ6OmlzT3B0aW9uYWxGb3JtQ29udHJvbCk6IENoZWNrIGlmIG5vdCByZXF1aXJl
ZC4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbDogQWRkZWQgYSByZXF1aXJl
ZCBhdHRyaWJ1dGUgdG8gc2VsZWN0IGVsZW1lbnRzLi4KKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5
U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5n
KTogQWRkZWQgdmFsdWVNaXNzaW5nIGNoZWNrIGZvciBzZWxlY3QgZWxlbWVudHMgaW50byB0aGUg
Z2xvYmFsIGNoZWNrZXIsIFZhbGlkaXR5U3RhdGU6OnZhbHVlTWlzc2luZygpLgorCiAyMDEwLTEy
LTA3ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRl
eCBjNjgwZTkyZTQwYWE5NTEyYWE4MjdlZTg5YTI3YzBhYWVhY2UzODAwLi5jMjI0NDY0MmVlOTE5
M2E2NjRjODg5MzljMTgwYTExZjY0N2ZkYTZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5j
cHAKQEAgLTc4LDExICs3OCwxMyBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNlbGVjdGVkSW5k
ZXgoKSBjb25zdAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVtcyhIVE1MT3B0
aW9uRWxlbWVudCogZXhjbHVkZUVsZW1lbnQpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6ZGVzZWxl
Y3RJdGVtcyhtX2RhdGEsIHRoaXMsIGV4Y2x1ZGVFbGVtZW50KTsKKyAgICBzZXROZWVkc1ZhbGlk
aXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRl
eChpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxlY3QpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6
c2V0U2VsZWN0ZWRJbmRleChtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBkZXNlbGVjdCwgZmFs
c2UsIGZhbHNlKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJv
b2wgZGVzZWxlY3QsIGJvb2wgZmlyZU9uQ2hhbmdlTm93LCBib29sIGFsbG93TXVsdGlwbGVTZWxl
Y3Rpb24pCkBAIC05MSw2ICs5Myw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVj
dGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0LCBiCiAgICAgLy8g
bW91c2Vkb3duIGV2ZW50cy4gVGhpcyBhbGxvd3MgdGhhdCBzYW1lIGJlaGF2aW9yIHByb2dyYW1t
YXRpY2FsbHkuCiAgICAgaWYgKCFtX2RhdGEudXNlc01lbnVMaXN0KCkpIHsKICAgICAgICAgdXBk
YXRlU2VsZWN0ZWRTdGF0ZShtX2RhdGEsIHRoaXMsIG9wdGlvbkluZGV4LCBhbGxvd011bHRpcGxl
U2VsZWN0aW9uLCBmYWxzZSk7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAg
ICAgICBpZiAoZmlyZU9uQ2hhbmdlTm93KQogICAgICAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7
CiAgICAgICAgIHJldHVybjsKQEAgLTEwNCw2ICsxMDcsNDIgQEAgdm9pZCBIVE1MU2VsZWN0RWxl
bWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9uSW5kZXgsIGJvb2wgZGVzZWxl
Y3QsIGIKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVj
dGVkSW5kZXgobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZpcmVPbkNoYW5n
ZU5vdywgdHJ1ZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Cit9CisKK2Jvb2wgSFRN
TFNlbGVjdEVsZW1lbnQ6Omhhc1BsYWNlaG9sZGVyTGFiZWxPcHRpb24oKSBjb25zdAoreworICAg
IC8vIFRoZSBzZWxlY3QgZWxlbWVudCBoYXMgbm8gcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uIGlm
IGl0IGhhcyBhbiBhdHRyaWJ1dGUgIm11bHRpcGxlIiBzcGVjaWZpZWQgb3IgYSBkaXNwbGF5IHNp
emUgb2Ygbm9uLTEuCisgICAgLy8gCisgICAgLy8gVGhlIGNvbmRpdGlvbiAic2l6ZSgpID4gMSIg
aXMgYWN0dWFsbHkgbm90IGNvbXBsaWFudCB3aXRoIHRoZSBIVE1MNSBzcGVjIGFzIG9mIERlYyAz
LCAyMDEwLiAic2l6ZSgpICE9IDEiIGlzIGNvcnJlY3QuCisgICAgLy8gVXNpbmcgInNpemUoKSA+
IDEiIGhlcmUgYmVjYXVzZSBzaXplKCkgbWF5IGJlIDAgaW4gV2ViS2l0LgorICAgIC8vIFNlZSB0
aGUgZGlzY3Vzc2lvbiBhdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDM4ODcKKyAgICAvLworICAgIC8vICIwIHNpemUoKSIgaGFwcGVucyB3aGVuIGFuIGF0dHJpYnV0
ZSAic2l6ZSIgaXMgYWJzZW50IG9yIGFuIGludmFsaWQgc2l6ZSBhdHRyaWJ1dGUgaXMgc3BlY2lm
aWVkLgorICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIGRpc3BsYXkgc2l6ZSBzaG91bGQgYmUgYXNz
dW1lZCBhcyB0aGUgZGVmYXVsdC4KKyAgICAvLyBUaGUgZGVmYXVsdCBkaXNwbGF5IHNpemUgaXMg
MSBmb3Igbm9uLW11bHRpcGxlIHNlbGVjdCBlbGVtZW50cywgYW5kIDQgZm9yIG11bHRpcGxlIHNl
bGVjdCBlbGVtZW50cy4KKyAgICAvLworICAgIC8vIEZpbmFsbHksIGlmIHNpemUoKSA9PSAwIGFu
ZCBub24tbXVsdGlwbGUsIHRoZSBkaXNwbGF5IHNpemUgY2FuIGJlIGFzc3VtZWQgYXMgMS4KKyAg
ICBpZiAobXVsdGlwbGUoKSB8fCBzaXplKCkgPiAxKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpbnQgbGlzdEluZGV4ID0gb3B0aW9uVG9MaXN0SW5kZXgoMCk7CisgICAgQVNTRVJUKGxp
c3RJbmRleCA+PSAwKTsKKyAgICBpZiAobGlzdEluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBzdGF0aWNfY2FzdDxIVE1MT3B0
aW9uRWxlbWVudCo+KGxpc3RJdGVtcygpW2xpc3RJbmRleF0pOworICAgIHJldHVybiAhb3B0aW9u
LT5kaXNhYmxlZCgpICYmICFsaXN0SW5kZXggJiYgb3B0aW9uLT52YWx1ZSgpLmlzRW1wdHkoKTsK
K30KKworYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6dmFsdWVNaXNzaW5nKCkgY29uc3QKK3sKKyAg
ICBpZiAoIWlzUmVxdWlyZWRGb3JtQ29udHJvbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpbnQgZmlyc3RTZWxlY3Rpb25JbmRleCA9IHNlbGVjdGVkSW5kZXgoKTsKKworICAgIC8v
IElmIGEgbm9uLXBsYWNlaG9sZXIgbGFiZWwgb3B0aW9uIGlzIHNlbGVjdGVkIChmaXJzdFNlbGVj
dGlvbkluZGV4ID4gMCksIGl0J3Mgbm90IHZhbHVlLW1pc3NpbmcuCisgICAgcmV0dXJuIGZpcnN0
U2VsZWN0aW9uSW5kZXggPCAwIHx8ICghZmlyc3RTZWxlY3Rpb25JbmRleCAmJiBoYXNQbGFjZWhv
bGRlckxhYmVsT3B0aW9uKCkpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94
U2VsZWN0SXRlbShpbnQgbGlzdEluZGV4LCBib29sIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBi
b29sIHNoaWZ0LCBib29sIGZpcmVPbkNoYW5nZU5vdykKQEAgLTExMiw2ICsxNTEsNyBAQCB2b2lk
IEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94U2VsZWN0SXRlbShpbnQgbGlzdEluZGV4LCBib29s
IGFsbG93TXVsdGlwbHlTZWxlYwogICAgICAgICBzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGxpc3RU
b09wdGlvbkluZGV4KGxpc3RJbmRleCksIHRydWUsIGZpcmVPbkNoYW5nZU5vdyk7CiAgICAgZWxz
ZSB7CiAgICAgICAgIHVwZGF0ZVNlbGVjdGVkU3RhdGUobV9kYXRhLCB0aGlzLCBsaXN0SW5kZXgs
IGFsbG93TXVsdGlwbHlTZWxlY3Rpb25zLCBzaGlmdCk7CisgICAgICAgIHNldE5lZWRzVmFsaWRp
dHlDaGVjaygpOwogICAgICAgICBpZiAoZmlyZU9uQ2hhbmdlTm93KQogICAgICAgICAgICAgbGlz
dEJveE9uQ2hhbmdlKCk7CiAgICAgfQpAQCAtMTQ0LDYgKzE4NCw3IEBAIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OmFkZChIVE1MRWxlbWVudCAqZWxlbWVudCwgSFRNTEVsZW1lbnQgKmJlZm9yZSwg
RXhjZXB0aW9uCiAgICAgICAgIHJldHVybjsKIAogICAgIGluc2VydEJlZm9yZShlbGVtZW50LCBi
ZWZvcmUsIGVjKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6cmVtb3ZlKGludCBpbmRleCkKQEAgLTE1Niw2ICsxOTcsNyBAQCB2b2lk
IEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoaW50IGluZGV4KQogICAgIEFTU0VSVChpdGVtLT5w
YXJlbnROb2RlKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgaXRlbS0+cGFyZW50Tm9k
ZSgpLT5yZW1vdmVDaGlsZChpdGVtLCBlYyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7
CiB9CiAKIFN0cmluZyBIVE1MU2VsZWN0RWxlbWVudDo6dmFsdWUoKQpAQCAtMTk1LDYgKzIzNyw3
IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYg
dmFsdWUpIGNvbnN0CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xT
dGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVG
b3JtQ29udHJvbFN0YXRlKG1fZGF0YSwgdGhpcywgc3RhdGUpOworICAgIHNldE5lZWRzVmFsaWRp
dHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShBdHRyaWJ1dGUqIGF0dHIpIApAQCAtMjE1LDE0ICsyNTgsMTYgQEAgdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAg
ICAgICAgcmVjYWxjTGlzdEl0ZW1zSWZOZWVkZWQoKTsKIAogICAgICAgICBtX2RhdGEuc2V0U2l6
ZShzaXplKTsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAgICAgIGlmICgo
b2xkVXNlc01lbnVMaXN0ICE9IG1fZGF0YS51c2VzTWVudUxpc3QoKSB8fCAoIW9sZFVzZXNNZW51
TGlzdCAmJiBtX2RhdGEuc2l6ZSgpICE9IG9sZFNpemUpKSAmJiBhdHRhY2hlZCgpKSB7CiAgICAg
ICAgICAgICBkZXRhY2goKTsKICAgICAgICAgICAgIGF0dGFjaCgpOwogICAgICAgICAgICAgc2V0
UmVjYWxjTGlzdEl0ZW1zKCk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUo
KSA9PSBtdWx0aXBsZUF0dHIpCisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbXVsdGlw
bGVBdHRyKSB7CiAgICAgICAgIFNlbGVjdEVsZW1lbnQ6OnBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUo
bV9kYXRhLCB0aGlzLCBhdHRyKTsKLSAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYWNjZXNz
a2V5QXR0cikgeworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKKyAgICB9IGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBhY2Nlc3NrZXlBdHRyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBp
Z25vcmUgZm9yIHRoZSBtb21lbnQKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhbGln
bkF0dHIpIHsKICAgICAgICAgLy8gRG9uJ3QgbWFwICdhbGlnbicgYXR0cmlidXRlLiAgVGhpcyBt
YXRjaGVzIHdoYXQgRmlyZWZveCwgT3BlcmEgYW5kIElFIGRvLgpAQCAtMjU1LDYgKzMwMCw3IEBA
IGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmNhblNlbGVjdEFsbCgpIGNvbnN0CiB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwoKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFs
bChtX2RhdGEsIHRoaXMpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiBSZW5k
ZXJPYmplY3QqIEhUTUxTZWxlY3RFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSog
YXJlbmEsIFJlbmRlclN0eWxlKikKQEAgLTMxNSw2ICszNjEsNyBAQCB2b2lkIEhUTUxTZWxlY3RF
bGVtZW50OjpzZXRSZWNhbGNMaXN0SXRlbXMoKQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVz
ZXQoKQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnJlc2V0KG1fZGF0YSwgdGhpcyk7CisgICAgc2V0
TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCgpCkBAIC0zNTAsNiArMzk3LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6c2V0QWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgoaW50IGluZGV4KQogdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbihib29sIGRlc2VsZWN0T3RoZXJPcHRpb25z
KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24obV9kYXRhLCB0
aGlzLCBkZXNlbGVjdE90aGVyT3B0aW9ucyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7
CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Om1lbnVMaXN0T25DaGFuZ2UoKQpAQCAtNDU4
LDYgKzUwNiw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldExlbmd0aCh1bnNpZ25lZCBu
ZXdMZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQorICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVt
ZW50OjpzY3JvbGxUb1NlbGVjdGlvbigpCkBAIC00NzEsNCArNTIwLDkgQEAgdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvVHJlZShib29sIGRlZXApCiAgICAgSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZTo6aW5zZXJ0ZWRJbnRvVHJlZShkZWVwKTsKIH0KIAorYm9vbCBI
VE1MU2VsZWN0RWxlbWVudDo6aXNSZXF1aXJlZEZvcm1Db250cm9sKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gcmVxdWlyZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmgKaW5kZXggYTNiNDQ2MGQ0YmM5MGVmOTg4ZGQ2ZWIwNzEzYTlmYjlmODI1MDMzMi4uZmMz
MjY1OWE5ZWU0MGI0MGQ4ZmFjMTBjMjRkZDE5NjQxMTc5NWY3MSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgKQEAgLTQzLDYgKzQzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRT
ZWxlY3RlZEluZGV4KGludCBpbmRleCwgYm9vbCBkZXNlbGVjdCA9IHRydWUpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGludCBpbmRleCwgYm9vbCBkZXNlbGVjdCA9
IHRydWUsIGJvb2wgZmlyZU9uQ2hhbmdlTm93ID0gZmFsc2UsIGJvb2wgYWxsb3dNdWx0aXBsZVNl
bGVjdGlvbiA9IGZhbHNlKTsKIAorICAgIC8vIEZvciBWYWxpZGl0eVN0YXRlCisgICAgYm9vbCB2
YWx1ZU1pc3NpbmcoKSBjb25zdDsKKwogICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBpbnQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5zaXplKCk7IH0KQEAg
LTEzNCw3ICsxMzcsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZElu
dG9UcmVlKGJvb2wpOwogCi0gICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1D
b250cm9sKCkgY29uc3QgeyByZXR1cm4gIWlzUmVxdWlyZWRGb3JtQ29udHJvbCgpOyB9CisgICAg
dmlydHVhbCBib29sIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpIGNvbnN0OworCisgICAgYm9vbCBo
YXNQbGFjZWhvbGRlckxhYmVsT3B0aW9uKCkgY29uc3Q7CiAKICAgICBTZWxlY3RFbGVtZW50RGF0
YSBtX2RhdGE7CiAgICAgQ29sbGVjdGlvbkNhY2hlIG1fY29sbGVjdGlvbkluZm87CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAyZTUzYmNhYTZjNjM3MDgxNDY3ZjE1NjA2NmQwZWNh
YTg1MjdiNzI3Li5mNWFjNjliMmY4MWMzOTMwODQxMWY2ZGI4ZWYwYTZmNDM1OWFmYWYxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ5LDYgKzQ5LDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOwogICAgICAg
ICBhdHRyaWJ1dGUgYm9vbGVhbiBtdWx0aXBsZTsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gYm9vbGVhbiByZXF1aXJlZDsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2l6ZTsKICAg
ICAgICAgCiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgYWRkKGluIEhUTUxFbGVtZW50IGVs
ZW1lbnQsIGluIEhUTUxFbGVtZW50IGJlZm9yZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgYi9XZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5jcHAKaW5kZXggMmZiMWUyYzUwODQ3NDRhZTM2MjBhNmE0ODQ2MDY5N2VkYjcx
OTRkOC4uMDU2NTAzNWFkNTFjY2EzZmY5NmVjMDMwMDk4NzY4MzdlNmJlMzQxZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9WYWxp
ZGl0eVN0YXRlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxU
cmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTEwNSw2ICsx
MDYsOSBAQCB2b2lkIFZhbGlkaXR5U3RhdGU6OnNldEN1c3RvbUVycm9yTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiBib29sIFZhbGlkaXR5U3RhdGU6OnZhbHVlTWlzc2luZygpIGNvbnN0
CiB7CiAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KG1fY29udHJvbCk7
CisgICAgaWYgKCFlbGVtZW50LT53aWxsVmFsaWRhdGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCiAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7CiAgICAgICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVs
ZW1lbnQpOwogICAgICAgICByZXR1cm4gaW5wdXQtPnZhbHVlTWlzc2luZyhpbnB1dC0+dmFsdWUo
KSk7CkBAIC0xMTMsNiArMTE3LDEwIEBAIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5n
KCkgY29uc3QKICAgICAgICAgSFRNTFRleHRBcmVhRWxlbWVudCogdGV4dEFyZWEgPSBzdGF0aWNf
Y2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZWxlbWVudCk7CiAgICAgICAgIHJldHVybiB0ZXh0
QXJlYS0+dmFsdWVNaXNzaW5nKHRleHRBcmVhLT52YWx1ZSgpKTsKICAgICB9CisgICAgaWYgKGVs
ZW1lbnQtPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkgeworICAgICAgICBIVE1MU2VsZWN0RWxlbWVu
dCogc2VsZWN0ID0gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50KTsKKyAg
ICAgICAgcmV0dXJuIHNlbGVjdC0+dmFsdWVNaXNzaW5nKCk7CisgICAgfQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75863</attachid>
            <date>2010-12-07 19:56:21 -0800</date>
            <delta_ts>2010-12-08 21:52:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101208125633.patch</filename>
            <type>text/plain</type>
            <size>56004</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YjBiNTliMjY5MTYwYzQ5ZDc5NzA2NjVlNWQ0NjA3MTExZmQ4YzE3Li4xMmZiMGE3
NjE3ZTkyMGEyOTU5MDkwZGZlNWNiOWEwMThkOTZhOWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMTItMDYgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9v
YmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1
ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTItMDcgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlYmFzZWxpbmUgR1RL
KyByZXN1bHRzIGFmdGVyIHI3MzM4NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4
dAppbmRleCBiMDY5YTc0ZTA1ZGU1MWUzNzdjMzBjMDU4NWVmNTU1NGQ0YWZjYWFmLi4xMWY0NWFm
OWZjOTNjMGRjN2I1Y2I1YzQ2ZTczMTJkYzU5YzFkMmIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjQgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250
cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCBibGFuazogdmFsaWRpdHkudmFs
dWVNaXNzaW5nIHNob3VsZCBiZSB0cnVlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tz
IHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIGJsYW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBz
ZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4KIAotIAotU1VDQ0VTUworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpIGlzIHRydWUK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlz
c2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIikgaXMgZmFsc2UKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlw
bGUiKSBpcyB0cnVlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNl
bGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMg
dHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVj
dGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtb3B0Z3JvdXAiKSBpcyBmYWxzZQorUEFTUyB2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC1kaXNhYmxlZC1vcHRpb24iKSBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAgICAgIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAxLmh0bWwKaW5kZXggZGM4ODg3OTI5NDY0YjgxNGY1MjZmMDMzMTZmMGI1MTNm
NGE0MzFiNS4uNjA4Yzg5ZTZmMjIzYjRmMzljNzg3NDIzYzQ1NGNlZmFlODYwODYzNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLTAwMS5odG1sCkBAIC0xLDI3ICsxLDk0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJlcXVpcmVk
IGFuZCBiYXNpYyB2YWx1ZU1pc3Npbmc8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGltIiByZXF1aXJlZC8+Cis8
dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+
Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm8tb3B0aW9uIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgor
PC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9w
dGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
d2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3Nl
bGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIgbmFt
ZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3Rl
ZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3Qg
aWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9
IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24g
dmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUt
c2VsZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxv
cHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxl
Y3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBs
ZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBz
ZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxz
ZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9
InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlk
PSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0
aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9u
IHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtl
LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRp
cGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cisg
IDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGlt
IiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0
aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3Qg
aWQ9InNlbGVjdC1vcHRncm91cCIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGdyb3Vw
IGxhYmVsPSIxIj4KKyAgICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDwvb3B0Z3Jv
dXA+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBp
ZD0ic2VsZWN0LWRpc2FibGVkLW9wdGlvbiIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9w
dGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5Y
PC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21l
c3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAg
ICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Np
bmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52
YWx1ZU1pc3Npbmcgd2l0aCBibGFuayB2YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9y
IG5vdGhpbmcgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZp
Y3RpbSIpOwogCi0gICAgICAgIGxvZygodlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgdlsx
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICB9
CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoImlucHV0IiknKTsKKyAgICBzaG91
bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIiknKTsKKyAgICBzaG91bGRCZVRy
dWUoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9s
ZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFj
ZWhvbGRlci1zZWxlY3RlZC1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxk
QmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLW11bHRpcGxlIikn
KTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNl
aG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKScpOwor
ICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1z
aXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNl
aG9sZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3Np
bmdGb3IoInNlbGVjdC1vcHRncm91cCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3QtZGlzYWJsZWQtb3B0aW9uIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBy
ZXF1aXJlZCBhbmQgYmxhbms6Ci12YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIHRydWUg
aW4gYm90aCBjYXNlcy48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiByZXF1aXJlZC8+Ci08dGV4
dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJj
b25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5n
LTAwMi1leHBlY3RlZC50eHQKaW5kZXggMzYwNjliODUzYzkxMjljNDU5ZWU3YzAzZjZiN2UzNTg5
ZTQzYWFhNC4uYmNiMmE4NDQyMjVmZmE5NmQ4Njk0NTE4MWViNzM0NzdkNzc3M2YyNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDE5IEBACi1UaGVyZSBh
cmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZCBhbmQgd2l0
aCBzb21lIHZhbHVlOiB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIGZhbHNlIGluIGJv
dGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIHNv
bWUgdmFsdWVzIG9yIG9wdGlvbnMgd2l0aCBzb21lIHZhbHVlcyBzZWxlY3RlZC4KIAotIAotU1VD
Q0VTUworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJpbnB1dCIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKSBpcyBm
YWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLXBsYWNlaG9sZGVyIikgaXMg
ZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhv
bGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhv
dXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNT
IHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBs
ZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFj
ZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigi
c2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwKaW5kZXggNmYwNmY5ZjQzNjQ1ZjQ5Y2MzM2Y3ODBiNWFm
OTYyYjE0N2E3ZTgzNS4uNzA1ZjAyMjNlNjZmYzBiOTgxNmIzNjE2OGYzODkzMmVlYjE4YjdiZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
dmFsdWVNaXNzaW5nLTAwMi5odG1sCkBAIC0xLDI3ICsxLDY5IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJl
cXVpcmVkIGFuZCBiYXNpYyB2YWx1ZU1pc3NpbmcgMjwvdGl0bGU+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIHZhbHVl
PSJzb21ldGhpbmciIHJlcXVpcmVkLz4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZp
Y3RpbSIgcmVxdWlyZWQ+c29tZXRoaW5nPC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdC13
aXRoLXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVl
PSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKzwvc2VsZWN0
PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKyAgPG9w
dGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aC1mYWtl
LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJlcXVpcmVkPgorICA8
b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlv
bj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRl
ci1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVj
dD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5h
bWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAg
PG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0
IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiBuYW1lPSJ2aWN0
aW0iIG11bHRpcGxlIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9v
cHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBt
dWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0
aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZp
Y3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNl
bGVjdGVkPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+CiA8c2Ny
aXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1
bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rp
b24gdmFsdWVNaXNzaW5nRm9yKGlkKSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCkudmFsaWRpdHkudmFsdWVNaXNzaW5nOwogICAgIH0KIAotICAgIGZ1bmN0aW9u
IHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIHdpdGggc29tZSB2YWx1
ZXMgb3Igb3B0aW9ucyB3aXRoIHNvbWUgdmFsdWVzIHNlbGVjdGVkLiIpOwogCi0gICAgICAgIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKIAotICAgICAgICBsb2coKCF2WzBdLnZhbGlk
aXR5LnZhbHVlTWlzc2luZyAmJiAhdlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NF
U1MiIDogIkZBSUxVUkUiKTsKLSAgICB9CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5n
Rm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJ0ZXh0
YXJlYSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0
aC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIiknKTsKKyAgICBz
aG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vo
b2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRp
cGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRo
LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2Uo
J3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1t
dWx0aXBsZSIpJyk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIHdpdGggc29tZSB2
YWx1ZToKLXZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNl
cy48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiB2YWx1ZT0ic29tZXRoaW5nIiByZXF1aXJlZC8+
Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD5zb21ldGhpbmc8L3RleHRhcmVhPgot
PGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNz
aW5nLTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKaW5kZXggZGZlMzM5ODY5MGUxOWJmMzJl
YTIyMDBmYzQxNThmYTllYWIzODU3Mi4uNjNiZGNjMTI4MzI4NzVkNjUzODk0YWVkMGY1OTBmMjZl
N2Q3NDgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDIyIEBACi1UaGVyZSBhcmUgdHdvIGRpc2FibGVkIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxv
dywgYm90aCByZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOiB2YWxpZGl0eS52YWx1ZU1pc3Np
bmcgc2hvdWxkIGJlIGZhbHNlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlk
aXR5LnZhbHVlTWlzc2luZyBvZiBkaXNhYmxlZCBmb3JtIGNvbnRyb2xzIHdpdGggYmxhbmsgdmFs
dWVzLCBibGFuayBvcHRpb25zIHNlbGVjdGVkLCBvciBub3RoaW5nIHNlbGVjdGVkLgogCi0gCi1T
VUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoImlucHV0IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vLW9wdGlvbiIpIGlzIGZhbHNl
CitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIikgaXMg
ZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVj
dGVkLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91
dC1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIikgaXMgZmFsc2UK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11
bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxl
Y3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6
ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy5odG1sCmluZGV4IDlk
OTJmZmIzNGI3MjI0NmZjZGE3MjA3YzQ1NzMzN2ExZWYyZmZkNGMuLjllYjBmNjNiNzJmNGNkZGQ3
Y2I4NGQwMDIwYzVmN2VhMjMzNzE2ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMuaHRtbApAQCAtMSwyNyAr
MSw4MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgog
PGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhbmQgdmFsdWVNaXNzaW5nIG9uIGRpc2Fi
bGVkIGVsZW1lbnRzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxpbnB1dCBpZD0iaW5wdXQiIG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQgLz4KKzx0
ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+PC90
ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdC1uby1vcHRpb24iIG5hbWU9InZpY3RpbSIgZGlz
YWJsZWQgcmVxdWlyZWQ+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRl
ci1zZWxlY3RlZCIgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3Nl
bGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0
aW0iIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIGRp
c2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRp
b24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdp
dGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIgc2l6ZT0iMiIgZGlzYWJsZWQg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1
ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxl
Y3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJlZD4K
KyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8
L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11
bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0
aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4K
Kzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1t
dWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9w
dGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+
Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRp
cGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgor
ICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwv
c2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6
ZTItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgZGlzYWJsZWQgcmVx
dWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0i
WCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtl
LXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9
IjIiIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5ndWFn
ZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2co
bWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlu
bmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHZhbHVlTWlz
c2luZ0ZvcihpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LnZhbGlkaXR5LnZhbHVlTWlzc2luZzsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewot
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyBvZiBkaXNhYmxlZCBmb3JtIGNvbnRyb2xz
IHdpdGggYmxhbmsgdmFsdWVzLCBibGFuayBvcHRpb25zIHNlbGVjdGVkLCBvciBub3RoaW5nIHNl
bGVjdGVkLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmlj
dGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKIAot
ICAgICAgICBsb2coKCF2WzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyAmJiAhdlsxXS52YWxpZGl0
eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICB9CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
Jyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFs
c2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2lu
Z0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXpl
Mi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9s
ZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVy
ZSBhcmUgdHdvIGRpc2FibGVkIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1
aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBi
ZSBmYWxzZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIGRpc2FibGVk
IHJlcXVpcmVkIC8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJlZD48
L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRp
dHktMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0
eS0wMDItZXhwZWN0ZWQudHh0CmluZGV4IDE4NTc5NDQ0ODcwZDM5NDA1NWQzYTkyMDM3NDRjN2Vk
ODQwYzhlODQuLjgzODg4Mjg4OGY3NjJiYjE0NTFkMTgwYWIyOWYxZmI4ODg4OGM4OTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0
ZWQudHh0CkBAIC0xLDEyICsxLDE0IEBACi1UaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRp
dHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQgb24g
aW52YWxpZCBlbGVtZW50cy4KK1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJl
dHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlk
IGVsZW1lbnRzLCBhbmQgcmV0dXJucyBhIHRydWUgcmVzdWx0IG9uIGEgYmxhbmsgYnV0IHZhbGlk
IGVsZW1lbnRzLiBCbGFuayBidXQgbm9uLXBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbnMgYXJlIHZh
bGlkLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotICAKLVBBU1MgdltpXS5jaGVj
a1ZhbGlkaXR5KCkgaXMgZmFsc2UKLVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UK
LVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKKyAgICAKK1BBU1MgY2hlY2tWYWxp
ZGl0eUZvcigiaW5wdXQtZW1wdHkiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJp
bnB1dC1wYXR0ZXJuLW1pc21hdGNoIikgaXMgZmFsc2UKK1BBU1MgY2hlY2tWYWxpZGl0eUZvcigi
dGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3QtcGxhY2Vo
b2xkZXIiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qtbm9uLXBsYWNl
aG9sZGVyIikgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRp
dHktMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0
bWwKaW5kZXggMjg3MmZhZDM1YmVlODJlNDY1YmVlMTdlZmJmMTFmNTgwZmY0MmNjOS4uNjYyZjZl
YmZkMzExMWVhZmUyYjcxMWNmOGIwMDJmMWIwOGJlZTlkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbApAQCAtNywxOSArNywzMyBAQAogPGJvZHk+
CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxmb3JtIG1ldGhvZD0iZ2V0Ij4KLTxpbnB1dCBu
YW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkLz4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0i
IHR5cGU9InRleHQiIHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIvPgot
PHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KKzxpbnB1dCBpZD0i
aW5wdXQtZW1wdHkiIG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVxdWlyZWQvPgorPGlucHV0
IGlkPSJpbnB1dC1wYXR0ZXJuLW1pc21hdGNoIiBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHBh
dHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIvPgorPHRleHRhcmVhIGlkPSJ0
ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBpZD0i
c2VsZWN0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2Vs
ZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbi1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiBy
ZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVl
PSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KIDwvZm9ybT4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFs
aWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQg
b24gaW52YWxpZCBlbGVtZW50cy4iKTsKKyAgICBmdW5jdGlvbiBjaGVja1ZhbGlkaXR5Rm9yKGlk
KSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hlY2tWYWxp
ZGl0eSgpOworICAgIH0KIAotdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0i
KTsKLWZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQotICAgIHNob3VsZEJlKCJ2W2ldLmNo
ZWNrVmFsaWRpdHkoKSIsICJmYWxzZSIpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hl
Y2tzIGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5n
IGVycm9yKSByZXN1bHQgb24gaW52YWxpZCBlbGVtZW50cywgYW5kIHJldHVybnMgYSB0cnVlIHJl
c3VsdCBvbiBhIGJsYW5rIGJ1dCB2YWxpZCBlbGVtZW50cy4gQmxhbmsgYnV0IG5vbi1wbGFjZWhv
bGRlciBsYWJlbCBvcHRpb25zIGFyZSB2YWxpZC4iKTsKIAotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigiaW5wdXQtZW1w
dHkiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoImlucHV0LXBhdHRl
cm4tbWlzbWF0Y2giKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoInRl
eHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qt
cGxhY2Vob2xkZXIiKScpOworICAgIHNob3VsZEJlVHJ1ZSgnY2hlY2tWYWxpZGl0eUZvcigic2Vs
ZWN0LW5vbi1wbGFjZWhvbGRlciIpJyk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKaW5kZXggOWIyMDE0
MzE4YTNlNTBiZDNlZjVkNDAwMTM2YzMwMjQ2OTFmODljZC4uYjliNTRiODc2NGM0OWRhNjAxN2E0
MTdjN2U4ZjM3ZmYxY2U2NGFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
ZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTIg
QEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVp
cmVkLgorVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYWxsIHJl
cXVpcmVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZXF1aXJlZEZvcigiaW5wdXQiKSBpcyB0cnVlCitQQVNTIHJlcXVpcmVkRm9yKCJ0ZXh0YXJl
YSIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInNlbGVjdCIpIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKaW5kZXggMmYz
NGMxNjFhY2Y2YTNmNWY0MDAwODczZmQ4MjY2YzAxN2ZlMDM2MC4uOGFlYTU3YzMxNjM1NGU2N2Ri
ODk0MDA2ZTg3MGQ1MzRlZjczOTViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKQEAgLTEsMjYgKzEsMzQgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8
dGl0bGU+cmVxdWlyZWQgYXR0cmlidXRlIHByZXNlbmNlIHRlc3Q8L3RpdGxlPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGlt
IiByZXF1aXJlZCAvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1
aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBpZD0ic2VsZWN0IiBuYW1lPSJ2aWN0aW0iIHJlcXVp
cmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9Ilgi
Plg8L29wdGlvbj4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIr
bWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHJlcXVpcmVkRm9yKGlkKSB7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkucmVxdWlyZWQ7CiAgICAgfQogCi0g
ICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBkZXNjcmlwdGlvbigiVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxv
dywgYWxsIHJlcXVpcmVkLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKIAotICAgICAgICBsb2coKHZbMF0ucmVxdWlyZWQgJiYgdlsxXS5yZXF1aXJlZCkgPyAi
U1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVk
Rm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigidGV4dGFyZWEi
KScpOworICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoInNlbGVjdCIpJyk7CisKKyAgICB2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMg
YmVsb3csIGJvdGggcmVxdWlyZWQuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQg
Lz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08
b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDItZXhw
ZWN0ZWQudHh0CmluZGV4IGFjNWMwZmZmMjI4NjZlMTE1ZmYwY2M0M2NkNGRiNDljOGU5OGZiZmEu
LmMyNTU2MWQxNGNjNzYwYzI3NzgxMzhmNzRjN2YyNDY1YTIwMjYyYzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDE5IEBACi1UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVt
ZW50cyBiZWxvdywgYm90aCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJl
cXVpcmVkIERPTSBhdHRyaWJ1dGUuCitUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1l
bnRzIGJlbG93LCBhbGwgb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSByZXF1
aXJlZCBET00gYXR0cmlidXRlLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworQmVmb3JlIHNldDoKK1BBU1MgcmVxdWlyZWRGb3IoImlucHV0IikgaXMgZmFsc2UK
K1BBU1MgcmVxdWlyZWRGb3IoInRleHRhcmVhIikgaXMgZmFsc2UKK1BBU1MgcmVxdWlyZWRGb3Io
InNlbGVjdCIpIGlzIGZhbHNlCisKK0FmdGVyIHNldDoKK1BBU1MgcmVxdWlyZWRGb3IoImlucHV0
IikgaXMgdHJ1ZQorUEFTUyByZXF1aXJlZEZvcigidGV4dGFyZWEiKSBpcyB0cnVlCitQQVNTIHJl
cXVpcmVkRm9yKCJzZWxlY3QiKSBpcyB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLmh0bWwKaW5kZXggYWE4NWU4OTU0ZWUwNzgxOGQxYzI4
YmQ1NTIwYTk1YjIyMWM3N2I5MC4uOTI4ZTMzZmM4MDUwZDNlMmI0ZWE4NzViNmZlZGUzZGUwNDI2
OTNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1
dGUtMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1
dGUtMDAyLmh0bWwKQEAgLTEsMzIgKzEsNDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYXR0
cmlidXRlIEpTIHNldDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIC8+Cis8dGV4dGFyZWEgaWQ9InRleHRh
cmVhIiBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QiIG5hbWU9
InZpY3RpbSI+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8
bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rpb24gcmVxdWlyZWRGb3IoaWQpIHsKKyAg
ICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5yZXF1aXJlZDsKICAgICB9
CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGRlc2NyaXB0aW9uKCJUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1lbnRz
IGJlbG93LCBhbGwgb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSByZXF1aXJl
ZCBET00gYXR0cmlidXRlLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKIAotICAgICAgICBpZiAodlswXS5yZXF1aXJlZCA9PSBmYWxzZSAmJiB2WzFdLnJlcXVp
cmVkID09IGZhbHNlKSB7Ci0gICAgICAgICAgICB2WzBdLnJlcXVpcmVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgIHZbMV0ucmVxdWlyZWQgPSB0cnVlOwotICAgICAgICAgICAgbG9nICgodlswXS5yZXF1
aXJlZCAmJiB2WzFdLnJlcXVpcmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9nKCJGQUlMVVJFIik7Ci0gICAgfQorICAg
IGRlYnVnKCJCZWZvcmUgc2V0OiIpOworICAgIHNob3VsZEJlRmFsc2UoJ3JlcXVpcmVkRm9yKCJp
bnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgncmVxdWlyZWRGb3IoInRleHRhcmVhIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCdyZXF1aXJlZEZvcigic2VsZWN0IiknKTsKKyAgICBkZWJ1Zygi
Iik7CisKKyAgICB2WzBdLnJlcXVpcmVkID0gdHJ1ZTsKKyAgICB2WzFdLnJlcXVpcmVkID0gdHJ1
ZTsKKyAgICB2WzJdLnJlcXVpcmVkID0gdHJ1ZTsKKworICAgIGRlYnVnKCJBZnRlciBzZXQ6Iik7
CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigiaW5wdXQiKScpOworICAgIHNob3VsZEJl
VHJ1ZSgncmVxdWlyZWRGb3IoInRleHRhcmVhIiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVp
cmVkRm9yKCJzZWxlY3QiKScpOworICAgIGRlYnVnKCIiKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBv
cHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1
dGUuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0i
PjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2Vz
L3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMy
MjEzM2M1ZDI3ZmEwYjkyOWMxZGJmZDIwMDNjODg5Zjg4YmMxNjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmpzCkBAIC0wLDAgKzEsMTgzIEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHBlcmZv
cm1zIGEgY2hlY2sgdGhhdCA6dmFsaWQvOmludmFsaWQgQ1NTIHBzdWRvIHNlbGVjdG9ycyBhcmUg
bGl2ZWx5IGFwcGxpZWQuIik7CisKKy8vIFNldHVwIGZvciBzdGF0aWMgZWxlbWVudHMuCit2YXIg
Zm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZm9ybSk7Cit2YXIgbm9uRm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChub25Gb3JtKTsKKworZnVuY3Rpb24gbWFr
ZUludmFsaWQoKSB7CisgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nl
bGVjdCcpOworICAgIHNlbGVjdC5uYW1lID0gJ2Zvbyc7CisgICAgc2VsZWN0LnJlcXVpcmVkID0g
dHJ1ZTsKKyAgICBzZWxlY3QudmFsdWUgPSAnJzsKKyAgICBmb3JtLmFwcGVuZENoaWxkKHNlbGVj
dCk7CisgICAgcmV0dXJuIHNlbGVjdDsKK30KKworZnVuY3Rpb24gYXBwZW5kT3B0aW9uKHZhbHVl
LCBzZWxlY3QpIHsKKyAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0
aW9uJyk7CisgICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7CisgICAgb3B0aW9uLmlubmVyVGV4dCA9
IHZhbHVlOworICAgIHNlbGVjdC5hZGQob3B0aW9uKTsKKyAgICByZXR1cm4gb3B0aW9uOworfQor
CitmdW5jdGlvbiBpbnNlcnRPcHRpb25CZWZvcmUodmFsdWUsIHNlbGVjdCwgYmVmb3JlKSB7Cisg
ICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOworICAgIG9w
dGlvbi52YWx1ZSA9IHZhbHVlOworICAgIG9wdGlvbi5pbm5lclRleHQgPSB2YWx1ZTsKKyAgICBz
ZWxlY3QuYWRkKG9wdGlvbiwgYmVmb3JlKTsKKyAgICByZXR1cm4gb3B0aW9uOworfQorCitmdW5j
dGlvbiByZW1vdmVPcHRpb24ob3B0aW9uLCBzZWxlY3QpIHsKKyAgICBzZWxlY3QucmVtb3ZlKG9w
dGlvbik7CisgICAgcmV0dXJuIG9wdGlvbjsKK30KKworZnVuY3Rpb24gYmFja2dyb3VuZE9mKGVs
KSB7CisgICAgcmV0dXJuIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWws
IG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKTsKK30KKwordmFyIGVs
QmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5kT2YoZWwpJzsKK3ZhciBpbnZhbGlkQ29sb3IgPSAncmdi
KDI1NSwgMCwgMCknOwordmFyIG5vcm1hbENvbG9yID0gJ3JnYigyNTUsIDI1NSwgMjU1KSc7Cit2
YXIgZGlzYWJsZWRDb2xvciA9ICdyZ2IoMCwgMCwgMCknOwordmFyIHJlYWRPbmx5Q29sb3IgPSAn
cmdiKDAsIDI1NSwgMCknCit2YXIgdmFsaWRDb2xvciA9ICdyZ2IoMCwgMCwgMjU1KSc7CisKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgd2lsbFZhbGlkYXRlIGNo
YW5nZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZhciBlbCA9IG1ha2VJ
bnZhbGlkKCk7Cit2YXIgbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK3ZhciBvMiA9IGFwcGVu
ZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKKy8vIENvbmZpcm0gdGhpcyBl
bGVtZW50IGlzIGludmFsaWQuCitkZWJ1ZygnQ2hlY2sgdGhlIGluaXRpYWwgc3RhdGU6Jyk7Citz
aG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5nZSBu
YW1lOicpOworZWwubmFtZSA9ICcnOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENv
bG9yJyk7CitlbC5uYW1lID0gJ2Jhcic7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlk
Q29sb3InKTsKKworZGVidWcoJ0NoYW5nZSBkaXNhYmxlZDonKTsKK2VsID0gbWFrZUludmFsaWQo
KTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVs
KTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK2VsLmRpc2FibGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVs
QmFja2dyb3VuZCwgJ2Rpc2FibGVkQ29sb3InKTsKK2VsLmRpc2FibGVkID0gZmFsc2U7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0luc2lkZS9vdXRz
aWRlIG9mIGEgZm9ybTonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9u
KCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK25vbkZvcm0uYXBwZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52
YWxpZENvbG9yJyk7Citmb3JtLmFwcGVuZENoaWxkKGVsKTsKK3Nob3VsZEJlKGVsQmFja2dyb3Vu
ZCwgJ2ludmFsaWRDb2xvcicpOworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gICAgIHZhbHVlIGNoYW5nZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK2RlYnVnKCdDaGFuZ2UgdGhlIHZhbHVlIHdpdGggYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRp
b246Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOwor
bzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMi5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRC
ZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5nZSB0aGUg
dmFsdWUgd2l0aG91dCBhIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbjonKTsKK2VsID0gbWFrZUlu
dmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24o
JycsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3Zh
bGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J3ZhbGlkQ29sb3InKTsKKworZGVidWcoJ0luc2VydC9yZW1vdmUgb3B0aW9uczonKTsKK2VsID0g
bWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9w
dGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3Vu
ZCwgJ2ludmFsaWRDb2xvcicpOworbzMgPSBpbnNlcnRPcHRpb25CZWZvcmUoJ1knLCBlbCwgZWwu
Zmlyc3RDaGlsZCk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CityZW1v
dmVPcHRpb24obzMsIGVsKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicp
OworbzMgPSBhcHBlbmRPcHRpb24oJ1onLCBlbCk7CitvMy5zZWxlY3RlZCA9IHRydWU7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitlbC5sZW5ndGggPSAyOworc2hvdWxk
QmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdTZXQgYW4gYXR0cmli
dXRlOiBtdWx0aXBsZTonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9u
KCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworZWwubXVsdGlwbGUg
PSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwucmVtb3Zl
QXR0cmlidXRlKCdtdWx0aXBsZScpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENv
bG9yJyk7CisKK2RlYnVnKCdTZXQgYW4gYXR0cmlidXRlOiBzaXplOicpOworZWwgPSBtYWtlSW52
YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdY
JywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52
YWxpZENvbG9yJyk7CitlbC5zaXplID0gMjsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlk
Q29sb3InKTsKK2VsLnJlbW92ZUF0dHJpYnV0ZSgnc2l6ZScpOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdTZWxlY3RBbGw6Jyk7CitlbCA9IG1ha2VJ
bnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24o
J1gnLCBlbCk7CitlbC5tdWx0aXBsZSA9IHRydWU7CitvMS5zZWxlY3RlZCA9IGZhbHNlOworbzIu
c2VsZWN0ZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicp
OworZWwuZm9jdXMoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLm11bHRpcGxlID0gZmFsc2U7Citv
MS5zZWxlY3RlZCA9IGZhbHNlOworbzIuc2VsZWN0ZWQgPSB0cnVlOworCitkZWJ1ZygnUmVzZXQ6
Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIg
PSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMi5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRCZShl
bEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7Citmb3JtLnJlc2V0KCk7CitzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vICAgICBDb25zdHJhaW50cyBjaGFuZ2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitkZWJ1ZygnQ2hhbmdlIHJlcXVpcmVkOicpOworZWwgPSBtYWtlSW52
YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdY
JywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworZWwucmVxdWlyZWQgPSBmYWxzZTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLnJlcXVpcmVkID0gdHJ1ZTsKK3No
b3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKaW5kZXggZDY4MjZkZTE4MmUzMTM3N2FjMGM0
OGQ5NDY4Y2I3NmE4YTU2ZjQ3MS4uNWM1NjU0MjcwMTUxNDJlZDJkMDZmNDQ0NjJjN2FjYzg1NWQ3
YTVmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFs
aWRhdGlvbk1lc3NhZ2UuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKQEAgLTI0LDYgKzI0LDEzIEBAIHJlcXVpcmVkVGV4dEFy
ZWEucmVxdWlyZWQgPSB0cnVlOwogZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsK
IHNob3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBt
aXNzaW5nJyIpOwogCisvLyBBIHJlcXVpcmVkIHNlbGVjdCB3aXRoIGFuIGVtcHR5IHZhbHVlCit2
YXIgcmVxdWlyZWRTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKK3Jl
cXVpcmVkU2VsZWN0Lm5hbWUgPSAicmVxdWlyZWRTZWxlY3QiOworcmVxdWlyZWRTZWxlY3QucmVx
dWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFNlbGVjdCk7CitzaG91bGRC
ZSgicmVxdWlyZWRTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVlIG1pc3NpbmcnIik7
CisKIC8vIEEgdHlwZT1lbWFpbCBpbnB1dCBmb3IgdGhlICJ0eXBlIG1pc21hdGNoIiBmbGFnCiB2
YXIgZW1haWxJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiBlbWFpbElu
cHV0Lm5hbWUgPSAiZW1haWxJbnB1dCI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZDdjYjczNGVhOTJlOWY4YzRjYmViMDVkNmYzZjE0ZjI3ZDY5NTcxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUwIEBACitUaGlzIHRlc3QgcGVyZm9y
bXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBs
aXZlbHkgYXBwbGllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoZWNrIHRo
ZSBpbml0aWFsIHN0YXRlOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgor
Q2hhbmdlIG5hbWU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgZGlzYWJsZWQ6CitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgZGlzYWJsZWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwp
IGlzIGludmFsaWRDb2xvcgorSW5zaWRlL291dHNpZGUgb2YgYSBmb3JtOgorUEFTUyBiYWNrZ3Jv
dW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFs
aWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSB3aXRoIGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9u
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9m
KGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSB0aGUgdmFsdWUgd2l0aG91dCBhIHBsYWNlaG9s
ZGVyIGxhYmVsIG9wdGlvbjoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQ
QVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorSW5zZXJ0L3JlbW92ZSBvcHRpb25z
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCitTZXQgYW4gYXR0cmlidXRlOiBtdWx0aXBsZToKK1BBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitTZXQg
YW4gYXR0cmlidXRlOiBzaXplOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9m
KGVsKSBpcyBpbnZhbGlkQ29sb3IKK1NlbGVjdEFsbDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitSZXNl
dDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgcmVxdWlyZWQ6CitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1z
ZWxlY3RvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmU5Zjg3NjUwYzRkM2JmYWM4OWQ0YTgxYWMxZGM1
OTE2MjVmZmRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxl
Y3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWwKKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2VsZWN0
LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0
ZWQudHh0CmluZGV4IDBlMTJkOGEyNzFlNWRkOGY1NTNhMjFkMWE5YzJiZDdhYmU1ZGQ2MzEuLmU5
MTk2MWQxMDA5ZjM5OTE5MGNkYWRlMzMwMGY5M2FiMzQ0NDY2NGIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC02
LDYgKzYsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBwYXR0ZXJuSW5wdXQudmFs
aWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4gbWlzbWF0Y2gnCiBQQVNTIHJlcXVpcmVkSW5wdXQu
dmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIHJlcXVpcmVkVGV4dEFy
ZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCitQQVNTIHJlcXVpcmVkU2Vs
ZWN0LnZhbGlkYXRpb25NZXNzYWdlIGlzICd2YWx1ZSBtaXNzaW5nJwogUEFTUyBlbWFpbElucHV0
LnZhbGlkYXRpb25NZXNzYWdlIGlzICd0eXBlIG1pc21hdGNoJwogUEFTUyBidXQudmFsaWRhdGlv
bk1lc3NhZ2UgaXMgJycKIFBBU1MgYW5vbmlucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICcnCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNl
bGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3Jz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTg5ZmE1ODhiNTFiOWI2YzZkYTA5YWY4Y2E2NzQ4
OGNhMzc3Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxp
ZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBsaXZlbHkgYXBwbGllZCBieSBIVE1M
U2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlci4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK0NoYW5nZSB0aGUgdmFsdWUgb2YgYSBtZW51bGlzdCBzZWxlY3QgYnkg
c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcjoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENv
bG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgdGhlIHZh
bHVlIG9mIGEgbGlzdGJveCBzZWxlY3QgYnkgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcjoKK1BBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyB2YWxpZENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9k
b20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3Rv
cnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMTk0MTY2NTEwNTJkMjExMThmMDhlMmZmMWUxNjEyNTI3YWM0
ZmUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2Jq
Yy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKQEAgLTAsMCArMSw3
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPjwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vLi4vZmFzdC9mb3Jtcy9yZXNvdXJjZXMvbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
cGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3Jz
IGFyZSBsaXZlbHkgYXBwbGllZCBieSBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRl
eEJ5VXNlci4iKTsKKworLy8gU2V0dXAgZm9yIHN0YXRpYyBlbGVtZW50cy4KK3ZhciBmb3JtID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChmb3JtKTsKKworZnVuY3Rpb24gbWFrZUludmFsaWQoaWQpIHsKKyAgICB2YXIgc2VsZWN0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7CisgICAgc2VsZWN0Lm5hbWUgPSAnZm9v
JzsKKyAgICBzZWxlY3QucmVxdWlyZWQgPSB0cnVlOworICAgIGlmIChpZCAhPSB1bmRlZmluZWQp
CisgICAgICAgIHNlbGVjdC5pZCA9IGlkOworICAgIHNlbGVjdC52YWx1ZSA9ICcnOworICAgIGZv
cm0uYXBwZW5kQ2hpbGQoc2VsZWN0KTsKKyAgICByZXR1cm4gc2VsZWN0OworfQorCitmdW5jdGlv
biBhcHBlbmRPcHRpb24odmFsdWUsIHNlbGVjdCkgeworICAgIHZhciBvcHRpb24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKKyAgICBvcHRpb24udmFsdWUgPSB2YWx1ZTsKKyAg
ICBvcHRpb24uaW5uZXJUZXh0ID0gdmFsdWU7CisgICAgc2VsZWN0LmFkZChvcHRpb24pOworICAg
IHJldHVybiBvcHRpb247Cit9CisKK2Z1bmN0aW9uIGJhY2tncm91bmRPZihlbCkgeworICAgIHJl
dHVybiBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJyk7Cit9CisKK3ZhciBlbEJhY2tncm91bmQg
PSAnYmFja2dyb3VuZE9mKGVsKSc7Cit2YXIgaW52YWxpZENvbG9yID0gJ3JnYigyNTUsIDAsIDAp
JzsKK3ZhciBub3JtYWxDb2xvciA9ICdyZ2IoMjU1LCAyNTUsIDI1NSknOwordmFyIGRpc2FibGVk
Q29sb3IgPSAncmdiKDAsIDAsIDApJzsKK3ZhciByZWFkT25seUNvbG9yID0gJ3JnYigwLCAyNTUs
IDApJwordmFyIHZhbGlkQ29sb3IgPSAncmdiKDAsIDAsIDI1NSknOworCitkZWJ1ZygnQ2hhbmdl
IHRoZSB2YWx1ZSBvZiBhIG1lbnVsaXN0IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
OicpOworZWwgPSBtYWtlSW52YWxpZCgnbWVudWxpc3QnKTsKK28xID0gYXBwZW5kT3B0aW9uKCcn
LCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK29iakNDb250cm9sbGVyLnNldFNl
bGVjdEVsZW1lbnRTZWxlY3RlZEluZGV4QWxsb3dpbmdNdWx0aXBsZShlbCwgMSwgZmFsc2UpOwor
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworb2JqQ0NvbnRyb2xsZXIuc2V0
U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAwLCBmYWxzZSk7
CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5n
ZSB0aGUgdmFsdWUgb2YgYSBsaXN0Ym94IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
OicpOworZWwgPSBtYWtlSW52YWxpZCgnbGlzdGJveCcpOworZWwubXVsdGlwbGUgPSB0cnVlOwor
bzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOwor
bzEuc2VsZWN0ZWQgPSBmYWxzZTsKK28yLnNlbGVjdGVkID0gZmFsc2U7CitzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK29iakNDb250cm9sbGVyLnNldFNlbGVjdEVsZW1l
bnRTZWxlY3RlZEluZGV4QWxsb3dpbmdNdWx0aXBsZShlbCwgMCwgZmFsc2UpOworc2hvdWxkQmUo
ZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmYmViNzE4
NzY4MTE1MTliYmMxYjg0ODJhYjBmMzc5OWQzZjFhMDguLmRlZDE5MmJiMTE5ODU2MmUxMDVjZmZm
OGY5NTQ5YTk4YjVhNmU0ODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAtMTItMDYgIERhaSBNaWt1cnVi
ZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVxdWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2Vs
ZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMzgwCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmh0bWwKKyAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRt
bC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6
OmRlc2VsZWN0SXRlbXMpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpIHRv
IGVuYWJsZSB2YWxpZGl0eSBjaGVjayBhZnRlciBjaGFuZ2luZy4gTm8gdGVzdHMgZm9yIHRoaXMg
Y2hhbmdlIHNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgbm90IGV4cG9zZWQgdG8gSmF2YVNjcmlwdCBv
ciBhbnkgd2ViIGludGVyZmFjZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50
OjpzZXRTZWxlY3RlZEluZGV4KTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2so
KS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4
QnlVc2VyKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp2YWx1ZU1pc3NpbmcpOiBBZGRlZCB2YWx1ZU1p
c3NpbmcoKSB0byBjaGVjayBpZiBzZWxlY3RpbmcgYW4gaW52YWxpZCBvciBwbGFjZWhvbGRlciBs
YWJlbCBvcHRpb24gd2hlbiBhIHZhbGlkIHJlcXVpcmVkIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0ZW0p
OiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLiBObyB0ZXN0cyBmb3IgdGhp
cyBjaGFuZ2Ugc2luY2UgaXQgaXMgbm90IGNhbGxlZCB5ZXQuIExvb2sgYXQgdGhlIGJ1ZyAzNjE3
NyBhbmQgdGhlIGNoYW5nZXNldCA1NjE4MC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RF
bGVtZW50OjphZGQpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZSk6IEFkZGVkIGNhbGxpbmcg
c2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxl
bWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFs
aWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwpOiBBZGRlZCBj
YWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNl
bGVjdEVsZW1lbnQ6OnJlc2V0KTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2so
KS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94U2Vs
ZWN0aW9uKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4gU2tpcHBlZCBh
ZGRpbmcgdGVzdHMgZm9yIHRoaXMgY2hhbmdlIGFzIHRvbyBjb21wbGljYXRlZC4uCisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKTogQWRkZWQgY2FsbGluZyBz
ZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVt
ZW50Ojppc1JlcXVpcmVkRm9ybUNvbnRyb2wpOiBDaGVjayBpZiByZXF1aXJlZCBvciBub3QuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aGFzUGxhY2Vob2xkZXJMYWJlbE9w
dGlvbik6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojppc09wdGlvbmFsRm9ybUNvbnRyb2wpOiBD
aGVjayBpZiBub3QgcmVxdWlyZWQuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGw6IEFkZGVkIGEgcmVxdWlyZWQgYXR0cmlidXRlIHRvIHNlbGVjdCBlbGVtZW50cy4uCisgICAg
ICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5
U3RhdGU6OnZhbHVlTWlzc2luZyk6IEFkZGVkIHZhbHVlTWlzc2luZyBjaGVjayBmb3Igc2VsZWN0
IGVsZW1lbnRzIGludG8gdGhlIGdsb2JhbCBjaGVja2VyLCBWYWxpZGl0eVN0YXRlOjp2YWx1ZU1p
c3NpbmcoKS4KKwogMjAxMC0xMi0wNyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAKaW5kZXggYzY4MGU5MmU0MGFhOTUxMmFhODI3ZWU4OWEyN2MwYWFlYWNl
MzgwMC4uYzIyNDQ2NDJlZTkxOTNhNjY0Yzg4OTM5YzE4MGExMWY2NDdmZGE2YSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC03OCwxMSArNzgsMTMgQEAgaW50IEhUTUxTZWxlY3RF
bGVtZW50OjpzZWxlY3RlZEluZGV4KCkgY29uc3QKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRl
c2VsZWN0SXRlbXMoSFRNTE9wdGlvbkVsZW1lbnQqIGV4Y2x1ZGVFbGVtZW50KQogewogICAgIFNl
bGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXMobV9kYXRhLCB0aGlzLCBleGNsdWRlRWxlbWVudCk7
CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OnNldFNlbGVjdGVkSW5kZXgoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0KQogewog
ICAgIFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgobV9kYXRhLCB0aGlzLCBvcHRpb25J
bmRleCwgZGVzZWxlY3QsIGZhbHNlLCBmYWxzZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNr
KCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIo
aW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0LCBib29sIGZpcmVPbkNoYW5nZU5vdywgYm9v
bCBhbGxvd011bHRpcGxlU2VsZWN0aW9uKQpAQCAtOTEsNiArOTMsNyBAQCB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBk
ZXNlbGVjdCwgYgogICAgIC8vIG1vdXNlZG93biBldmVudHMuIFRoaXMgYWxsb3dzIHRoYXQgc2Ft
ZSBiZWhhdmlvciBwcm9ncmFtbWF0aWNhbGx5LgogICAgIGlmICghbV9kYXRhLnVzZXNNZW51TGlz
dCgpKSB7CiAgICAgICAgIHVwZGF0ZVNlbGVjdGVkU3RhdGUobV9kYXRhLCB0aGlzLCBvcHRpb25J
bmRleCwgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiwgZmFsc2UpOworICAgICAgICBzZXROZWVkc1Zh
bGlkaXR5Q2hlY2soKTsKICAgICAgICAgaWYgKGZpcmVPbkNoYW5nZU5vdykKICAgICAgICAgICAg
IGxpc3RCb3hPbkNoYW5nZSgpOwogICAgICAgICByZXR1cm47CkBAIC0xMDQsNiArMTA3LDQyIEBA
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlv
bkluZGV4LCBib29sIGRlc2VsZWN0LCBiCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBTZWxl
Y3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4KG1fZGF0YSwgdGhpcywgb3B0aW9uSW5kZXgsIGRl
c2VsZWN0LCBmaXJlT25DaGFuZ2VOb3csIHRydWUpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpOworfQorCitib29sIEhUTUxTZWxlY3RFbGVtZW50OjpoYXNQbGFjZWhvbGRlckxhYmVsT3B0
aW9uKCkgY29uc3QKK3sKKyAgICAvLyBUaGUgc2VsZWN0IGVsZW1lbnQgaGFzIG5vIHBsYWNlaG9s
ZGVyIGxhYmVsIG9wdGlvbiBpZiBpdCBoYXMgYW4gYXR0cmlidXRlICJtdWx0aXBsZSIgc3BlY2lm
aWVkIG9yIGEgZGlzcGxheSBzaXplIG9mIG5vbi0xLgorICAgIC8vIAorICAgIC8vIFRoZSBjb25k
aXRpb24gInNpemUoKSA+IDEiIGlzIGFjdHVhbGx5IG5vdCBjb21wbGlhbnQgd2l0aCB0aGUgSFRN
TDUgc3BlYyBhcyBvZiBEZWMgMywgMjAxMC4gInNpemUoKSAhPSAxIiBpcyBjb3JyZWN0LgorICAg
IC8vIFVzaW5nICJzaXplKCkgPiAxIiBoZXJlIGJlY2F1c2Ugc2l6ZSgpIG1heSBiZSAwIGluIFdl
YktpdC4KKyAgICAvLyBTZWUgdGhlIGRpc2N1c3Npb24gYXQgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzODg3CisgICAgLy8KKyAgICAvLyAiMCBzaXplKCkiIGhhcHBl
bnMgd2hlbiBhbiBhdHRyaWJ1dGUgInNpemUiIGlzIGFic2VudCBvciBhbiBpbnZhbGlkIHNpemUg
YXR0cmlidXRlIGlzIHNwZWNpZmllZC4KKyAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBkaXNwbGF5
IHNpemUgc2hvdWxkIGJlIGFzc3VtZWQgYXMgdGhlIGRlZmF1bHQuCisgICAgLy8gVGhlIGRlZmF1
bHQgZGlzcGxheSBzaXplIGlzIDEgZm9yIG5vbi1tdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMsIGFu
ZCA0IGZvciBtdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMuCisgICAgLy8KKyAgICAvLyBGaW5hbGx5
LCBpZiBzaXplKCkgPT0gMCBhbmQgbm9uLW11bHRpcGxlLCB0aGUgZGlzcGxheSBzaXplIGNhbiBi
ZSBhc3N1bWVkIGFzIDEuCisgICAgaWYgKG11bHRpcGxlKCkgfHwgc2l6ZSgpID4gMSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IGxpc3RJbmRleCA9IG9wdGlvblRvTGlzdEluZGV4
KDApOworICAgIEFTU0VSVChsaXN0SW5kZXggPj0gMCk7CisgICAgaWYgKGxpc3RJbmRleCA8IDAp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0g
c3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihsaXN0SXRlbXMoKVtsaXN0SW5kZXhdKTsK
KyAgICByZXR1cm4gIW9wdGlvbi0+ZGlzYWJsZWQoKSAmJiAhbGlzdEluZGV4ICYmIG9wdGlvbi0+
dmFsdWUoKS5pc0VtcHR5KCk7Cit9CisKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlTWlz
c2luZygpIGNvbnN0Cit7CisgICAgaWYgKCFpc1JlcXVpcmVkRm9ybUNvbnRyb2woKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IGZpcnN0U2VsZWN0aW9uSW5kZXggPSBzZWxlY3Rl
ZEluZGV4KCk7CisKKyAgICAvLyBJZiBhIG5vbi1wbGFjZWhvbGVyIGxhYmVsIG9wdGlvbiBpcyBz
ZWxlY3RlZCAoZmlyc3RTZWxlY3Rpb25JbmRleCA+IDApLCBpdCdzIG5vdCB2YWx1ZS1taXNzaW5n
LgorICAgIHJldHVybiBmaXJzdFNlbGVjdGlvbkluZGV4IDwgMCB8fCAoIWZpcnN0U2VsZWN0aW9u
SW5kZXggJiYgaGFzUGxhY2Vob2xkZXJMYWJlbE9wdGlvbigpKTsKIH0KIAogdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0ZW0oaW50IGxpc3RJbmRleCwgYm9vbCBhbGxvd011
bHRpcGx5U2VsZWN0aW9ucywgYm9vbCBzaGlmdCwgYm9vbCBmaXJlT25DaGFuZ2VOb3cpCkBAIC0x
MTIsNiArMTUxLDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0ZW0o
aW50IGxpc3RJbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWMKICAgICAgICAgc2V0U2VsZWN0
ZWRJbmRleEJ5VXNlcihsaXN0VG9PcHRpb25JbmRleChsaXN0SW5kZXgpLCB0cnVlLCBmaXJlT25D
aGFuZ2VOb3cpOwogICAgIGVsc2UgewogICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKG1fZGF0
YSwgdGhpcywgbGlzdEluZGV4LCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgc2hpZnQpOworICAg
ICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAgICAgICAgaWYgKGZpcmVPbkNoYW5nZU5v
dykKICAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwogICAgIH0KQEAgLTE0NCw2ICsxODQs
NyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQgKmVsZW1lbnQsIEhU
TUxFbGVtZW50ICpiZWZvcmUsIEV4Y2VwdGlvbgogICAgICAgICByZXR1cm47CiAKICAgICBpbnNl
cnRCZWZvcmUoZWxlbWVudCwgYmVmb3JlLCBlYyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNr
KCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShpbnQgaW5kZXgpCkBAIC0x
NTYsNiArMTk3LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKGludCBpbmRleCkK
ICAgICBBU1NFUlQoaXRlbS0+cGFyZW50Tm9kZSgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjOwog
ICAgIGl0ZW0tPnBhcmVudE5vZGUoKS0+cmVtb3ZlQ2hpbGQoaXRlbSwgZWMpOworICAgIHNldE5l
ZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiBTdHJpbmcgSFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVl
KCkKQEAgLTE5NSw2ICsyMzcsNyBAQCBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpzYXZlRm9ybUNv
bnRyb2xTdGF0ZShTdHJpbmcmIHZhbHVlKSBjb25zdAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKIHsKICAgICBTZWxl
Y3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShtX2RhdGEsIHRoaXMsIHN0YXRlKTsK
KyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSAKQEAgLTIxNSwxNCArMjU4
LDE2IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKICAgICAgICAgICAgIHJlY2FsY0xpc3RJdGVtc0lmTmVlZGVkKCk7CiAKICAg
ICAgICAgbV9kYXRhLnNldFNpemUoc2l6ZSk7CisgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpOwogICAgICAgICBpZiAoKG9sZFVzZXNNZW51TGlzdCAhPSBtX2RhdGEudXNlc01lbnVMaXN0
KCkgfHwgKCFvbGRVc2VzTWVudUxpc3QgJiYgbV9kYXRhLnNpemUoKSAhPSBvbGRTaXplKSkgJiYg
YXR0YWNoZWQoKSkgewogICAgICAgICAgICAgZGV0YWNoKCk7CiAgICAgICAgICAgICBhdHRhY2go
KTsKICAgICAgICAgICAgIHNldFJlY2FsY0xpc3RJdGVtcygpOwogICAgICAgICB9Ci0gICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbXVsdGlwbGVBdHRyKQorICAgIH0gZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IG11bHRpcGxlQXR0cikgewogICAgICAgICBTZWxlY3RFbGVtZW50OjpwYXJz
ZU11bHRpcGxlQXR0cmlidXRlKG1fZGF0YSwgdGhpcywgYXR0cik7Ci0gICAgZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IGFjY2Vzc2tleUF0dHIpIHsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYWNjZXNza2V5QXR0cikgewog
ICAgICAgICAvLyBGSVhNRTogaWdub3JlIGZvciB0aGUgbW9tZW50CiAgICAgfSBlbHNlIGlmIChh
dHRyLT5uYW1lKCkgPT0gYWxpZ25BdHRyKSB7CiAgICAgICAgIC8vIERvbid0IG1hcCAnYWxpZ24n
IGF0dHJpYnV0ZS4gIFRoaXMgbWF0Y2hlcyB3aGF0IEZpcmVmb3gsIE9wZXJhIGFuZCBJRSBkby4K
QEAgLTI1NSw2ICszMDAsNyBAQCBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpjYW5TZWxlY3RBbGwo
KSBjb25zdAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0QWxsKCkKIHsKICAgICBTZWxl
Y3RFbGVtZW50OjpzZWxlY3RBbGwobV9kYXRhLCB0aGlzKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5
Q2hlY2soKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MU2VsZWN0RWxlbWVudDo6Y3JlYXRlUmVu
ZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCkBAIC0zMTUsNiArMzYxLDcg
QEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0UmVjYWxjTGlzdEl0ZW1zKCkKIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnJlc2V0KCkKIHsKICAgICBTZWxlY3RFbGVtZW50OjpyZXNldChtX2Rh
dGEsIHRoaXMpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoKQpAQCAtMzUwLDYgKzM5Nyw3IEBAIHZv
aWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldEFjdGl2ZVNlbGVjdGlvbkVuZEluZGV4KGludCBpbmRl
eCkKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24oYm9vbCBk
ZXNlbGVjdE90aGVyT3B0aW9ucykKIHsKICAgICBTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94
U2VsZWN0aW9uKG1fZGF0YSwgdGhpcywgZGVzZWxlY3RPdGhlck9wdGlvbnMpOworICAgIHNldE5l
ZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjptZW51TGlz
dE9uQ2hhbmdlKCkKQEAgLTQ1OCw2ICs1MDYsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpz
ZXRMZW5ndGgodW5zaWduZWQgbmV3TGVuLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAog
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2Nyb2xsVG9TZWxlY3Rpb24oKQpAQCAtNDcxLDQgKzUy
MCw5IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUoYm9vbCBkZWVw
KQogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6Omluc2VydGVkSW50b1RyZWUo
ZGVlcCk7CiB9CiAKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OmlzUmVxdWlyZWRGb3JtQ29udHJv
bCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJlcXVpcmVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGEzYjQ0NjBkNGJjOTBlZjk4OGRkNmViMDcx
M2E5ZmI5ZjgyNTAzMzIuLmZjMzI2NTlhOWVlNDBiNDBkOGZhYzEwYzI0ZGQxOTY0MTE3OTVmNzEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC00Myw2ICs0Myw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleChpbnQgaW5kZXgsIGJvb2wgZGVzZWxlY3Qg
PSB0cnVlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgaW5k
ZXgsIGJvb2wgZGVzZWxlY3QgPSB0cnVlLCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IGZhbHNlLCBi
b29sIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24gPSBmYWxzZSk7CiAKKyAgICAvLyBGb3IgVmFsaWRp
dHlTdGF0ZQorICAgIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3Q7CisKICAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IHNpemUoKSBjb25zdCB7IHJldHVybiBt
X2RhdGEuc2l6ZSgpOyB9CkBAIC0xMzQsNyArMTM3LDEwIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZShib29sKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc09w
dGlvbmFsRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuICFpc1JlcXVpcmVkRm9y
bUNvbnRyb2woKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlcXVpcmVkRm9ybUNvbnRyb2woKSBj
b25zdDsKKworICAgIGJvb2wgaGFzUGxhY2Vob2xkZXJMYWJlbE9wdGlvbigpIGNvbnN0OwogCiAg
ICAgU2VsZWN0RWxlbWVudERhdGEgbV9kYXRhOwogICAgIENvbGxlY3Rpb25DYWNoZSBtX2NvbGxl
Y3Rpb25JbmZvOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50Lmlk
bCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKaW5kZXggMmU1M2JjYWE2YzYz
NzA4MTQ2N2YxNTYwNjZkMGVjYWE4NTI3YjcyNy4uZjVhYzY5YjJmODFjMzkzMDg0MTFmNmRiOGVm
MGE2ZjQzNTlhZmFmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCkBAIC00OSw2ICs0
OSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFu
IGF1dG9mb2N1czsKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gbXVsdGlwbGU7CiAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lOworICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gcmVxdWlyZWQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBsb25nIHNpemU7CiAgICAgICAgIAogICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIGFk
ZChpbiBIVE1MRWxlbWVudCBlbGVtZW50LCBpbiBIVE1MRWxlbWVudCBiZWZvcmUpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3Bw
IGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCmluZGV4IDJmYjFlMmM1MDg0NzQ0YWUz
NjIwYTZhNDg0NjA2OTdlZGI3MTk0ZDguLjA1NjUwMzVhZDUxY2NhM2ZmOTZlYzAzMDA5ODc2ODM3
ZTZiZTM0MWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJp
bmdzLmgiCkBAIC0xMDUsNiArMTA2LDkgQEAgdm9pZCBWYWxpZGl0eVN0YXRlOjpzZXRDdXN0b21F
cnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogYm9vbCBWYWxpZGl0eVN0YXRlOjp2
YWx1ZU1pc3NpbmcoKSBjb25zdAogewogICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1M
RWxlbWVudChtX2NvbnRyb2wpOworICAgIGlmICghZWxlbWVudC0+d2lsbFZhbGlkYXRlKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKGlucHV0
VGFnKSkgewogICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KTsKICAgICAgICAgcmV0dXJuIGlucHV0LT52YWx1ZU1p
c3NpbmcoaW5wdXQtPnZhbHVlKCkpOwpAQCAtMTEzLDYgKzExNywxMCBAQCBib29sIFZhbGlkaXR5
U3RhdGU6OnZhbHVlTWlzc2luZygpIGNvbnN0CiAgICAgICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQq
IHRleHRBcmVhID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1lbnQpOwog
ICAgICAgICByZXR1cm4gdGV4dEFyZWEtPnZhbHVlTWlzc2luZyh0ZXh0QXJlYS0+dmFsdWUoKSk7
CiAgICAgfQorICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKHNlbGVjdFRhZykpIHsKKyAgICAg
ICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVt
ZW50Kj4oZWxlbWVudCk7CisgICAgICAgIHJldHVybiBzZWxlY3QtPnZhbHVlTWlzc2luZygpOwor
ICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76013</attachid>
            <date>2010-12-08 21:52:58 -0800</date>
            <delta_ts>2010-12-08 22:59:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101209145310.patch</filename>
            <type>text/plain</type>
            <size>56303</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YjBiNTliMjY5MTYwYzQ5ZDc5NzA2NjVlNWQ0NjA3MTExZmQ4YzE3Li4xMmZiMGE3
NjE3ZTkyMGEyOTU5MDkwZGZlNWNiOWEwMThkOTZhOWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMTItMDYgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9v
YmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1
ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTItMDcgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlYmFzZWxpbmUgR1RL
KyByZXN1bHRzIGFmdGVyIHI3MzM4NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4
dAppbmRleCBiMDY5YTc0ZTA1ZGU1MWUzNzdjMzBjMDU4NWVmNTU1NGQ0YWZjYWFmLi4xMWY0NWFm
OWZjOTNjMGRjN2I1Y2I1YzQ2ZTczMTJkYzU5YzFkMmIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjQgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250
cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCBibGFuazogdmFsaWRpdHkudmFs
dWVNaXNzaW5nIHNob3VsZCBiZSB0cnVlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tz
IHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIGJsYW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBz
ZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4KIAotIAotU1VDQ0VTUworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpIGlzIHRydWUK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlz
c2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIikgaXMgZmFsc2UKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlw
bGUiKSBpcyB0cnVlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNl
bGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMg
dHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVj
dGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtb3B0Z3JvdXAiKSBpcyBmYWxzZQorUEFTUyB2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC1kaXNhYmxlZC1vcHRpb24iKSBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAgICAgIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAxLmh0bWwKaW5kZXggZGM4ODg3OTI5NDY0YjgxNGY1MjZmMDMzMTZmMGI1MTNm
NGE0MzFiNS4uNjA4Yzg5ZTZmMjIzYjRmMzljNzg3NDIzYzQ1NGNlZmFlODYwODYzNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLTAwMS5odG1sCkBAIC0xLDI3ICsxLDk0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJlcXVpcmVk
IGFuZCBiYXNpYyB2YWx1ZU1pc3Npbmc8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGltIiByZXF1aXJlZC8+Cis8
dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+
Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm8tb3B0aW9uIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgor
PC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9w
dGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
d2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3Nl
bGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIgbmFt
ZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3Rl
ZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3Qg
aWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9
IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24g
dmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUt
c2VsZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxv
cHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxl
Y3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBs
ZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBz
ZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxz
ZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9
InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlk
PSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0
aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9u
IHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtl
LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRp
cGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cisg
IDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGlt
IiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0
aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3Qg
aWQ9InNlbGVjdC1vcHRncm91cCIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGdyb3Vw
IGxhYmVsPSIxIj4KKyAgICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDwvb3B0Z3Jv
dXA+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBp
ZD0ic2VsZWN0LWRpc2FibGVkLW9wdGlvbiIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9w
dGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5Y
PC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21l
c3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAg
ICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Np
bmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52
YWx1ZU1pc3Npbmcgd2l0aCBibGFuayB2YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9y
IG5vdGhpbmcgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZp
Y3RpbSIpOwogCi0gICAgICAgIGxvZygodlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgdlsx
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICB9
CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoImlucHV0IiknKTsKKyAgICBzaG91
bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIiknKTsKKyAgICBzaG91bGRCZVRy
dWUoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9s
ZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFj
ZWhvbGRlci1zZWxlY3RlZC1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxk
QmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLW11bHRpcGxlIikn
KTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNl
aG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKScpOwor
ICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1z
aXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNl
aG9sZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3Np
bmdGb3IoInNlbGVjdC1vcHRncm91cCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3QtZGlzYWJsZWQtb3B0aW9uIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBy
ZXF1aXJlZCBhbmQgYmxhbms6Ci12YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIHRydWUg
aW4gYm90aCBjYXNlcy48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiByZXF1aXJlZC8+Ci08dGV4
dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJj
b25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5n
LTAwMi1leHBlY3RlZC50eHQKaW5kZXggMzYwNjliODUzYzkxMjljNDU5ZWU3YzAzZjZiN2UzNTg5
ZTQzYWFhNC4uYmNiMmE4NDQyMjVmZmE5NmQ4Njk0NTE4MWViNzM0NzdkNzc3M2YyNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDE5IEBACi1UaGVyZSBh
cmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZCBhbmQgd2l0
aCBzb21lIHZhbHVlOiB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIGZhbHNlIGluIGJv
dGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIHNv
bWUgdmFsdWVzIG9yIG9wdGlvbnMgd2l0aCBzb21lIHZhbHVlcyBzZWxlY3RlZC4KIAotIAotU1VD
Q0VTUworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJpbnB1dCIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKSBpcyBm
YWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLXBsYWNlaG9sZGVyIikgaXMg
ZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhv
bGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhv
dXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNT
IHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBs
ZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFj
ZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigi
c2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwKaW5kZXggNmYwNmY5ZjQzNjQ1ZjQ5Y2MzM2Y3ODBiNWFm
OTYyYjE0N2E3ZTgzNS4uNzA1ZjAyMjNlNjZmYzBiOTgxNmIzNjE2OGYzODkzMmVlYjE4YjdiZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
dmFsdWVNaXNzaW5nLTAwMi5odG1sCkBAIC0xLDI3ICsxLDY5IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJl
cXVpcmVkIGFuZCBiYXNpYyB2YWx1ZU1pc3NpbmcgMjwvdGl0bGU+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIHZhbHVl
PSJzb21ldGhpbmciIHJlcXVpcmVkLz4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZp
Y3RpbSIgcmVxdWlyZWQ+c29tZXRoaW5nPC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdC13
aXRoLXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVl
PSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKzwvc2VsZWN0
PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKyAgPG9w
dGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aC1mYWtl
LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJlcXVpcmVkPgorICA8
b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlv
bj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRl
ci1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVj
dD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5h
bWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAg
PG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0
IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiBuYW1lPSJ2aWN0
aW0iIG11bHRpcGxlIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9v
cHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBt
dWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0
aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZp
Y3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNl
bGVjdGVkPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+CiA8c2Ny
aXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1
bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rp
b24gdmFsdWVNaXNzaW5nRm9yKGlkKSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCkudmFsaWRpdHkudmFsdWVNaXNzaW5nOwogICAgIH0KIAotICAgIGZ1bmN0aW9u
IHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIHdpdGggc29tZSB2YWx1
ZXMgb3Igb3B0aW9ucyB3aXRoIHNvbWUgdmFsdWVzIHNlbGVjdGVkLiIpOwogCi0gICAgICAgIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKIAotICAgICAgICBsb2coKCF2WzBdLnZhbGlk
aXR5LnZhbHVlTWlzc2luZyAmJiAhdlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NF
U1MiIDogIkZBSUxVUkUiKTsKLSAgICB9CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5n
Rm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJ0ZXh0
YXJlYSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0
aC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIiknKTsKKyAgICBz
aG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vo
b2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRp
cGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRo
LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2Uo
J3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1t
dWx0aXBsZSIpJyk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIHdpdGggc29tZSB2
YWx1ZToKLXZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNl
cy48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiB2YWx1ZT0ic29tZXRoaW5nIiByZXF1aXJlZC8+
Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD5zb21ldGhpbmc8L3RleHRhcmVhPgot
PGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNz
aW5nLTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKaW5kZXggZGZlMzM5ODY5MGUxOWJmMzJl
YTIyMDBmYzQxNThmYTllYWIzODU3Mi4uNjNiZGNjMTI4MzI4NzVkNjUzODk0YWVkMGY1OTBmMjZl
N2Q3NDgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDIyIEBACi1UaGVyZSBhcmUgdHdvIGRpc2FibGVkIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxv
dywgYm90aCByZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOiB2YWxpZGl0eS52YWx1ZU1pc3Np
bmcgc2hvdWxkIGJlIGZhbHNlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlk
aXR5LnZhbHVlTWlzc2luZyBvZiBkaXNhYmxlZCBmb3JtIGNvbnRyb2xzIHdpdGggYmxhbmsgdmFs
dWVzLCBibGFuayBvcHRpb25zIHNlbGVjdGVkLCBvciBub3RoaW5nIHNlbGVjdGVkLgogCi0gCi1T
VUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoImlucHV0IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vLW9wdGlvbiIpIGlzIGZhbHNl
CitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIikgaXMg
ZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVj
dGVkLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91
dC1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIikgaXMgZmFsc2UK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11
bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxl
Y3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6
ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy5odG1sCmluZGV4IDlk
OTJmZmIzNGI3MjI0NmZjZGE3MjA3YzQ1NzMzN2ExZWYyZmZkNGMuLjllYjBmNjNiNzJmNGNkZGQ3
Y2I4NGQwMDIwYzVmN2VhMjMzNzE2ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMuaHRtbApAQCAtMSwyNyAr
MSw4MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgog
PGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhbmQgdmFsdWVNaXNzaW5nIG9uIGRpc2Fi
bGVkIGVsZW1lbnRzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxpbnB1dCBpZD0iaW5wdXQiIG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQgLz4KKzx0
ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+PC90
ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdC1uby1vcHRpb24iIG5hbWU9InZpY3RpbSIgZGlz
YWJsZWQgcmVxdWlyZWQ+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRl
ci1zZWxlY3RlZCIgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3Nl
bGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0
aW0iIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIGRp
c2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRp
b24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdp
dGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIgc2l6ZT0iMiIgZGlzYWJsZWQg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1
ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxl
Y3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJlZD4K
KyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8
L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11
bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0
aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4K
Kzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1t
dWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9w
dGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+
Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRp
cGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgor
ICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwv
c2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6
ZTItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgZGlzYWJsZWQgcmVx
dWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0i
WCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtl
LXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9
IjIiIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5ndWFn
ZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2co
bWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlu
bmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHZhbHVlTWlz
c2luZ0ZvcihpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LnZhbGlkaXR5LnZhbHVlTWlzc2luZzsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewot
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyBvZiBkaXNhYmxlZCBmb3JtIGNvbnRyb2xz
IHdpdGggYmxhbmsgdmFsdWVzLCBibGFuayBvcHRpb25zIHNlbGVjdGVkLCBvciBub3RoaW5nIHNl
bGVjdGVkLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmlj
dGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKIAot
ICAgICAgICBsb2coKCF2WzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyAmJiAhdlsxXS52YWxpZGl0
eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICB9CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
Jyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFs
c2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2lu
Z0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXpl
Mi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9s
ZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVy
ZSBhcmUgdHdvIGRpc2FibGVkIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1
aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBi
ZSBmYWxzZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIGRpc2FibGVk
IHJlcXVpcmVkIC8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJlZD48
L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRp
dHktMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0
eS0wMDItZXhwZWN0ZWQudHh0CmluZGV4IDE4NTc5NDQ0ODcwZDM5NDA1NWQzYTkyMDM3NDRjN2Vk
ODQwYzhlODQuLjgzODg4Mjg4OGY3NjJiYjE0NTFkMTgwYWIyOWYxZmI4ODg4OGM4OTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0
ZWQudHh0CkBAIC0xLDEyICsxLDE0IEBACi1UaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRp
dHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQgb24g
aW52YWxpZCBlbGVtZW50cy4KK1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJl
dHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlk
IGVsZW1lbnRzLCBhbmQgcmV0dXJucyBhIHRydWUgcmVzdWx0IG9uIGEgYmxhbmsgYnV0IHZhbGlk
IGVsZW1lbnRzLiBCbGFuayBidXQgbm9uLXBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbnMgYXJlIHZh
bGlkLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotICAKLVBBU1MgdltpXS5jaGVj
a1ZhbGlkaXR5KCkgaXMgZmFsc2UKLVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UK
LVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKKyAgICAKK1BBU1MgY2hlY2tWYWxp
ZGl0eUZvcigiaW5wdXQtZW1wdHkiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJp
bnB1dC1wYXR0ZXJuLW1pc21hdGNoIikgaXMgZmFsc2UKK1BBU1MgY2hlY2tWYWxpZGl0eUZvcigi
dGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3QtcGxhY2Vo
b2xkZXIiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qtbm9uLXBsYWNl
aG9sZGVyIikgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRp
dHktMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0
bWwKaW5kZXggMjg3MmZhZDM1YmVlODJlNDY1YmVlMTdlZmJmMTFmNTgwZmY0MmNjOS4uNjYyZjZl
YmZkMzExMWVhZmUyYjcxMWNmOGIwMDJmMWIwOGJlZTlkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbApAQCAtNywxOSArNywzMyBAQAogPGJvZHk+
CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxmb3JtIG1ldGhvZD0iZ2V0Ij4KLTxpbnB1dCBu
YW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkLz4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0i
IHR5cGU9InRleHQiIHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIvPgot
PHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KKzxpbnB1dCBpZD0i
aW5wdXQtZW1wdHkiIG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVxdWlyZWQvPgorPGlucHV0
IGlkPSJpbnB1dC1wYXR0ZXJuLW1pc21hdGNoIiBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHBh
dHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIvPgorPHRleHRhcmVhIGlkPSJ0
ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBpZD0i
c2VsZWN0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2Vs
ZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbi1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiBy
ZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVl
PSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KIDwvZm9ybT4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFs
aWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQg
b24gaW52YWxpZCBlbGVtZW50cy4iKTsKKyAgICBmdW5jdGlvbiBjaGVja1ZhbGlkaXR5Rm9yKGlk
KSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hlY2tWYWxp
ZGl0eSgpOworICAgIH0KIAotdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0i
KTsKLWZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQotICAgIHNob3VsZEJlKCJ2W2ldLmNo
ZWNrVmFsaWRpdHkoKSIsICJmYWxzZSIpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hl
Y2tzIGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5n
IGVycm9yKSByZXN1bHQgb24gaW52YWxpZCBlbGVtZW50cywgYW5kIHJldHVybnMgYSB0cnVlIHJl
c3VsdCBvbiBhIGJsYW5rIGJ1dCB2YWxpZCBlbGVtZW50cy4gQmxhbmsgYnV0IG5vbi1wbGFjZWhv
bGRlciBsYWJlbCBvcHRpb25zIGFyZSB2YWxpZC4iKTsKIAotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigiaW5wdXQtZW1w
dHkiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoImlucHV0LXBhdHRl
cm4tbWlzbWF0Y2giKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoInRl
eHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qt
cGxhY2Vob2xkZXIiKScpOworICAgIHNob3VsZEJlVHJ1ZSgnY2hlY2tWYWxpZGl0eUZvcigic2Vs
ZWN0LW5vbi1wbGFjZWhvbGRlciIpJyk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKaW5kZXggOWIyMDE0
MzE4YTNlNTBiZDNlZjVkNDAwMTM2YzMwMjQ2OTFmODljZC4uYjliNTRiODc2NGM0OWRhNjAxN2E0
MTdjN2U4ZjM3ZmYxY2U2NGFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
ZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTIg
QEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVp
cmVkLgorVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYWxsIHJl
cXVpcmVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZXF1aXJlZEZvcigiaW5wdXQiKSBpcyB0cnVlCitQQVNTIHJlcXVpcmVkRm9yKCJ0ZXh0YXJl
YSIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInNlbGVjdCIpIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKaW5kZXggMmYz
NGMxNjFhY2Y2YTNmNWY0MDAwODczZmQ4MjY2YzAxN2ZlMDM2MC4uOGFlYTU3YzMxNjM1NGU2N2Ri
ODk0MDA2ZTg3MGQ1MzRlZjczOTViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKQEAgLTEsMjYgKzEsMzQgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8
dGl0bGU+cmVxdWlyZWQgYXR0cmlidXRlIHByZXNlbmNlIHRlc3Q8L3RpdGxlPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGlt
IiByZXF1aXJlZCAvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1
aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBpZD0ic2VsZWN0IiBuYW1lPSJ2aWN0aW0iIHJlcXVp
cmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9Ilgi
Plg8L29wdGlvbj4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIr
bWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHJlcXVpcmVkRm9yKGlkKSB7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkucmVxdWlyZWQ7CiAgICAgfQogCi0g
ICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBkZXNjcmlwdGlvbigiVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxv
dywgYWxsIHJlcXVpcmVkLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKIAotICAgICAgICBsb2coKHZbMF0ucmVxdWlyZWQgJiYgdlsxXS5yZXF1aXJlZCkgPyAi
U1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVk
Rm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigidGV4dGFyZWEi
KScpOworICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoInNlbGVjdCIpJyk7CisKKyAgICB2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMg
YmVsb3csIGJvdGggcmVxdWlyZWQuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQg
Lz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08
b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDItZXhw
ZWN0ZWQudHh0CmluZGV4IGFjNWMwZmZmMjI4NjZlMTE1ZmYwY2M0M2NkNGRiNDljOGU5OGZiZmEu
LmMyNTU2MWQxNGNjNzYwYzI3NzgxMzhmNzRjN2YyNDY1YTIwMjYyYzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDE5IEBACi1UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVt
ZW50cyBiZWxvdywgYm90aCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJl
cXVpcmVkIERPTSBhdHRyaWJ1dGUuCitUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1l
bnRzIGJlbG93LCBhbGwgb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSByZXF1
aXJlZCBET00gYXR0cmlidXRlLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworQmVmb3JlIHNldDoKK1BBU1MgcmVxdWlyZWRGb3IoImlucHV0IikgaXMgZmFsc2UK
K1BBU1MgcmVxdWlyZWRGb3IoInRleHRhcmVhIikgaXMgZmFsc2UKK1BBU1MgcmVxdWlyZWRGb3Io
InNlbGVjdCIpIGlzIGZhbHNlCisKK0FmdGVyIHNldDoKK1BBU1MgcmVxdWlyZWRGb3IoImlucHV0
IikgaXMgdHJ1ZQorUEFTUyByZXF1aXJlZEZvcigidGV4dGFyZWEiKSBpcyB0cnVlCitQQVNTIHJl
cXVpcmVkRm9yKCJzZWxlY3QiKSBpcyB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLmh0bWwKaW5kZXggYWE4NWU4OTU0ZWUwNzgxOGQxYzI4
YmQ1NTIwYTk1YjIyMWM3N2I5MC4uOTI4ZTMzZmM4MDUwZDNlMmI0ZWE4NzViNmZlZGUzZGUwNDI2
OTNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1
dGUtMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1
dGUtMDAyLmh0bWwKQEAgLTEsMzIgKzEsNDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYXR0
cmlidXRlIEpTIHNldDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIC8+Cis8dGV4dGFyZWEgaWQ9InRleHRh
cmVhIiBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QiIG5hbWU9
InZpY3RpbSI+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8
bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rpb24gcmVxdWlyZWRGb3IoaWQpIHsKKyAg
ICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5yZXF1aXJlZDsKICAgICB9
CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGRlc2NyaXB0aW9uKCJUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1lbnRz
IGJlbG93LCBhbGwgb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSByZXF1aXJl
ZCBET00gYXR0cmlidXRlLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKIAotICAgICAgICBpZiAodlswXS5yZXF1aXJlZCA9PSBmYWxzZSAmJiB2WzFdLnJlcXVp
cmVkID09IGZhbHNlKSB7Ci0gICAgICAgICAgICB2WzBdLnJlcXVpcmVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgIHZbMV0ucmVxdWlyZWQgPSB0cnVlOwotICAgICAgICAgICAgbG9nICgodlswXS5yZXF1
aXJlZCAmJiB2WzFdLnJlcXVpcmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9nKCJGQUlMVVJFIik7Ci0gICAgfQorICAg
IGRlYnVnKCJCZWZvcmUgc2V0OiIpOworICAgIHNob3VsZEJlRmFsc2UoJ3JlcXVpcmVkRm9yKCJp
bnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgncmVxdWlyZWRGb3IoInRleHRhcmVhIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCdyZXF1aXJlZEZvcigic2VsZWN0IiknKTsKKyAgICBkZWJ1Zygi
Iik7CisKKyAgICB2WzBdLnJlcXVpcmVkID0gdHJ1ZTsKKyAgICB2WzFdLnJlcXVpcmVkID0gdHJ1
ZTsKKyAgICB2WzJdLnJlcXVpcmVkID0gdHJ1ZTsKKworICAgIGRlYnVnKCJBZnRlciBzZXQ6Iik7
CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigiaW5wdXQiKScpOworICAgIHNob3VsZEJl
VHJ1ZSgncmVxdWlyZWRGb3IoInRleHRhcmVhIiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVp
cmVkRm9yKCJzZWxlY3QiKScpOworICAgIGRlYnVnKCIiKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBv
cHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1
dGUuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0i
PjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2Vz
L3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMy
MjEzM2M1ZDI3ZmEwYjkyOWMxZGJmZDIwMDNjODg5Zjg4YmMxNjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmpzCkBAIC0wLDAgKzEsMTgzIEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHBlcmZv
cm1zIGEgY2hlY2sgdGhhdCA6dmFsaWQvOmludmFsaWQgQ1NTIHBzdWRvIHNlbGVjdG9ycyBhcmUg
bGl2ZWx5IGFwcGxpZWQuIik7CisKKy8vIFNldHVwIGZvciBzdGF0aWMgZWxlbWVudHMuCit2YXIg
Zm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZm9ybSk7Cit2YXIgbm9uRm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChub25Gb3JtKTsKKworZnVuY3Rpb24gbWFr
ZUludmFsaWQoKSB7CisgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nl
bGVjdCcpOworICAgIHNlbGVjdC5uYW1lID0gJ2Zvbyc7CisgICAgc2VsZWN0LnJlcXVpcmVkID0g
dHJ1ZTsKKyAgICBzZWxlY3QudmFsdWUgPSAnJzsKKyAgICBmb3JtLmFwcGVuZENoaWxkKHNlbGVj
dCk7CisgICAgcmV0dXJuIHNlbGVjdDsKK30KKworZnVuY3Rpb24gYXBwZW5kT3B0aW9uKHZhbHVl
LCBzZWxlY3QpIHsKKyAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0
aW9uJyk7CisgICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7CisgICAgb3B0aW9uLmlubmVyVGV4dCA9
IHZhbHVlOworICAgIHNlbGVjdC5hZGQob3B0aW9uKTsKKyAgICByZXR1cm4gb3B0aW9uOworfQor
CitmdW5jdGlvbiBpbnNlcnRPcHRpb25CZWZvcmUodmFsdWUsIHNlbGVjdCwgYmVmb3JlKSB7Cisg
ICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOworICAgIG9w
dGlvbi52YWx1ZSA9IHZhbHVlOworICAgIG9wdGlvbi5pbm5lclRleHQgPSB2YWx1ZTsKKyAgICBz
ZWxlY3QuYWRkKG9wdGlvbiwgYmVmb3JlKTsKKyAgICByZXR1cm4gb3B0aW9uOworfQorCitmdW5j
dGlvbiByZW1vdmVPcHRpb24ob3B0aW9uLCBzZWxlY3QpIHsKKyAgICBzZWxlY3QucmVtb3ZlKG9w
dGlvbik7CisgICAgcmV0dXJuIG9wdGlvbjsKK30KKworZnVuY3Rpb24gYmFja2dyb3VuZE9mKGVs
KSB7CisgICAgcmV0dXJuIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWws
IG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKTsKK30KKwordmFyIGVs
QmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5kT2YoZWwpJzsKK3ZhciBpbnZhbGlkQ29sb3IgPSAncmdi
KDI1NSwgMCwgMCknOwordmFyIG5vcm1hbENvbG9yID0gJ3JnYigyNTUsIDI1NSwgMjU1KSc7Cit2
YXIgZGlzYWJsZWRDb2xvciA9ICdyZ2IoMCwgMCwgMCknOwordmFyIHJlYWRPbmx5Q29sb3IgPSAn
cmdiKDAsIDI1NSwgMCknCit2YXIgdmFsaWRDb2xvciA9ICdyZ2IoMCwgMCwgMjU1KSc7CisKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgd2lsbFZhbGlkYXRlIGNo
YW5nZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZhciBlbCA9IG1ha2VJ
bnZhbGlkKCk7Cit2YXIgbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK3ZhciBvMiA9IGFwcGVu
ZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKKy8vIENvbmZpcm0gdGhpcyBl
bGVtZW50IGlzIGludmFsaWQuCitkZWJ1ZygnQ2hlY2sgdGhlIGluaXRpYWwgc3RhdGU6Jyk7Citz
aG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5nZSBu
YW1lOicpOworZWwubmFtZSA9ICcnOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENv
bG9yJyk7CitlbC5uYW1lID0gJ2Jhcic7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlk
Q29sb3InKTsKKworZGVidWcoJ0NoYW5nZSBkaXNhYmxlZDonKTsKK2VsID0gbWFrZUludmFsaWQo
KTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVs
KTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK2VsLmRpc2FibGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVs
QmFja2dyb3VuZCwgJ2Rpc2FibGVkQ29sb3InKTsKK2VsLmRpc2FibGVkID0gZmFsc2U7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0luc2lkZS9vdXRz
aWRlIG9mIGEgZm9ybTonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9u
KCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK25vbkZvcm0uYXBwZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52
YWxpZENvbG9yJyk7Citmb3JtLmFwcGVuZENoaWxkKGVsKTsKK3Nob3VsZEJlKGVsQmFja2dyb3Vu
ZCwgJ2ludmFsaWRDb2xvcicpOworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gICAgIHZhbHVlIGNoYW5nZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK2RlYnVnKCdDaGFuZ2UgdGhlIHZhbHVlIHdpdGggYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRp
b246Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOwor
bzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMi5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRC
ZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5nZSB0aGUg
dmFsdWUgd2l0aG91dCBhIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbjonKTsKK2VsID0gbWFrZUlu
dmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24o
JycsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3Zh
bGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J3ZhbGlkQ29sb3InKTsKKworZGVidWcoJ0luc2VydC9yZW1vdmUgb3B0aW9uczonKTsKK2VsID0g
bWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9w
dGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3Vu
ZCwgJ2ludmFsaWRDb2xvcicpOworbzMgPSBpbnNlcnRPcHRpb25CZWZvcmUoJ1knLCBlbCwgZWwu
Zmlyc3RDaGlsZCk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CityZW1v
dmVPcHRpb24obzMsIGVsKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicp
OworbzMgPSBhcHBlbmRPcHRpb24oJ1onLCBlbCk7CitvMy5zZWxlY3RlZCA9IHRydWU7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitlbC5sZW5ndGggPSAyOworc2hvdWxk
QmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdTZXQgYW4gYXR0cmli
dXRlOiBtdWx0aXBsZTonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9u
KCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworZWwubXVsdGlwbGUg
PSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwucmVtb3Zl
QXR0cmlidXRlKCdtdWx0aXBsZScpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENv
bG9yJyk7CisKK2RlYnVnKCdTZXQgYW4gYXR0cmlidXRlOiBzaXplOicpOworZWwgPSBtYWtlSW52
YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdY
JywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52
YWxpZENvbG9yJyk7CitlbC5zaXplID0gMjsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlk
Q29sb3InKTsKK2VsLnJlbW92ZUF0dHJpYnV0ZSgnc2l6ZScpOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdTZWxlY3RBbGw6Jyk7CitlbCA9IG1ha2VJ
bnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24o
J1gnLCBlbCk7CitlbC5tdWx0aXBsZSA9IHRydWU7CitvMS5zZWxlY3RlZCA9IGZhbHNlOworbzIu
c2VsZWN0ZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicp
OworZWwuZm9jdXMoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLm11bHRpcGxlID0gZmFsc2U7Citv
MS5zZWxlY3RlZCA9IGZhbHNlOworbzIuc2VsZWN0ZWQgPSB0cnVlOworCitkZWJ1ZygnUmVzZXQ6
Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIg
PSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMi5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRCZShl
bEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7Citmb3JtLnJlc2V0KCk7CitzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vICAgICBDb25zdHJhaW50cyBjaGFuZ2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitkZWJ1ZygnQ2hhbmdlIHJlcXVpcmVkOicpOworZWwgPSBtYWtlSW52
YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdY
JywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworZWwucmVxdWlyZWQgPSBmYWxzZTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLnJlcXVpcmVkID0gdHJ1ZTsKK3No
b3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKaW5kZXggZDY4MjZkZTE4MmUzMTM3N2FjMGM0
OGQ5NDY4Y2I3NmE4YTU2ZjQ3MS4uNWM1NjU0MjcwMTUxNDJlZDJkMDZmNDQ0NjJjN2FjYzg1NWQ3
YTVmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFs
aWRhdGlvbk1lc3NhZ2UuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKQEAgLTI0LDYgKzI0LDEzIEBAIHJlcXVpcmVkVGV4dEFy
ZWEucmVxdWlyZWQgPSB0cnVlOwogZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsK
IHNob3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBt
aXNzaW5nJyIpOwogCisvLyBBIHJlcXVpcmVkIHNlbGVjdCB3aXRoIGFuIGVtcHR5IHZhbHVlCit2
YXIgcmVxdWlyZWRTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKK3Jl
cXVpcmVkU2VsZWN0Lm5hbWUgPSAicmVxdWlyZWRTZWxlY3QiOworcmVxdWlyZWRTZWxlY3QucmVx
dWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFNlbGVjdCk7CitzaG91bGRC
ZSgicmVxdWlyZWRTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVlIG1pc3NpbmcnIik7
CisKIC8vIEEgdHlwZT1lbWFpbCBpbnB1dCBmb3IgdGhlICJ0eXBlIG1pc21hdGNoIiBmbGFnCiB2
YXIgZW1haWxJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiBlbWFpbElu
cHV0Lm5hbWUgPSAiZW1haWxJbnB1dCI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZDdjYjczNGVhOTJlOWY4YzRjYmViMDVkNmYzZjE0ZjI3ZDY5NTcxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUwIEBACitUaGlzIHRlc3QgcGVyZm9y
bXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBs
aXZlbHkgYXBwbGllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoZWNrIHRo
ZSBpbml0aWFsIHN0YXRlOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgor
Q2hhbmdlIG5hbWU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgZGlzYWJsZWQ6CitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgZGlzYWJsZWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwp
IGlzIGludmFsaWRDb2xvcgorSW5zaWRlL291dHNpZGUgb2YgYSBmb3JtOgorUEFTUyBiYWNrZ3Jv
dW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFs
aWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSB3aXRoIGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9u
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9m
KGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSB0aGUgdmFsdWUgd2l0aG91dCBhIHBsYWNlaG9s
ZGVyIGxhYmVsIG9wdGlvbjoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQ
QVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorSW5zZXJ0L3JlbW92ZSBvcHRpb25z
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCitTZXQgYW4gYXR0cmlidXRlOiBtdWx0aXBsZToKK1BBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitTZXQg
YW4gYXR0cmlidXRlOiBzaXplOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9m
KGVsKSBpcyBpbnZhbGlkQ29sb3IKK1NlbGVjdEFsbDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitSZXNl
dDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgcmVxdWlyZWQ6CitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1z
ZWxlY3RvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmU5Zjg3NjUwYzRkM2JmYWM4OWQ0YTgxYWMxZGM1
OTE2MjVmZmRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxl
Y3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWwKKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2VsZWN0
LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0
ZWQudHh0CmluZGV4IDBlMTJkOGEyNzFlNWRkOGY1NTNhMjFkMWE5YzJiZDdhYmU1ZGQ2MzEuLmU5
MTk2MWQxMDA5ZjM5OTE5MGNkYWRlMzMwMGY5M2FiMzQ0NDY2NGIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC02
LDYgKzYsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBwYXR0ZXJuSW5wdXQudmFs
aWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4gbWlzbWF0Y2gnCiBQQVNTIHJlcXVpcmVkSW5wdXQu
dmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIHJlcXVpcmVkVGV4dEFy
ZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCitQQVNTIHJlcXVpcmVkU2Vs
ZWN0LnZhbGlkYXRpb25NZXNzYWdlIGlzICd2YWx1ZSBtaXNzaW5nJwogUEFTUyBlbWFpbElucHV0
LnZhbGlkYXRpb25NZXNzYWdlIGlzICd0eXBlIG1pc21hdGNoJwogUEFTUyBidXQudmFsaWRhdGlv
bk1lc3NhZ2UgaXMgJycKIFBBU1MgYW5vbmlucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICcnCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNl
bGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3Jz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTg5ZmE1ODhiNTFiOWI2YzZkYTA5YWY4Y2E2NzQ4
OGNhMzc3Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxp
ZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBsaXZlbHkgYXBwbGllZCBieSBIVE1M
U2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlci4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK0NoYW5nZSB0aGUgdmFsdWUgb2YgYSBtZW51bGlzdCBzZWxlY3QgYnkg
c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcjoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENv
bG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgdGhlIHZh
bHVlIG9mIGEgbGlzdGJveCBzZWxlY3QgYnkgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcjoKK1BBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyB2YWxpZENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9k
b20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3Rv
cnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMTk0MTY2NTEwNTJkMjExMThmMDhlMmZmMWUxNjEyNTI3YWM0
ZmUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2Jq
Yy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKQEAgLTAsMCArMSw3
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPjwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vLi4vZmFzdC9mb3Jtcy9yZXNvdXJjZXMvbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
cGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3Jz
IGFyZSBsaXZlbHkgYXBwbGllZCBieSBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRl
eEJ5VXNlci4iKTsKKworLy8gU2V0dXAgZm9yIHN0YXRpYyBlbGVtZW50cy4KK3ZhciBmb3JtID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChmb3JtKTsKKworZnVuY3Rpb24gbWFrZUludmFsaWQoaWQpIHsKKyAgICB2YXIgc2VsZWN0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7CisgICAgc2VsZWN0Lm5hbWUgPSAnZm9v
JzsKKyAgICBzZWxlY3QucmVxdWlyZWQgPSB0cnVlOworICAgIGlmIChpZCAhPSB1bmRlZmluZWQp
CisgICAgICAgIHNlbGVjdC5pZCA9IGlkOworICAgIHNlbGVjdC52YWx1ZSA9ICcnOworICAgIGZv
cm0uYXBwZW5kQ2hpbGQoc2VsZWN0KTsKKyAgICByZXR1cm4gc2VsZWN0OworfQorCitmdW5jdGlv
biBhcHBlbmRPcHRpb24odmFsdWUsIHNlbGVjdCkgeworICAgIHZhciBvcHRpb24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKKyAgICBvcHRpb24udmFsdWUgPSB2YWx1ZTsKKyAg
ICBvcHRpb24uaW5uZXJUZXh0ID0gdmFsdWU7CisgICAgc2VsZWN0LmFkZChvcHRpb24pOworICAg
IHJldHVybiBvcHRpb247Cit9CisKK2Z1bmN0aW9uIGJhY2tncm91bmRPZihlbCkgeworICAgIHJl
dHVybiBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJyk7Cit9CisKK3ZhciBlbEJhY2tncm91bmQg
PSAnYmFja2dyb3VuZE9mKGVsKSc7Cit2YXIgaW52YWxpZENvbG9yID0gJ3JnYigyNTUsIDAsIDAp
JzsKK3ZhciBub3JtYWxDb2xvciA9ICdyZ2IoMjU1LCAyNTUsIDI1NSknOwordmFyIGRpc2FibGVk
Q29sb3IgPSAncmdiKDAsIDAsIDApJzsKK3ZhciByZWFkT25seUNvbG9yID0gJ3JnYigwLCAyNTUs
IDApJwordmFyIHZhbGlkQ29sb3IgPSAncmdiKDAsIDAsIDI1NSknOworCitkZWJ1ZygnQ2hhbmdl
IHRoZSB2YWx1ZSBvZiBhIG1lbnVsaXN0IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
OicpOworZWwgPSBtYWtlSW52YWxpZCgnbWVudWxpc3QnKTsKK28xID0gYXBwZW5kT3B0aW9uKCcn
LCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK29iakNDb250cm9sbGVyLnNldFNl
bGVjdEVsZW1lbnRTZWxlY3RlZEluZGV4QWxsb3dpbmdNdWx0aXBsZShlbCwgMSwgZmFsc2UpOwor
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworb2JqQ0NvbnRyb2xsZXIuc2V0
U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAwLCBmYWxzZSk7
CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5n
ZSB0aGUgdmFsdWUgb2YgYSBsaXN0Ym94IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
OicpOworZWwgPSBtYWtlSW52YWxpZCgnbGlzdGJveCcpOworZWwubXVsdGlwbGUgPSB0cnVlOwor
bzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOwor
bzEuc2VsZWN0ZWQgPSBmYWxzZTsKK28yLnNlbGVjdGVkID0gZmFsc2U7CitzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK29iakNDb250cm9sbGVyLnNldFNlbGVjdEVsZW1l
bnRTZWxlY3RlZEluZGV4QWxsb3dpbmdNdWx0aXBsZShlbCwgMCwgZmFsc2UpOworc2hvdWxkQmUo
ZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmYmViNzE4
NzY4MTE1MTliYmMxYjg0ODJhYjBmMzc5OWQzZjFhMDguLjJjMGFhYWJhZjBkYTQ0YTVlMWRjMTNm
MjMyMTAyOWRiZjY5NDFiN2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTAtMTItMDYgIERhaSBNaWt1cnVi
ZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVxdWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2Vs
ZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMzgwCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmh0bWwKKyAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRt
bC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKKworICAgICAgICAqIGRvbS9TZWxl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6OnBhcnNlTXVs
dGlwbGVBdHRyaWJ1dGUpOiBBZGRlZCBjYWxsaW5nIEhUTUxTZWxlY3RFbGVtZW50OjpzZXROZWVk
c1ZhbGlkaXR5Q2hlY2soKSB0byBlbmFibGUgdmFsaWRpdHkgY2hlY2sgYWZ0ZXIgY2hhbmdpbmcu
IE5vIHRlc3RzIGZvciB0aGlzIGNoYW5nZSBzaW5jZSB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBleHBv
c2VkIHRvIEphdmFTY3JpcHQgb3IgYW55IHdlYiBpbnRlcmZhY2UuCisgICAgICAgICogaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVu
dDo6ZGVzZWxlY3RJdGVtcyk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCku
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleCk6
IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcik6IEFkZGVkIGNhbGxp
bmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0
RWxlbWVudDo6dmFsdWVNaXNzaW5nKTogQWRkZWQgdmFsdWVNaXNzaW5nKCkgdG8gY2hlY2sgaWYg
c2VsZWN0aW5nIGFuIGludmFsaWQgb3IgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9uIHdoZW4gYSB2
YWxpZCByZXF1aXJlZCBhdHRyaWJ1dGUgaXMgc3BlY2lmaWVkLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hTZWxlY3RJdGVtKTogQWRkZWQgY2FsbGluZyBzZXRO
ZWVkc1ZhbGlkaXR5Q2hlY2soKS4gTm8gdGVzdHMgZm9yIHRoaXMgY2hhbmdlIHNpbmNlIGl0IGlz
IG5vdCBjYWxsZWQgeWV0LiBMb29rIGF0IHRoZSBidWcgMzYxNzcgYW5kIHRoZSBjaGFuZ2VzZXQg
NTYxODAuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWRkKTogQWRkZWQg
Y2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjpyZW1vdmUpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVj
aygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6IEFk
ZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0QWxsKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlk
aXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpyZXNldCk6
IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbik6IEFkZGVkIGNhbGxp
bmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuIFNraXBwZWQgYWRkaW5nIHRlc3RzIGZvciB0aGlz
IGNoYW5nZSBhcyB0b28gY29tcGxpY2F0ZWQuLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVj
dEVsZW1lbnQ6OnNldExlbmd0aCk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNoZWNr
KCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aXNSZXF1aXJlZEZvcm1D
b250cm9sKTogQ2hlY2sgaWYgcmVxdWlyZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNlbGVjdEVsZW1lbnQ6Omhhc1BsYWNlaG9sZGVyTGFiZWxPcHRpb24pOiBBZGRlZC4KKyAgICAg
ICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Vs
ZWN0RWxlbWVudDo6aXNPcHRpb25hbEZvcm1Db250cm9sKTogQ2hlY2sgaWYgbm90IHJlcXVpcmVk
LgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBBZGRlZCBhIHJlcXVpcmVk
IGF0dHJpYnV0ZSB0byBzZWxlY3QgZWxlbWVudHMuLgorICAgICAgICAqIGh0bWwvVmFsaWRpdHlT
dGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3Npbmcp
OiBBZGRlZCB2YWx1ZU1pc3NpbmcgY2hlY2sgZm9yIHNlbGVjdCBlbGVtZW50cyBpbnRvIHRoZSBn
bG9iYWwgY2hlY2tlciwgVmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKCkuCisKIDIwMTAtMTIt
MDcgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NlbGVjdEVs
ZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggZDIzNmM5NjY1
ZGM5ZTJhZmJlYTIxZTFkYjM1MDE4ZmUxMjEzNGIyNS4uMTNhMzEzMWZkZTZjMzBiZjc0NDYzNjMy
YjY5MWQxZDdiNWE4Mjg3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAKQEAgLTQ1Myw2ICs0NTMsNyBA
QCB2b2lkIFNlbGVjdEVsZW1lbnQ6OnBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUoU2VsZWN0RWxlbWVu
dERhdGEmIGRhdGEsIEVsZW1lbnQqIGVsZQogewogICAgIGJvb2wgb2xkVXNlc01lbnVMaXN0ID0g
ZGF0YS51c2VzTWVudUxpc3QoKTsKICAgICBkYXRhLnNldE11bHRpcGxlKCFhdHRyaWJ1dGUtPmlz
TnVsbCgpKTsKKyAgICBzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KHRvU2VsZWN0RWxl
bWVudChlbGVtZW50KSktPnNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgIGlmIChvbGRVc2Vz
TWVudUxpc3QgIT0gZGF0YS51c2VzTWVudUxpc3QoKSAmJiBlbGVtZW50LT5hdHRhY2hlZCgpKSB7
CiAgICAgICAgIGVsZW1lbnQtPmRldGFjaCgpOwogICAgICAgICBlbGVtZW50LT5hdHRhY2goKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGM2ODBlOTJlNDBhYTk1MTJhYTgyN2Vl
ODlhMjdjMGFhZWFjZTM4MDAuLjk2OGY2MjkzYzdjODdjNDI2MGRmOGM5YWYwN2JjMWVjOWM1ZGVj
OTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNzgsMTEgKzc4LDEzIEBAIGlu
dCBIVE1MU2VsZWN0RWxlbWVudDo6c2VsZWN0ZWRJbmRleCgpIGNvbnN0CiB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpkZXNlbGVjdEl0ZW1zKEhUTUxPcHRpb25FbGVtZW50KiBleGNsdWRlRWxlbWVu
dCkKIHsKICAgICBTZWxlY3RFbGVtZW50OjpkZXNlbGVjdEl0ZW1zKG1fZGF0YSwgdGhpcywgZXhj
bHVkZUVsZW1lbnQpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4KGludCBvcHRpb25JbmRleCwgYm9vbCBk
ZXNlbGVjdCkKIHsKICAgICBTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4KG1fZGF0YSwg
dGhpcywgb3B0aW9uSW5kZXgsIGRlc2VsZWN0LCBmYWxzZSwgZmFsc2UpOworICAgIHNldE5lZWRz
VmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3Rl
ZEluZGV4QnlVc2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBkZXNlbGVjdCwgYm9vbCBmaXJlT25D
aGFuZ2VOb3csIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbikKQEAgLTkxLDYgKzkzLDcgQEAg
dm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihpbnQgb3B0aW9u
SW5kZXgsIGJvb2wgZGVzZWxlY3QsIGIKICAgICAvLyBtb3VzZWRvd24gZXZlbnRzLiBUaGlzIGFs
bG93cyB0aGF0IHNhbWUgYmVoYXZpb3IgcHJvZ3JhbW1hdGljYWxseS4KICAgICBpZiAoIW1fZGF0
YS51c2VzTWVudUxpc3QoKSkgewogICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKG1fZGF0YSwg
dGhpcywgb3B0aW9uSW5kZXgsIGFsbG93TXVsdGlwbGVTZWxlY3Rpb24sIGZhbHNlKTsKKyAgICAg
ICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAgICAgIGlmIChmaXJlT25DaGFuZ2VOb3cp
CiAgICAgICAgICAgICBsaXN0Qm94T25DaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0
LDYgKzEwNyw0MiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlV
c2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBkZXNlbGVjdCwgYgogICAgICAgICByZXR1cm47CiAg
ICAgCiAgICAgU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChtX2RhdGEsIHRoaXMsIG9w
dGlvbkluZGV4LCBkZXNlbGVjdCwgZmlyZU9uQ2hhbmdlTm93LCB0cnVlKTsKKyAgICBzZXROZWVk
c1ZhbGlkaXR5Q2hlY2soKTsKK30KKworYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6aGFzUGxhY2Vo
b2xkZXJMYWJlbE9wdGlvbigpIGNvbnN0Cit7CisgICAgLy8gVGhlIHNlbGVjdCBlbGVtZW50IGhh
cyBubyBwbGFjZWhvbGRlciBsYWJlbCBvcHRpb24gaWYgaXQgaGFzIGFuIGF0dHJpYnV0ZSAibXVs
dGlwbGUiIHNwZWNpZmllZCBvciBhIGRpc3BsYXkgc2l6ZSBvZiBub24tMS4KKyAgICAvLyAKKyAg
ICAvLyBUaGUgY29uZGl0aW9uICJzaXplKCkgPiAxIiBpcyBhY3R1YWxseSBub3QgY29tcGxpYW50
IHdpdGggdGhlIEhUTUw1IHNwZWMgYXMgb2YgRGVjIDMsIDIwMTAuICJzaXplKCkgIT0gMSIgaXMg
Y29ycmVjdC4KKyAgICAvLyBVc2luZyAic2l6ZSgpID4gMSIgaGVyZSBiZWNhdXNlIHNpemUoKSBt
YXkgYmUgMCBpbiBXZWJLaXQuCisgICAgLy8gU2VlIHRoZSBkaXNjdXNzaW9uIGF0IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzg4NworICAgIC8vCisgICAgLy8gIjAg
c2l6ZSgpIiBoYXBwZW5zIHdoZW4gYW4gYXR0cmlidXRlICJzaXplIiBpcyBhYnNlbnQgb3IgYW4g
aW52YWxpZCBzaXplIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQuCisgICAgLy8gSW4gdGhpcyBjYXNl
LCB0aGUgZGlzcGxheSBzaXplIHNob3VsZCBiZSBhc3N1bWVkIGFzIHRoZSBkZWZhdWx0LgorICAg
IC8vIFRoZSBkZWZhdWx0IGRpc3BsYXkgc2l6ZSBpcyAxIGZvciBub24tbXVsdGlwbGUgc2VsZWN0
IGVsZW1lbnRzLCBhbmQgNCBmb3IgbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnRzLgorICAgIC8vCisg
ICAgLy8gRmluYWxseSwgaWYgc2l6ZSgpID09IDAgYW5kIG5vbi1tdWx0aXBsZSwgdGhlIGRpc3Bs
YXkgc2l6ZSBjYW4gYmUgYXNzdW1lZCBhcyAxLgorICAgIGlmIChtdWx0aXBsZSgpIHx8IHNpemUo
KSA+IDEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGludCBsaXN0SW5kZXggPSBvcHRp
b25Ub0xpc3RJbmRleCgwKTsKKyAgICBBU1NFUlQobGlzdEluZGV4ID49IDApOworICAgIGlmIChs
aXN0SW5kZXggPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgSFRNTE9wdGlvbkVsZW1l
bnQqIG9wdGlvbiA9IHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4obGlzdEl0ZW1zKClb
bGlzdEluZGV4XSk7CisgICAgcmV0dXJuICFvcHRpb24tPmRpc2FibGVkKCkgJiYgIWxpc3RJbmRl
eCAmJiBvcHRpb24tPnZhbHVlKCkuaXNFbXB0eSgpOworfQorCitib29sIEhUTUxTZWxlY3RFbGVt
ZW50Ojp2YWx1ZU1pc3NpbmcoKSBjb25zdAoreworICAgIGlmICghaXNSZXF1aXJlZEZvcm1Db250
cm9sKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGludCBmaXJzdFNlbGVjdGlvbklu
ZGV4ID0gc2VsZWN0ZWRJbmRleCgpOworCisgICAgLy8gSWYgYSBub24tcGxhY2Vob2xlciBsYWJl
bCBvcHRpb24gaXMgc2VsZWN0ZWQgKGZpcnN0U2VsZWN0aW9uSW5kZXggPiAwKSwgaXQncyBub3Qg
dmFsdWUtbWlzc2luZy4KKyAgICByZXR1cm4gZmlyc3RTZWxlY3Rpb25JbmRleCA8IDAgfHwgKCFm
aXJzdFNlbGVjdGlvbkluZGV4ICYmIGhhc1BsYWNlaG9sZGVyTGFiZWxPcHRpb24oKSk7CiB9CiAK
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hTZWxlY3RJdGVtKGludCBsaXN0SW5kZXgs
IGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQsIGJvb2wgZmlyZU9uQ2hh
bmdlTm93KQpAQCAtMTEyLDYgKzE1MSw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RC
b3hTZWxlY3RJdGVtKGludCBsaXN0SW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjCiAgICAg
ICAgIHNldFNlbGVjdGVkSW5kZXhCeVVzZXIobGlzdFRvT3B0aW9uSW5kZXgobGlzdEluZGV4KSwg
dHJ1ZSwgZmlyZU9uQ2hhbmdlTm93KTsKICAgICBlbHNlIHsKICAgICAgICAgdXBkYXRlU2VsZWN0
ZWRTdGF0ZShtX2RhdGEsIHRoaXMsIGxpc3RJbmRleCwgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMs
IHNoaWZ0KTsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAgICAgIGlmIChm
aXJlT25DaGFuZ2VOb3cpCiAgICAgICAgICAgICBsaXN0Qm94T25DaGFuZ2UoKTsKICAgICB9CkBA
IC0xNDQsNiArMTg0LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YWRkKEhUTUxFbGVtZW50
ICplbGVtZW50LCBIVE1MRWxlbWVudCAqYmVmb3JlLCBFeGNlcHRpb24KICAgICAgICAgcmV0dXJu
OwogCiAgICAgaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIGJlZm9yZSwgZWMpOworICAgIHNldE5lZWRz
VmFsaWRpdHlDaGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZW1vdmUoaW50
IGluZGV4KQpAQCAtMTU2LDYgKzE5Nyw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJlbW92
ZShpbnQgaW5kZXgpCiAgICAgQVNTRVJUKGl0ZW0tPnBhcmVudE5vZGUoKSk7CiAgICAgRXhjZXB0
aW9uQ29kZSBlYzsKICAgICBpdGVtLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKGl0ZW0sIGVj
KTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogU3RyaW5nIEhUTUxTZWxlY3RF
bGVtZW50Ojp2YWx1ZSgpCkBAIC0xOTUsNiArMjM3LDcgQEAgYm9vbCBIVE1MU2VsZWN0RWxlbWVu
dDo6c2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYgc3RhdGUp
CiB7CiAgICAgU2VsZWN0RWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUobV9kYXRhLCB0
aGlzLCBzdGF0ZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgCkBA
IC0yMTUsNiArMjU4LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogICAgICAgICAgICAgcmVjYWxjTGlzdEl0ZW1zSWZOZWVk
ZWQoKTsKIAogICAgICAgICBtX2RhdGEuc2V0U2l6ZShzaXplKTsKKyAgICAgICAgc2V0TmVlZHNW
YWxpZGl0eUNoZWNrKCk7CiAgICAgICAgIGlmICgob2xkVXNlc01lbnVMaXN0ICE9IG1fZGF0YS51
c2VzTWVudUxpc3QoKSB8fCAoIW9sZFVzZXNNZW51TGlzdCAmJiBtX2RhdGEuc2l6ZSgpICE9IG9s
ZFNpemUpKSAmJiBhdHRhY2hlZCgpKSB7CiAgICAgICAgICAgICBkZXRhY2goKTsKICAgICAgICAg
ICAgIGF0dGFjaCgpOwpAQCAtMjU1LDYgKzI5OSw3IEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6
OmNhblNlbGVjdEFsbCgpIGNvbnN0CiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwo
KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbChtX2RhdGEsIHRoaXMpOworICAgIHNl
dE5lZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCiBSZW5kZXJPYmplY3QqIEhUTUxTZWxlY3RFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKQEAg
LTMxNSw2ICszNjAsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRSZWNhbGNMaXN0SXRl
bXMoKQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQoKQogewogICAgIFNlbGVjdEVsZW1l
bnQ6OnJlc2V0KG1fZGF0YSwgdGhpcyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9
CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCgpCkBAIC0zNTAs
NiArMzk2LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0aW9uRW5k
SW5kZXgoaW50IGluZGV4KQogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNl
bGVjdGlvbihib29sIGRlc2VsZWN0T3RoZXJPcHRpb25zKQogewogICAgIFNlbGVjdEVsZW1lbnQ6
OnVwZGF0ZUxpc3RCb3hTZWxlY3Rpb24obV9kYXRhLCB0aGlzLCBkZXNlbGVjdE90aGVyT3B0aW9u
cyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6Om1lbnVMaXN0T25DaGFuZ2UoKQpAQCAtNDU4LDYgKzUwNSw3IEBAIHZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6OnNldExlbmd0aCh1bnNpZ25lZCBuZXdMZW4sIEV4Y2VwdGlvbkNvZGUmIGVj
KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorICAgIHNldE5lZWRzVmFsaWRpdHlD
aGVjaygpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzY3JvbGxUb1NlbGVjdGlvbigp
CkBAIC00NzEsNCArNTE5LDkgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRv
VHJlZShib29sIGRlZXApCiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6aW5z
ZXJ0ZWRJbnRvVHJlZShkZWVwKTsKIH0KIAorYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6aXNSZXF1
aXJlZEZvcm1Db250cm9sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmVxdWlyZWQoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggYTNiNDQ2MGQ0YmM5
MGVmOTg4ZGQ2ZWIwNzEzYTlmYjlmODI1MDMzMi4uZmMzMjY1OWE5ZWU0MGI0MGQ4ZmFjMTBjMjRk
ZDE5NjQxMTc5NWY3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQzLDYgKzQzLDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZEluZGV4KGludCBpbmRleCwg
Ym9vbCBkZXNlbGVjdCA9IHRydWUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZEluZGV4
QnlVc2VyKGludCBpbmRleCwgYm9vbCBkZXNlbGVjdCA9IHRydWUsIGJvb2wgZmlyZU9uQ2hhbmdl
Tm93ID0gZmFsc2UsIGJvb2wgYWxsb3dNdWx0aXBsZVNlbGVjdGlvbiA9IGZhbHNlKTsKIAorICAg
IC8vIEZvciBWYWxpZGl0eVN0YXRlCisgICAgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdDsKKwog
ICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBpbnQgc2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGF0YS5zaXplKCk7IH0KQEAgLTEzNCw3ICsxMzcsMTAgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwogCi0gICAgdmly
dHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4g
IWlzUmVxdWlyZWRGb3JtQ29udHJvbCgpOyB9CisgICAgdmlydHVhbCBib29sIGlzUmVxdWlyZWRG
b3JtQ29udHJvbCgpIGNvbnN0OworCisgICAgYm9vbCBoYXNQbGFjZWhvbGRlckxhYmVsT3B0aW9u
KCkgY29uc3Q7CiAKICAgICBTZWxlY3RFbGVtZW50RGF0YSBtX2RhdGE7CiAgICAgQ29sbGVjdGlv
bkNhY2hlIG1fY29sbGVjdGlvbkluZm87CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRl
eCAyZTUzYmNhYTZjNjM3MDgxNDY3ZjE1NjA2NmQwZWNhYTg1MjdiNzI3Li5mNWFjNjliMmY4MWMz
OTMwODQxMWY2ZGI4ZWYwYTZmNDM1OWFmYWYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGwKQEAgLTQ5LDYgKzQ5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBtdWx0
aXBsZTsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIG5hbWU7CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiByZXF1aXJlZDsK
ICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2l6ZTsKICAgICAgICAgCiAgICAgICAgIFtPbGRTdHls
ZU9iakNdIHZvaWQgYWRkKGluIEhUTUxFbGVtZW50IGVsZW1lbnQsIGluIEhUTUxFbGVtZW50IGJl
Zm9yZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5jcHAgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKaW5kZXggMmZi
MWUyYzUwODQ3NDRhZTM2MjBhNmE0ODQ2MDY5N2VkYjcxOTRkOC4uMDU2NTAzNWFkNTFjY2EzZmY5
NmVjMDMwMDk4NzY4MzdlNmJlMzQxZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5
U3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcApAQCAtMjYsNiAr
MjYsNyBAQAogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRl
eHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUg
IkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTEwNSw2ICsxMDYsOSBAQCB2b2lkIFZhbGlkaXR5U3Rh
dGU6OnNldEN1c3RvbUVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiBib29sIFZh
bGlkaXR5U3RhdGU6OnZhbHVlTWlzc2luZygpIGNvbnN0CiB7CiAgICAgSFRNTEVsZW1lbnQqIGVs
ZW1lbnQgPSB0b0hUTUxFbGVtZW50KG1fY29udHJvbCk7CisgICAgaWYgKCFlbGVtZW50LT53aWxs
VmFsaWRhdGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKGVsZW1lbnQtPmhh
c1RhZ05hbWUoaW5wdXRUYWcpKSB7CiAgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0g
c3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQpOwogICAgICAgICByZXR1cm4g
aW5wdXQtPnZhbHVlTWlzc2luZyhpbnB1dC0+dmFsdWUoKSk7CkBAIC0xMTMsNiArMTE3LDEwIEBA
IGJvb2wgVmFsaWRpdHlTdGF0ZTo6dmFsdWVNaXNzaW5nKCkgY29uc3QKICAgICAgICAgSFRNTFRl
eHRBcmVhRWxlbWVudCogdGV4dEFyZWEgPSBzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50
Kj4oZWxlbWVudCk7CiAgICAgICAgIHJldHVybiB0ZXh0QXJlYS0+dmFsdWVNaXNzaW5nKHRleHRB
cmVhLT52YWx1ZSgpKTsKICAgICB9CisgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoc2VsZWN0
VGFnKSkgeworICAgICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gc3RhdGljX2Nhc3Q8
SFRNTFNlbGVjdEVsZW1lbnQqPihlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdC0+dmFs
dWVNaXNzaW5nKCk7CisgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76017</attachid>
            <date>2010-12-08 22:59:59 -0800</date>
            <delta_ts>2010-12-09 05:07:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50380-20101209160012.patch</filename>
            <type>text/plain</type>
            <size>57916</size>
            <attacher name="Dai Mikurube">dmikurube</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YjBiNTliMjY5MTYwYzQ5ZDc5NzA2NjVlNWQ0NjA3MTExZmQ4YzE3Li4xMmZiMGE3
NjE3ZTkyMGEyOTU5MDkwZGZlNWNiOWEwMThkOTZhOWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAK
KzIwMTAtMTItMDYgIERhaSBNaWt1cnViZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVx
dWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2VsZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMzgwCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9y
IHJlcXVpcmUgYXR0cmlidXRlcywgdmFsdWVNaXNzaW5nIGFuZCB2YWRpbGl0eSBjaGVjayBmb3Ig
c2VsZWN0IGVsZW1lbnRzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWw6CisgICAgICAgICogZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jl
c291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOiBBZGRlZC4KKyAgICAgICAg
KG1ha2VJbnZhbGlkKToKKyAgICAgICAgKGFwcGVuZE9wdGlvbik6CisgICAgICAgIChiYWNrZ3Jv
dW5kT2YpOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNz
YWdlLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0LWxpdmUt
cHNldWRvLXNlbGVjdG9ycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9v
YmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1
ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTAtMTItMDcgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlYmFzZWxpbmUgR1RL
KyByZXN1bHRzIGFmdGVyIHI3MzM4NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAxLWV4cGVjdGVkLnR4
dAppbmRleCBiMDY5YTc0ZTA1ZGU1MWUzNzdjMzBjMDU4NWVmNTU1NGQ0YWZjYWFmLi4xMWY0NWFm
OWZjOTNjMGRjN2I1Y2I1YzQ2ZTczMTJkYzU5YzFkMmIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMjQgQEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250
cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVpcmVkIGFuZCBibGFuazogdmFsaWRpdHkudmFs
dWVNaXNzaW5nIHNob3VsZCBiZSB0cnVlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tz
IHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIGJsYW5rIHZhbHVlcywgYmxhbmsgb3B0aW9ucyBz
ZWxlY3RlZCwgb3Igbm90aGluZyBzZWxlY3RlZC4KIAotIAotU1VDQ0VTUworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpIGlzIHRydWUK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIikgaXMgdHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3Io
InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpIGlzIHRydWUKK1BBU1MgdmFsdWVNaXNzaW5n
Rm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlz
c2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIikgaXMgZmFsc2UKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlw
bGUiKSBpcyB0cnVlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNl
bGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIikgaXMg
dHJ1ZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVj
dGVkLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIikgaXMgZmFsc2UKK1BB
U1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtb3B0Z3JvdXAiKSBpcyBmYWxzZQorUEFTUyB2YWx1
ZU1pc3NpbmdGb3IoInNlbGVjdC1kaXNhYmxlZC1vcHRpb24iKSBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAgICAgICAgIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1
ZU1pc3NpbmctMDAxLmh0bWwKaW5kZXggZGM4ODg3OTI5NDY0YjgxNGY1MjZmMDMzMTZmMGI1MTNm
NGE0MzFiNS4uNjA4Yzg5ZTZmMjIzYjRmMzljNzg3NDIzYzQ1NGNlZmFlODYwODYzNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVN
aXNzaW5nLTAwMS5odG1sCkBAIC0xLDI3ICsxLDk0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJlcXVpcmVk
IGFuZCBiYXNpYyB2YWx1ZU1pc3Npbmc8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGltIiByZXF1aXJlZC8+Cis8
dGV4dGFyZWEgaWQ9InRleHRhcmVhIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+
Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm8tb3B0aW9uIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgor
PC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtcGxhY2Vob2xkZXItc2VsZWN0ZWQiIG5hbWU9
InZpY3RpbSIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9w
dGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qt
d2l0aG91dC1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3Nl
bGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMiIgbmFt
ZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3Rl
ZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3Qg
aWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9
IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+CisgIDxvcHRpb24g
dmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbmUt
c2VsZWN0ZWQtbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxv
cHRpb24gdmFsdWU9IiIgLz4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxl
Y3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1tdWx0aXBs
ZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBz
ZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxz
ZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5hbWU9
InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlv
bj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlk
PSJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0
aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9u
IHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtl
LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRp
cGxlIHNpemU9IjIiIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cisg
IDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGlt
IiBtdWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0
aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KKzxzZWxlY3Qg
aWQ9InNlbGVjdC1vcHRncm91cCIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9wdGdyb3Vw
IGxhYmVsPSIxIj4KKyAgICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDwvb3B0Z3Jv
dXA+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBp
ZD0ic2VsZWN0LWRpc2FibGVkLW9wdGlvbiIgbmFtZT0idmljdGltIiByZXF1aXJlZD4KKyAgPG9w
dGlvbiB2YWx1ZT0iIiBkaXNhYmxlZCBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5Y
PC9vcHRpb24+Cis8L3NlbGVjdD4KIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21l
c3NhZ2UrIjwvbGk+IjsKKyAgICBmdW5jdGlvbiB2YWx1ZU1pc3NpbmdGb3IoaWQpIHsKKyAgICAg
ICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWxpZGl0eS52YWx1ZU1pc3Np
bmc7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB2YWxpZGl0eS52
YWx1ZU1pc3Npbmcgd2l0aCBibGFuayB2YWx1ZXMsIGJsYW5rIG9wdGlvbnMgc2VsZWN0ZWQsIG9y
IG5vdGhpbmcgc2VsZWN0ZWQuIik7CiAKLSAgICAgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlOYW1lKCJ2aWN0aW0iKTsKKyAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZp
Y3RpbSIpOwogCi0gICAgICAgIGxvZygodlswXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcgJiYgdlsx
XS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICB9
CisgICAgc2hvdWxkQmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoImlucHV0IiknKTsKKyAgICBzaG91
bGRCZVRydWUoJ3ZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKScpOworICAgIHNob3VsZEJlVHJ1
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIiknKTsKKyAgICBzaG91bGRCZVRy
dWUoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIiknKTsKKyAg
ICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LXBsYWNlaG9s
ZGVyIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFj
ZWhvbGRlci1zZWxlY3RlZC1zaXplMiIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlci1zaXplMiIpJyk7CisgICAgc2hvdWxk
QmVUcnVlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1ub25lLXNlbGVjdGVkLW11bHRpcGxlIikn
KTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1mYWtlLXBsYWNl
aG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1p
c3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiKScpOwor
ICAgIHNob3VsZEJlVHJ1ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1z
aXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNl
aG9sZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3Np
bmdGb3IoInNlbGVjdC1vcHRncm91cCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNz
aW5nRm9yKCJzZWxlY3QtZGlzYWJsZWQtb3B0aW9uIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBy
ZXF1aXJlZCBhbmQgYmxhbms6Ci12YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIHRydWUg
aW4gYm90aCBjYXNlcy48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiByZXF1aXJlZC8+Ci08dGV4
dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJj
b25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5n
LTAwMi1leHBlY3RlZC50eHQKaW5kZXggMzYwNjliODUzYzkxMjljNDU5ZWU3YzAzZjZiN2UzNTg5
ZTQzYWFhNC4uYmNiMmE4NDQyMjVmZmE5NmQ4Njk0NTE4MWViNzM0NzdkNzc3M2YyNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0w
MDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAyLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDE5IEBACi1UaGVyZSBh
cmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1aXJlZCBhbmQgd2l0
aCBzb21lIHZhbHVlOiB2YWxpZGl0eS52YWx1ZU1pc3Npbmcgc2hvdWxkIGJlIGZhbHNlIGluIGJv
dGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyB3aXRoIHNv
bWUgdmFsdWVzIG9yIG9wdGlvbnMgd2l0aCBzb21lIHZhbHVlcyBzZWxlY3RlZC4KIAotIAotU1VD
Q0VTUworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdmFsdWVNaXNzaW5nRm9y
KCJpbnB1dCIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0ZvcigidGV4dGFyZWEiKSBpcyBm
YWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRoLXBsYWNlaG9sZGVyIikgaXMg
ZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhv
bGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhv
dXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNT
IHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBs
ZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGgtZmFrZS1wbGFj
ZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigi
c2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZh
bHVlTWlzc2luZy0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS12YWx1ZU1pc3NpbmctMDAyLmh0bWwKaW5kZXggNmYwNmY5ZjQzNjQ1ZjQ5Y2MzM2Y3ODBiNWFm
OTYyYjE0N2E3ZTgzNS4uNzA1ZjAyMjNlNjZmYzBiOTgxNmIzNjE2OGYzODkzMmVlYjE4YjdiZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlz
c2luZy0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
dmFsdWVNaXNzaW5nLTAwMi5odG1sCkBAIC0xLDI3ICsxLDY5IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPnJl
cXVpcmVkIGFuZCBiYXNpYyB2YWx1ZU1pc3NpbmcgMjwvdGl0bGU+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIHZhbHVl
PSJzb21ldGhpbmciIHJlcXVpcmVkLz4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZp
Y3RpbSIgcmVxdWlyZWQ+c29tZXRoaW5nPC90ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdC13
aXRoLXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVl
PSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKzwvc2VsZWN0
PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXIiIG5hbWU9InZpY3RpbSIg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlvbj4KKyAgPG9w
dGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aC1mYWtl
LXBsYWNlaG9sZGVyLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIHJlcXVpcmVkPgorICA8
b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNlbGVjdGVkPlg8L29wdGlv
bj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRl
ci1zaXplMiIgbmFtZT0idmljdGltIiBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIC8+Cis8L3NlbGVj
dD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRoLWZha2UtcGxhY2Vob2xkZXItbXVsdGlwbGUiIG5h
bWU9InZpY3RpbSIgbXVsdGlwbGUgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKyAg
PG9wdGlvbiB2YWx1ZT0iWCIgc2VsZWN0ZWQ+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0
IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRpcGxlIiBuYW1lPSJ2aWN0
aW0iIG11bHRpcGxlIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9v
cHRpb24+CisgIDxvcHRpb24gdmFsdWU9IiIgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBt
dWx0aXBsZSBzaXplPSIyIiByZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0
aW9uIHZhbHVlPSJYIiBzZWxlY3RlZD5YPC9vcHRpb24+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9
InNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiIG5hbWU9InZp
Y3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgcmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiIHNl
bGVjdGVkPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorPC9zZWxlY3Q+CiA8c2Ny
aXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1
bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rp
b24gdmFsdWVNaXNzaW5nRm9yKGlkKSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCkudmFsaWRpdHkudmFsdWVNaXNzaW5nOwogICAgIH0KIAotICAgIGZ1bmN0aW9u
IHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCBjaGVja3MgdmFsaWRpdHkudmFsdWVNaXNzaW5nIHdpdGggc29tZSB2YWx1
ZXMgb3Igb3B0aW9ucyB3aXRoIHNvbWUgdmFsdWVzIHNlbGVjdGVkLiIpOwogCi0gICAgICAgIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKIAotICAgICAgICBsb2coKCF2WzBdLnZhbGlk
aXR5LnZhbHVlTWlzc2luZyAmJiAhdlsxXS52YWxpZGl0eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NF
U1MiIDogIkZBSUxVUkUiKTsKLSAgICB9CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5n
Rm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJ0ZXh0
YXJlYSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0
aC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJz
ZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVN
aXNzaW5nRm9yKCJzZWxlY3Qtd2l0aC1mYWtlLXBsYWNlaG9sZGVyLXNpemUyIiknKTsKKyAgICBz
aG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vo
b2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LXdpdGgtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11bHRp
cGxlIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRo
LWZha2UtcGxhY2Vob2xkZXItc2l6ZTItbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2Uo
J3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1zaXplMi1t
dWx0aXBsZSIpJyk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgYmVsb3csIGJvdGggcmVxdWlyZWQgYW5kIHdpdGggc29tZSB2
YWx1ZToKLXZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgYmUgZmFsc2UgaW4gYm90aCBjYXNl
cy48L3A+Ci08aW5wdXQgbmFtZT0idmljdGltIiB2YWx1ZT0ic29tZXRoaW5nIiByZXF1aXJlZC8+
Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiByZXF1aXJlZD5zb21ldGhpbmc8L3RleHRhcmVhPgot
PGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNz
aW5nLTAwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtdmFsdWVNaXNzaW5nLTAwMy1leHBlY3RlZC50eHQKaW5kZXggZGZlMzM5ODY5MGUxOWJmMzJl
YTIyMDBmYzQxNThmYTllYWIzODU3Mi4uNjNiZGNjMTI4MzI4NzVkNjUzODk0YWVkMGY1OTBmMjZl
N2Q3NDgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LXZhbHVlTWlzc2luZy0wMDMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDIyIEBACi1UaGVyZSBhcmUgdHdvIGRpc2FibGVkIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxv
dywgYm90aCByZXF1aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOiB2YWxpZGl0eS52YWx1ZU1pc3Np
bmcgc2hvdWxkIGJlIGZhbHNlIGluIGJvdGggY2FzZXMuCitUaGlzIHRlc3QgY2hlY2tzIHZhbGlk
aXR5LnZhbHVlTWlzc2luZyBvZiBkaXNhYmxlZCBmb3JtIGNvbnRyb2xzIHdpdGggYmxhbmsgdmFs
dWVzLCBibGFuayBvcHRpb25zIHNlbGVjdGVkLCBvciBub3RoaW5nIHNlbGVjdGVkLgogCi0gCi1T
VUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoImlucHV0IikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpIGlz
IGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vLW9wdGlvbiIpIGlzIGZhbHNl
CitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkIikgaXMg
ZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
IGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LXBsYWNlaG9sZGVyLXNlbGVj
dGVkLXNpemUyIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91
dC1wbGFjZWhvbGRlci1zaXplMiIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyB2YWx1ZU1pc3NpbmdG
b3IoInNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11bHRpcGxlIikgaXMgZmFsc2UK
K1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9sZGVyLW11
bHRpcGxlIikgaXMgZmFsc2UKK1BBU1MgdmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxl
Y3RlZC1zaXplMi1tdWx0aXBsZSIpIGlzIGZhbHNlCitQQVNTIHZhbHVlTWlzc2luZ0Zvcigic2Vs
ZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQor
UEFTUyB2YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC13aXRob3V0LWZha2UtcGxhY2Vob2xkZXItc2l6
ZTItbXVsdGlwbGUiKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtdmFsdWVNaXNzaW5nLTAwMy5odG1sCmluZGV4IDlk
OTJmZmIzNGI3MjI0NmZjZGE3MjA3YzQ1NzMzN2ExZWYyZmZkNGMuLjllYjBmNjNiNzJmNGNkZGQ3
Y2I4NGQwMDIwYzVmN2VhMjMzNzE2ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvVmFsaWRpdHlTdGF0ZS12YWx1ZU1pc3NpbmctMDAzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXZhbHVlTWlzc2luZy0wMDMuaHRtbApAQCAtMSwyNyAr
MSw4MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgog
PGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5yZXF1aXJlZCBhbmQgdmFsdWVNaXNzaW5nIG9uIGRpc2Fi
bGVkIGVsZW1lbnRzPC90aXRsZT4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxpbnB1dCBpZD0iaW5wdXQiIG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQgLz4KKzx0
ZXh0YXJlYSBpZD0idGV4dGFyZWEiIG5hbWU9InZpY3RpbSIgZGlzYWJsZWQgcmVxdWlyZWQ+PC90
ZXh0YXJlYT4KKzxzZWxlY3QgaWQ9InNlbGVjdC1uby1vcHRpb24iIG5hbWU9InZpY3RpbSIgZGlz
YWJsZWQgcmVxdWlyZWQ+Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1wbGFjZWhvbGRl
ci1zZWxlY3RlZCIgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9wdGlvbiB2
YWx1ZT0iIiBzZWxlY3RlZCAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8L3Nl
bGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC13aXRob3V0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0
aW0iIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2Vs
ZWN0LXBsYWNlaG9sZGVyLXNlbGVjdGVkLXNpemUyIiBuYW1lPSJ2aWN0aW0iIHNpemU9IjIiIGRp
c2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRp
b24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdp
dGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiIG5hbWU9InZpY3RpbSIgc2l6ZT0iMiIgZGlzYWJsZWQg
cmVxdWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKyAgPG9wdGlvbiB2YWx1
ZT0iIiBzZWxlY3RlZCAvPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtbm9uZS1zZWxl
Y3RlZC1tdWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJlZD4K
KyAgPG9wdGlvbiB2YWx1ZT0iIiAvPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cis8
L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1mYWtlLXBsYWNlaG9sZGVyLXNlbGVjdGVkLW11
bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0
aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4K
Kzwvc2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1t
dWx0aXBsZSIgbmFtZT0idmljdGltIiBtdWx0aXBsZSBkaXNhYmxlZCByZXF1aXJlZD4KKyAgPG9w
dGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+
Cis8L3NlbGVjdD4KKzxzZWxlY3QgaWQ9InNlbGVjdC1ub25lLXNlbGVjdGVkLXNpemUyLW11bHRp
cGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9IjIiIGRpc2FibGVkIHJlcXVpcmVkPgor
ICA8b3B0aW9uIHZhbHVlPSIiIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwv
c2VsZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LWZha2UtcGxhY2Vob2xkZXItc2VsZWN0ZWQtc2l6
ZTItbXVsdGlwbGUiIG5hbWU9InZpY3RpbSIgbXVsdGlwbGUgc2l6ZT0iMiIgZGlzYWJsZWQgcmVx
dWlyZWQ+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1ZT0i
WCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8c2VsZWN0IGlkPSJzZWxlY3Qtd2l0aG91dC1mYWtl
LXBsYWNlaG9sZGVyLXNpemUyLW11bHRpcGxlIiBuYW1lPSJ2aWN0aW0iIG11bHRpcGxlIHNpemU9
IjIiIGRpc2FibGVkIHJlcXVpcmVkPgorICA8b3B0aW9uIHZhbHVlPSJYIj5YPC9vcHRpb24+Cisg
IDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5ndWFn
ZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2co
bWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlu
bmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHZhbHVlTWlz
c2luZ0ZvcihpZCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LnZhbGlkaXR5LnZhbHVlTWlzc2luZzsKICAgICB9CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewot
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgY2hlY2tzIHZhbGlkaXR5LnZhbHVlTWlzc2luZyBvZiBkaXNhYmxlZCBmb3JtIGNvbnRyb2xz
IHdpdGggYmxhbmsgdmFsdWVzLCBibGFuayBvcHRpb25zIHNlbGVjdGVkLCBvciBub3RoaW5nIHNl
bGVjdGVkLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmlj
dGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKIAot
ICAgICAgICBsb2coKCF2WzBdLnZhbGlkaXR5LnZhbHVlTWlzc2luZyAmJiAhdlsxXS52YWxpZGl0
eS52YWx1ZU1pc3NpbmcpID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKLSAgICB9CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxz
ZSgndmFsdWVNaXNzaW5nRm9yKCJ0ZXh0YXJlYSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFs
dWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm8tb3B0aW9uIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCd2
YWx1ZU1pc3NpbmdGb3IoInNlbGVjdC1wbGFjZWhvbGRlci1zZWxlY3RlZCIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1wbGFjZWhvbGRlciIp
Jyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3QtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zv
cigic2VsZWN0LXdpdGhvdXQtcGxhY2Vob2xkZXItc2l6ZTIiKScpOworICAgIHNob3VsZEJlRmFs
c2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LW5vbmUtc2VsZWN0ZWQtbXVsdGlwbGUiKScpOwor
ICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2luZ0Zvcigic2VsZWN0LWZha2UtcGxhY2Vob2xk
ZXItc2VsZWN0ZWQtbXVsdGlwbGUiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ3ZhbHVlTWlzc2lu
Z0Zvcigic2VsZWN0LXdpdGhvdXQtZmFrZS1wbGFjZWhvbGRlci1tdWx0aXBsZSIpJyk7CisgICAg
c2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtbm9uZS1zZWxlY3RlZC1zaXpl
Mi1tdWx0aXBsZSIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxl
Y3QtZmFrZS1wbGFjZWhvbGRlci1zZWxlY3RlZC1zaXplMi1tdWx0aXBsZSIpJyk7CisgICAgc2hv
dWxkQmVGYWxzZSgndmFsdWVNaXNzaW5nRm9yKCJzZWxlY3Qtd2l0aG91dC1mYWtlLXBsYWNlaG9s
ZGVyLXNpemUyLW11bHRpcGxlIiknKTsKKworICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08cD5UaGVy
ZSBhcmUgdHdvIGRpc2FibGVkIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCByZXF1
aXJlZCBhbmQgd2l0aCBzb21lIHZhbHVlOgotdmFsaWRpdHkudmFsdWVNaXNzaW5nIHNob3VsZCBi
ZSBmYWxzZSBpbiBib3RoIGNhc2VzLjwvcD4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0iIGRpc2FibGVk
IHJlcXVpcmVkIC8+Ci08dGV4dGFyZWEgbmFtZT0idmljdGltIiBkaXNhYmxlZCByZXF1aXJlZD48
L3RleHRhcmVhPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRp
dHktMDAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0
eS0wMDItZXhwZWN0ZWQudHh0CmluZGV4IDE4NTc5NDQ0ODcwZDM5NDA1NWQzYTkyMDM3NDRjN2Vk
ODQwYzhlODQuLjgzODg4Mjg4OGY3NjJiYjE0NTFkMTgwYWIyOWYxZmI4ODg4OGM4OTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDItZXhwZWN0
ZWQudHh0CkBAIC0xLDEyICsxLDE0IEBACi1UaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFsaWRp
dHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQgb24g
aW52YWxpZCBlbGVtZW50cy4KK1RoaXMgdGVzdCBjaGVja3MgaWYgY2hlY2tWYWxpZGl0eSgpIHJl
dHVybnMgY29ycmVjdGx5IGEgZmFsc2UgKG1lYW5pbmcgZXJyb3IpIHJlc3VsdCBvbiBpbnZhbGlk
IGVsZW1lbnRzLCBhbmQgcmV0dXJucyBhIHRydWUgcmVzdWx0IG9uIGEgYmxhbmsgYnV0IHZhbGlk
IGVsZW1lbnRzLiBCbGFuayBidXQgbm9uLXBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbnMgYXJlIHZh
bGlkLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotICAKLVBBU1MgdltpXS5jaGVj
a1ZhbGlkaXR5KCkgaXMgZmFsc2UKLVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UK
LVBBU1MgdltpXS5jaGVja1ZhbGlkaXR5KCkgaXMgZmFsc2UKKyAgICAKK1BBU1MgY2hlY2tWYWxp
ZGl0eUZvcigiaW5wdXQtZW1wdHkiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJp
bnB1dC1wYXR0ZXJuLW1pc21hdGNoIikgaXMgZmFsc2UKK1BBU1MgY2hlY2tWYWxpZGl0eUZvcigi
dGV4dGFyZWEiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3QtcGxhY2Vo
b2xkZXIiKSBpcyBmYWxzZQorUEFTUyBjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qtbm9uLXBsYWNl
aG9sZGVyIikgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRp
dHktMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrVmFsaWRpdHktMDAyLmh0
bWwKaW5kZXggMjg3MmZhZDM1YmVlODJlNDY1YmVlMTdlZmJmMTFmNTgwZmY0MmNjOS4uNjYyZjZl
YmZkMzExMWVhZmUyYjcxMWNmOGIwMDJmMWIwOGJlZTlkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9jaGVja1ZhbGlkaXR5LTAwMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvY2hlY2tWYWxpZGl0eS0wMDIuaHRtbApAQCAtNywxOSArNywzMyBAQAogPGJvZHk+
CiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxmb3JtIG1ldGhvZD0iZ2V0Ij4KLTxpbnB1dCBu
YW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHJlcXVpcmVkLz4KLTxpbnB1dCBuYW1lPSJ2aWN0aW0i
IHR5cGU9InRleHQiIHBhdHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIvPgot
PHRleHRhcmVhIG5hbWU9InZpY3RpbSIgcmVxdWlyZWQ+PC90ZXh0YXJlYT4KKzxpbnB1dCBpZD0i
aW5wdXQtZW1wdHkiIG5hbWU9InZpY3RpbSIgdHlwZT0idGV4dCIgcmVxdWlyZWQvPgorPGlucHV0
IGlkPSJpbnB1dC1wYXR0ZXJuLW1pc21hdGNoIiBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHBh
dHRlcm49IkxvcmVtIGlwc3VtIiB2YWx1ZT0iTG9yZW1pcHN1bSIvPgorPHRleHRhcmVhIGlkPSJ0
ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBpZD0i
c2VsZWN0LXBsYWNlaG9sZGVyIiBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPgorICA8b3B0aW9uIHZh
bHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9IlgiPlg8L29wdGlvbj4KKzwvc2Vs
ZWN0PgorPHNlbGVjdCBpZD0ic2VsZWN0LW5vbi1wbGFjZWhvbGRlciIgbmFtZT0idmljdGltIiBy
ZXF1aXJlZD4KKyAgPG9wdGlvbiB2YWx1ZT0iWCI+WDwvb3B0aW9uPgorICA8b3B0aW9uIHZhbHVl
PSIiIHNlbGVjdGVkIC8+Cis8L3NlbGVjdD4KIDwvZm9ybT4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIGlmIGNoZWNrVmFs
aWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5nIGVycm9yKSByZXN1bHQg
b24gaW52YWxpZCBlbGVtZW50cy4iKTsKKyAgICBmdW5jdGlvbiBjaGVja1ZhbGlkaXR5Rm9yKGlk
KSB7CisgICAgICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hlY2tWYWxp
ZGl0eSgpOworICAgIH0KIAotdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0i
KTsKLWZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQotICAgIHNob3VsZEJlKCJ2W2ldLmNo
ZWNrVmFsaWRpdHkoKSIsICJmYWxzZSIpOworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hl
Y2tzIGlmIGNoZWNrVmFsaWRpdHkoKSByZXR1cm5zIGNvcnJlY3RseSBhIGZhbHNlIChtZWFuaW5n
IGVycm9yKSByZXN1bHQgb24gaW52YWxpZCBlbGVtZW50cywgYW5kIHJldHVybnMgYSB0cnVlIHJl
c3VsdCBvbiBhIGJsYW5rIGJ1dCB2YWxpZCBlbGVtZW50cy4gQmxhbmsgYnV0IG5vbi1wbGFjZWhv
bGRlciBsYWJlbCBvcHRpb25zIGFyZSB2YWxpZC4iKTsKIAotdmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CisgICAgc2hvdWxkQmVGYWxzZSgnY2hlY2tWYWxpZGl0eUZvcigiaW5wdXQtZW1w
dHkiKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoImlucHV0LXBhdHRl
cm4tbWlzbWF0Y2giKScpOworICAgIHNob3VsZEJlRmFsc2UoJ2NoZWNrVmFsaWRpdHlGb3IoInRl
eHRhcmVhIiknKTsKKyAgICBzaG91bGRCZUZhbHNlKCdjaGVja1ZhbGlkaXR5Rm9yKCJzZWxlY3Qt
cGxhY2Vob2xkZXIiKScpOworICAgIHNob3VsZEJlVHJ1ZSgnY2hlY2tWYWxpZGl0eUZvcigic2Vs
ZWN0LW5vbi1wbGFjZWhvbGRlciIpJyk7CisKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS1leHBlY3RlZC50eHQKaW5kZXggOWIyMDE0
MzE4YTNlNTBiZDNlZjVkNDAwMTM2YzMwMjQ2OTFmODljZC4uYjliNTRiODc2NGM0OWRhNjAxN2E0
MTdjN2U4ZjM3ZmYxY2U2NGFjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
ZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDEtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsMTIg
QEAKLVRoZXJlIGFyZSB0d28gZm9ybSBjb250cm9sIGVsZW1lbnRzIGJlbG93LCBib3RoIHJlcXVp
cmVkLgorVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYWxsIHJl
cXVpcmVkLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyByZXF1aXJlZEZvcigiaW5wdXQiKSBpcyB0cnVlCitQQVNTIHJlcXVpcmVkRm9yKCJ0ZXh0YXJl
YSIpIGlzIHRydWUKK1BBU1MgcmVxdWlyZWRGb3IoInNlbGVjdCIpIGlzIHRydWUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKaW5kZXggMmYz
NGMxNjFhY2Y2YTNmNWY0MDAwODczZmQ4MjY2YzAxN2ZlMDM2MC4uOGFlYTU3YzMxNjM1NGU2N2Ri
ODk0MDA2ZTg3MGQ1MzRlZjczOTViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAxLmh0bWwKQEAgLTEsMjYgKzEsMzQgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8
dGl0bGU+cmVxdWlyZWQgYXR0cmlidXRlIHByZXNlbmNlIHRlc3Q8L3RpdGxlPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IGlkPSJpbnB1dCIgbmFtZT0idmljdGlt
IiByZXF1aXJlZCAvPgorPHRleHRhcmVhIGlkPSJ0ZXh0YXJlYSIgbmFtZT0idmljdGltIiByZXF1
aXJlZD48L3RleHRhcmVhPgorPHNlbGVjdCBpZD0ic2VsZWN0IiBuYW1lPSJ2aWN0aW0iIHJlcXVp
cmVkPgorICA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkIC8+CisgIDxvcHRpb24gdmFsdWU9Ilgi
Plg8L29wdGlvbj4KKzwvc2VsZWN0PgogPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIr
bWVzc2FnZSsiPC9saT4iOworICAgIGZ1bmN0aW9uIHJlcXVpcmVkRm9yKGlkKSB7CisgICAgICAg
IHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkucmVxdWlyZWQ7CiAgICAgfQogCi0g
ICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBkZXNjcmlwdGlvbigiVGhlcmUgYXJlIHRocmVlIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxv
dywgYWxsIHJlcXVpcmVkLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKIAotICAgICAgICBsb2coKHZbMF0ucmVxdWlyZWQgJiYgdlsxXS5yZXF1aXJlZCkgPyAi
U1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KKyAgICBzaG91bGRCZVRydWUoJ3JlcXVpcmVk
Rm9yKCJpbnB1dCIpJyk7CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigidGV4dGFyZWEi
KScpOworICAgIHNob3VsZEJlVHJ1ZSgncmVxdWlyZWRGb3IoInNlbGVjdCIpJyk7CisKKyAgICB2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJ0ZXN0KCkiPgotPHA+VGhlcmUgYXJlIHR3byBmb3JtIGNvbnRyb2wgZWxlbWVudHMg
YmVsb3csIGJvdGggcmVxdWlyZWQuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgcmVxdWlyZWQg
Lz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iIHJlcXVpcmVkPjwvdGV4dGFyZWE+Ci08aHI+Ci08
b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlcXVpcmVkLWF0dHJpYnV0ZS0wMDItZXhw
ZWN0ZWQudHh0CmluZGV4IGFjNWMwZmZmMjI4NjZlMTE1ZmYwY2M0M2NkNGRiNDljOGU5OGZiZmEu
LmMyNTU2MWQxNGNjNzYwYzI3NzgxMzhmNzRjN2YyNDY1YTIwMjYyYzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDE5IEBACi1UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVt
ZW50cyBiZWxvdywgYm90aCBvcHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJl
cXVpcmVkIERPTSBhdHRyaWJ1dGUuCitUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1l
bnRzIGJlbG93LCBhbGwgb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSByZXF1
aXJlZCBET00gYXR0cmlidXRlLgogCi0gCi1TVUNDRVNTCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworQmVmb3JlIHNldDoKK1BBU1MgcmVxdWlyZWRGb3IoImlucHV0IikgaXMgZmFsc2UK
K1BBU1MgcmVxdWlyZWRGb3IoInRleHRhcmVhIikgaXMgZmFsc2UKK1BBU1MgcmVxdWlyZWRGb3Io
InNlbGVjdCIpIGlzIGZhbHNlCisKK0FmdGVyIHNldDoKK1BBU1MgcmVxdWlyZWRGb3IoImlucHV0
IikgaXMgdHJ1ZQorUEFTUyByZXF1aXJlZEZvcigidGV4dGFyZWEiKSBpcyB0cnVlCitQQVNTIHJl
cXVpcmVkRm9yKCJzZWxlY3QiKSBpcyB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvcmVxdWlyZWQtYXR0cmlidXRlLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9yZXF1aXJlZC1hdHRyaWJ1dGUtMDAyLmh0bWwKaW5kZXggYWE4NWU4OTU0ZWUwNzgxOGQxYzI4
YmQ1NTIwYTk1YjIyMWM3N2I5MC4uOTI4ZTMzZmM4MDUwZDNlMmI0ZWE4NzViNmZlZGUzZGUwNDI2
OTNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1
dGUtMDAyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXF1aXJlZC1hdHRyaWJ1
dGUtMDAyLmh0bWwKQEAgLTEsMzIgKzEsNDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8v
SUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+cmVxdWlyZWQgYXR0
cmlidXRlIEpTIHNldDwvdGl0bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8aW5wdXQgaWQ9ImlucHV0IiBuYW1lPSJ2aWN0aW0iIC8+Cis8dGV4dGFyZWEgaWQ9InRleHRh
cmVhIiBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8c2VsZWN0IGlkPSJzZWxlY3QiIG5hbWU9
InZpY3RpbSI+CisgIDxvcHRpb24gdmFsdWU9IiIgc2VsZWN0ZWQgLz4KKyAgPG9wdGlvbiB2YWx1
ZT0iWCI+WDwvb3B0aW9uPgorPC9zZWxlY3Q+CiA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8
bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgZnVuY3Rpb24gcmVxdWlyZWRGb3IoaWQpIHsKKyAg
ICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5yZXF1aXJlZDsKICAgICB9
CiAKLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGRlc2NyaXB0aW9uKCJUaGVyZSBhcmUgdGhyZWUgZm9ybSBjb250cm9sIGVsZW1lbnRz
IGJlbG93LCBhbGwgb3B0aW9uYWwuIFRoZXkncmUgc2V0IGFzIHJlcXVpcmVkIHZpYSByZXF1aXJl
ZCBET00gYXR0cmlidXRlLiIpOwogCi0gICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7CisgICAgdiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0
aW0iKTsKIAotICAgICAgICBpZiAodlswXS5yZXF1aXJlZCA9PSBmYWxzZSAmJiB2WzFdLnJlcXVp
cmVkID09IGZhbHNlKSB7Ci0gICAgICAgICAgICB2WzBdLnJlcXVpcmVkID0gdHJ1ZTsKLSAgICAg
ICAgICAgIHZbMV0ucmVxdWlyZWQgPSB0cnVlOwotICAgICAgICAgICAgbG9nICgodlswXS5yZXF1
aXJlZCAmJiB2WzFdLnJlcXVpcmVkKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9nKCJGQUlMVVJFIik7Ci0gICAgfQorICAg
IGRlYnVnKCJCZWZvcmUgc2V0OiIpOworICAgIHNob3VsZEJlRmFsc2UoJ3JlcXVpcmVkRm9yKCJp
bnB1dCIpJyk7CisgICAgc2hvdWxkQmVGYWxzZSgncmVxdWlyZWRGb3IoInRleHRhcmVhIiknKTsK
KyAgICBzaG91bGRCZUZhbHNlKCdyZXF1aXJlZEZvcigic2VsZWN0IiknKTsKKyAgICBkZWJ1Zygi
Iik7CisKKyAgICB2WzBdLnJlcXVpcmVkID0gdHJ1ZTsKKyAgICB2WzFdLnJlcXVpcmVkID0gdHJ1
ZTsKKyAgICB2WzJdLnJlcXVpcmVkID0gdHJ1ZTsKKworICAgIGRlYnVnKCJBZnRlciBzZXQ6Iik7
CisgICAgc2hvdWxkQmVUcnVlKCdyZXF1aXJlZEZvcigiaW5wdXQiKScpOworICAgIHNob3VsZEJl
VHJ1ZSgncmVxdWlyZWRGb3IoInRleHRhcmVhIiknKTsKKyAgICBzaG91bGRCZVRydWUoJ3JlcXVp
cmVkRm9yKCJzZWxlY3QiKScpOworICAgIGRlYnVnKCIiKTsKKworICAgIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08cD5UaGVyZSBhcmUgdHdvIGZvcm0gY29udHJvbCBlbGVtZW50cyBiZWxvdywgYm90aCBv
cHRpb25hbC4gVGhleSdyZSBzZXQgYXMgcmVxdWlyZWQgdmlhIHJlcXVpcmVkIERPTSBhdHRyaWJ1
dGUuPC9wPgotPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0i
PjwvdGV4dGFyZWE+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2Vz
L3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMy
MjEzM2M1ZDI3ZmEwYjkyOWMxZGJmZDIwMDNjODg5Zjg4YmMxNjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmpzCkBAIC0wLDAgKzEsMTgzIEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHBlcmZv
cm1zIGEgY2hlY2sgdGhhdCA6dmFsaWQvOmludmFsaWQgQ1NTIHBzdWRvIHNlbGVjdG9ycyBhcmUg
bGl2ZWx5IGFwcGxpZWQuIik7CisKKy8vIFNldHVwIGZvciBzdGF0aWMgZWxlbWVudHMuCit2YXIg
Zm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZm9ybSk7Cit2YXIgbm9uRm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChub25Gb3JtKTsKKworZnVuY3Rpb24gbWFr
ZUludmFsaWQoKSB7CisgICAgdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Nl
bGVjdCcpOworICAgIHNlbGVjdC5uYW1lID0gJ2Zvbyc7CisgICAgc2VsZWN0LnJlcXVpcmVkID0g
dHJ1ZTsKKyAgICBzZWxlY3QudmFsdWUgPSAnJzsKKyAgICBmb3JtLmFwcGVuZENoaWxkKHNlbGVj
dCk7CisgICAgcmV0dXJuIHNlbGVjdDsKK30KKworZnVuY3Rpb24gYXBwZW5kT3B0aW9uKHZhbHVl
LCBzZWxlY3QpIHsKKyAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0
aW9uJyk7CisgICAgb3B0aW9uLnZhbHVlID0gdmFsdWU7CisgICAgb3B0aW9uLmlubmVyVGV4dCA9
IHZhbHVlOworICAgIHNlbGVjdC5hZGQob3B0aW9uKTsKKyAgICByZXR1cm4gb3B0aW9uOworfQor
CitmdW5jdGlvbiBpbnNlcnRPcHRpb25CZWZvcmUodmFsdWUsIHNlbGVjdCwgYmVmb3JlKSB7Cisg
ICAgdmFyIG9wdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ29wdGlvbicpOworICAgIG9w
dGlvbi52YWx1ZSA9IHZhbHVlOworICAgIG9wdGlvbi5pbm5lclRleHQgPSB2YWx1ZTsKKyAgICBz
ZWxlY3QuYWRkKG9wdGlvbiwgYmVmb3JlKTsKKyAgICByZXR1cm4gb3B0aW9uOworfQorCitmdW5j
dGlvbiByZW1vdmVPcHRpb24ob3B0aW9uLCBzZWxlY3QpIHsKKyAgICBzZWxlY3QucmVtb3ZlKG9w
dGlvbik7CisgICAgcmV0dXJuIG9wdGlvbjsKK30KKworZnVuY3Rpb24gYmFja2dyb3VuZE9mKGVs
KSB7CisgICAgcmV0dXJuIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZWws
IG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKTsKK30KKwordmFyIGVs
QmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5kT2YoZWwpJzsKK3ZhciBpbnZhbGlkQ29sb3IgPSAncmdi
KDI1NSwgMCwgMCknOwordmFyIG5vcm1hbENvbG9yID0gJ3JnYigyNTUsIDI1NSwgMjU1KSc7Cit2
YXIgZGlzYWJsZWRDb2xvciA9ICdyZ2IoMCwgMCwgMCknOwordmFyIHJlYWRPbmx5Q29sb3IgPSAn
cmdiKDAsIDI1NSwgMCknCit2YXIgdmFsaWRDb2xvciA9ICdyZ2IoMCwgMCwgMjU1KSc7CisKKy8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisvLyAgICAgd2lsbFZhbGlkYXRlIGNo
YW5nZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3ZhciBlbCA9IG1ha2VJ
bnZhbGlkKCk7Cit2YXIgbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK3ZhciBvMiA9IGFwcGVu
ZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKKy8vIENvbmZpcm0gdGhpcyBl
bGVtZW50IGlzIGludmFsaWQuCitkZWJ1ZygnQ2hlY2sgdGhlIGluaXRpYWwgc3RhdGU6Jyk7Citz
aG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5nZSBu
YW1lOicpOworZWwubmFtZSA9ICcnOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENv
bG9yJyk7CitlbC5uYW1lID0gJ2Jhcic7CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlk
Q29sb3InKTsKKworZGVidWcoJ0NoYW5nZSBkaXNhYmxlZDonKTsKK2VsID0gbWFrZUludmFsaWQo
KTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVs
KTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK2VsLmRpc2FibGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVs
QmFja2dyb3VuZCwgJ2Rpc2FibGVkQ29sb3InKTsKK2VsLmRpc2FibGVkID0gZmFsc2U7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0luc2lkZS9vdXRz
aWRlIG9mIGEgZm9ybTonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9u
KCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK25vbkZvcm0uYXBwZW5kQ2hpbGQoZWwpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52
YWxpZENvbG9yJyk7Citmb3JtLmFwcGVuZENoaWxkKGVsKTsKK3Nob3VsZEJlKGVsQmFja2dyb3Vu
ZCwgJ2ludmFsaWRDb2xvcicpOworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorLy8gICAgIHZhbHVlIGNoYW5nZQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK2RlYnVnKCdDaGFuZ2UgdGhlIHZhbHVlIHdpdGggYSBwbGFjZWhvbGRlciBsYWJlbCBvcHRp
b246Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOwor
bzIgPSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMi5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRC
ZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitvMS5zZWxlY3RlZCA9IHRydWU7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5nZSB0aGUg
dmFsdWUgd2l0aG91dCBhIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbjonKTsKK2VsID0gbWFrZUlu
dmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24o
JycsIGVsKTsKK28yLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3Zh
bGlkQ29sb3InKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwg
J3ZhbGlkQ29sb3InKTsKKworZGVidWcoJ0luc2VydC9yZW1vdmUgb3B0aW9uczonKTsKK2VsID0g
bWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9uKCcnLCBlbCk7CitvMiA9IGFwcGVuZE9w
dGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3Vu
ZCwgJ2ludmFsaWRDb2xvcicpOworbzMgPSBpbnNlcnRPcHRpb25CZWZvcmUoJ1knLCBlbCwgZWwu
Zmlyc3RDaGlsZCk7CitzaG91bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CityZW1v
dmVPcHRpb24obzMsIGVsKTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicp
OworbzMgPSBhcHBlbmRPcHRpb24oJ1onLCBlbCk7CitvMy5zZWxlY3RlZCA9IHRydWU7CitzaG91
bGRCZShlbEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7CitlbC5sZW5ndGggPSAyOworc2hvdWxk
QmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdTZXQgYW4gYXR0cmli
dXRlOiBtdWx0aXBsZTonKTsKK2VsID0gbWFrZUludmFsaWQoKTsKK28xID0gYXBwZW5kT3B0aW9u
KCcnLCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK28xLnNlbGVjdGVkID0gdHJ1
ZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworZWwubXVsdGlwbGUg
PSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworZWwucmVtb3Zl
QXR0cmlidXRlKCdtdWx0aXBsZScpOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENv
bG9yJyk7CisKK2RlYnVnKCdTZXQgYW4gYXR0cmlidXRlOiBzaXplOicpOworZWwgPSBtYWtlSW52
YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdY
JywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52
YWxpZENvbG9yJyk7CitlbC5zaXplID0gMjsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlk
Q29sb3InKTsKK2VsLnJlbW92ZUF0dHJpYnV0ZSgnc2l6ZScpOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAnaW52YWxpZENvbG9yJyk7CisKK2RlYnVnKCdTZWxlY3RBbGw6Jyk7CitlbCA9IG1ha2VJ
bnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIgPSBhcHBlbmRPcHRpb24o
J1gnLCBlbCk7CitlbC5tdWx0aXBsZSA9IHRydWU7CitvMS5zZWxlY3RlZCA9IGZhbHNlOworbzIu
c2VsZWN0ZWQgPSBmYWxzZTsKK3Nob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicp
OworZWwuZm9jdXMoKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJTZWxlY3RBbGwiKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLm11bHRpcGxlID0gZmFsc2U7Citv
MS5zZWxlY3RlZCA9IGZhbHNlOworbzIuc2VsZWN0ZWQgPSB0cnVlOworCitkZWJ1ZygnUmVzZXQ6
Jyk7CitlbCA9IG1ha2VJbnZhbGlkKCk7CitvMSA9IGFwcGVuZE9wdGlvbignJywgZWwpOworbzIg
PSBhcHBlbmRPcHRpb24oJ1gnLCBlbCk7CitvMi5zZWxlY3RlZCA9IHRydWU7CitzaG91bGRCZShl
bEJhY2tncm91bmQsICd2YWxpZENvbG9yJyk7Citmb3JtLnJlc2V0KCk7CitzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKy8vICAgICBDb25zdHJhaW50cyBjaGFuZ2UKKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitkZWJ1ZygnQ2hhbmdlIHJlcXVpcmVkOicpOworZWwgPSBtYWtlSW52
YWxpZCgpOworbzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdY
JywgZWwpOworbzEuc2VsZWN0ZWQgPSB0cnVlOworZWwucmVxdWlyZWQgPSBmYWxzZTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ3ZhbGlkQ29sb3InKTsKK2VsLnJlcXVpcmVkID0gdHJ1ZTsKK3No
b3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0
LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3Jp
cHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKaW5kZXggZDY4MjZkZTE4MmUzMTM3N2FjMGM0
OGQ5NDY4Y2I3NmE4YTU2ZjQ3MS4uNWM1NjU0MjcwMTUxNDJlZDJkMDZmNDQ0NjJjN2FjYzg1NWQ3
YTVmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFs
aWRhdGlvbk1lc3NhZ2UuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVz
dHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKQEAgLTI0LDYgKzI0LDEzIEBAIHJlcXVpcmVkVGV4dEFy
ZWEucmVxdWlyZWQgPSB0cnVlOwogZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsK
IHNob3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBt
aXNzaW5nJyIpOwogCisvLyBBIHJlcXVpcmVkIHNlbGVjdCB3aXRoIGFuIGVtcHR5IHZhbHVlCit2
YXIgcmVxdWlyZWRTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKTsKK3Jl
cXVpcmVkU2VsZWN0Lm5hbWUgPSAicmVxdWlyZWRTZWxlY3QiOworcmVxdWlyZWRTZWxlY3QucmVx
dWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFNlbGVjdCk7CitzaG91bGRC
ZSgicmVxdWlyZWRTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3ZhbHVlIG1pc3NpbmcnIik7
CisKIC8vIEEgdHlwZT1lbWFpbCBpbnB1dCBmb3IgdGhlICJ0eXBlIG1pc21hdGNoIiBmbGFnCiB2
YXIgZW1haWxJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiBlbWFpbElu
cHV0Lm5hbWUgPSAiZW1haWxJbnB1dCI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZDdjYjczNGVhOTJlOWY4YzRjYmViMDVkNmYzZjE0ZjI3ZDY5NTcxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUwIEBACitUaGlzIHRlc3QgcGVyZm9y
bXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBs
aXZlbHkgYXBwbGllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoZWNrIHRo
ZSBpbml0aWFsIHN0YXRlOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgor
Q2hhbmdlIG5hbWU6CitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgZGlzYWJsZWQ6CitQQVNT
IGJhY2tncm91bmRPZihlbCkgaXMgZGlzYWJsZWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwp
IGlzIGludmFsaWRDb2xvcgorSW5zaWRlL291dHNpZGUgb2YgYSBmb3JtOgorUEFTUyBiYWNrZ3Jv
dW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFs
aWRDb2xvcgorQ2hhbmdlIHRoZSB2YWx1ZSB3aXRoIGEgcGxhY2Vob2xkZXIgbGFiZWwgb3B0aW9u
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9m
KGVsKSBpcyBpbnZhbGlkQ29sb3IKK0NoYW5nZSB0aGUgdmFsdWUgd2l0aG91dCBhIHBsYWNlaG9s
ZGVyIGxhYmVsIG9wdGlvbjoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQ
QVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgorSW5zZXJ0L3JlbW92ZSBvcHRpb25z
OgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5k
T2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29s
b3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCitTZXQgYW4gYXR0cmlidXRlOiBtdWx0aXBsZToKK1BBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitTZXQg
YW4gYXR0cmlidXRlOiBzaXplOgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9m
KGVsKSBpcyBpbnZhbGlkQ29sb3IKK1NlbGVjdEFsbDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitSZXNl
dDoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgcmVxdWlyZWQ6CitQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgdmFsaWRDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xv
cgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdC1saXZlLXBzZXVkby1z
ZWxlY3RvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmU5Zjg3NjUwYzRkM2JmYWM4OWQ0YTgxYWMxZGM1
OTE2MjVmZmRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxl
Y3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWwKKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2VsZWN0
LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0
ZWQudHh0CmluZGV4IDBlMTJkOGEyNzFlNWRkOGY1NTNhMjFkMWE5YzJiZDdhYmU1ZGQ2MzEuLmU5
MTk2MWQxMDA5ZjM5OTE5MGNkYWRlMzMwMGY5M2FiMzQ0NDY2NGIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC02
LDYgKzYsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBwYXR0ZXJuSW5wdXQudmFs
aWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4gbWlzbWF0Y2gnCiBQQVNTIHJlcXVpcmVkSW5wdXQu
dmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCiBQQVNTIHJlcXVpcmVkVGV4dEFy
ZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCitQQVNTIHJlcXVpcmVkU2Vs
ZWN0LnZhbGlkYXRpb25NZXNzYWdlIGlzICd2YWx1ZSBtaXNzaW5nJwogUEFTUyBlbWFpbElucHV0
LnZhbGlkYXRpb25NZXNzYWdlIGlzICd0eXBlIG1pc21hdGNoJwogUEFTUyBidXQudmFsaWRhdGlv
bk1lc3NhZ2UgaXMgJycKIFBBU1MgYW5vbmlucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICcnCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNl
bGVjdC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3Jz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTg5ZmE1ODhiNTFiOWI2YzZkYTA5YWY4Y2E2NzQ4
OGNhMzc3Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgcGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxp
ZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3JzIGFyZSBsaXZlbHkgYXBwbGllZCBieSBIVE1M
U2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleEJ5VXNlci4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK0NoYW5nZSB0aGUgdmFsdWUgb2YgYSBtZW51bGlzdCBzZWxlY3QgYnkg
c2V0U2VsZWN0ZWRJbmRleEJ5VXNlcjoKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENv
bG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCitDaGFuZ2UgdGhlIHZh
bHVlIG9mIGEgbGlzdGJveCBzZWxlY3QgYnkgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcjoKK1BBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBp
cyB2YWxpZENvbG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9k
b20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2RvbS1odG1sLXNlbGVjdC1saXZlLXBzZXVkby1zZWxlY3Rv
cnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMTk0MTY2NTEwNTJkMjExMThmMDhlMmZmMWUxNjEyNTI3YWM0
ZmUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2Jq
Yy9kb20taHRtbC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKQEAgLTAsMCArMSw3
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPjwvdGl0bGU+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
Li4vLi4vZmFzdC9mb3Jtcy9yZXNvdXJjZXMvbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3Qg
cGVyZm9ybXMgYSBjaGVjayB0aGF0IDp2YWxpZC86aW52YWxpZCBDU1MgcHN1ZG8gc2VsZWN0b3Jz
IGFyZSBsaXZlbHkgYXBwbGllZCBieSBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRl
eEJ5VXNlci4iKTsKKworLy8gU2V0dXAgZm9yIHN0YXRpYyBlbGVtZW50cy4KK3ZhciBmb3JtID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChmb3JtKTsKKworZnVuY3Rpb24gbWFrZUludmFsaWQoaWQpIHsKKyAgICB2YXIgc2VsZWN0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7CisgICAgc2VsZWN0Lm5hbWUgPSAnZm9v
JzsKKyAgICBzZWxlY3QucmVxdWlyZWQgPSB0cnVlOworICAgIGlmIChpZCAhPSB1bmRlZmluZWQp
CisgICAgICAgIHNlbGVjdC5pZCA9IGlkOworICAgIHNlbGVjdC52YWx1ZSA9ICcnOworICAgIGZv
cm0uYXBwZW5kQ2hpbGQoc2VsZWN0KTsKKyAgICByZXR1cm4gc2VsZWN0OworfQorCitmdW5jdGlv
biBhcHBlbmRPcHRpb24odmFsdWUsIHNlbGVjdCkgeworICAgIHZhciBvcHRpb24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsKKyAgICBvcHRpb24udmFsdWUgPSB2YWx1ZTsKKyAg
ICBvcHRpb24uaW5uZXJUZXh0ID0gdmFsdWU7CisgICAgc2VsZWN0LmFkZChvcHRpb24pOworICAg
IHJldHVybiBvcHRpb247Cit9CisKK2Z1bmN0aW9uIGJhY2tncm91bmRPZihlbCkgeworICAgIHJl
dHVybiBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJyk7Cit9CisKK3ZhciBlbEJhY2tncm91bmQg
PSAnYmFja2dyb3VuZE9mKGVsKSc7Cit2YXIgaW52YWxpZENvbG9yID0gJ3JnYigyNTUsIDAsIDAp
JzsKK3ZhciBub3JtYWxDb2xvciA9ICdyZ2IoMjU1LCAyNTUsIDI1NSknOwordmFyIGRpc2FibGVk
Q29sb3IgPSAncmdiKDAsIDAsIDApJzsKK3ZhciByZWFkT25seUNvbG9yID0gJ3JnYigwLCAyNTUs
IDApJwordmFyIHZhbGlkQ29sb3IgPSAncmdiKDAsIDAsIDI1NSknOworCitkZWJ1ZygnQ2hhbmdl
IHRoZSB2YWx1ZSBvZiBhIG1lbnVsaXN0IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
OicpOworZWwgPSBtYWtlSW52YWxpZCgnbWVudWxpc3QnKTsKK28xID0gYXBwZW5kT3B0aW9uKCcn
LCBlbCk7CitvMiA9IGFwcGVuZE9wdGlvbignWCcsIGVsKTsKK29iakNDb250cm9sbGVyLnNldFNl
bGVjdEVsZW1lbnRTZWxlY3RlZEluZGV4QWxsb3dpbmdNdWx0aXBsZShlbCwgMSwgZmFsc2UpOwor
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworb2JqQ0NvbnRyb2xsZXIuc2V0
U2VsZWN0RWxlbWVudFNlbGVjdGVkSW5kZXhBbGxvd2luZ011bHRpcGxlKGVsLCAwLCBmYWxzZSk7
CitzaG91bGRCZShlbEJhY2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKKworZGVidWcoJ0NoYW5n
ZSB0aGUgdmFsdWUgb2YgYSBsaXN0Ym94IHNlbGVjdCBieSBzZXRTZWxlY3RlZEluZGV4QnlVc2Vy
OicpOworZWwgPSBtYWtlSW52YWxpZCgnbGlzdGJveCcpOworZWwubXVsdGlwbGUgPSB0cnVlOwor
bzEgPSBhcHBlbmRPcHRpb24oJycsIGVsKTsKK28yID0gYXBwZW5kT3B0aW9uKCdYJywgZWwpOwor
bzEuc2VsZWN0ZWQgPSBmYWxzZTsKK28yLnNlbGVjdGVkID0gZmFsc2U7CitzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKK29iakNDb250cm9sbGVyLnNldFNlbGVjdEVsZW1l
bnRTZWxlY3RlZEluZGV4QWxsb3dpbmdNdWx0aXBsZShlbCwgMCwgZmFsc2UpOworc2hvdWxkQmUo
ZWxCYWNrZ3JvdW5kLCAndmFsaWRDb2xvcicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmYmViNzE4
NzY4MTE1MTliYmMxYjg0ODJhYjBmMzc5OWQzZjFhMDguLjhkYjFjYjI1Zjc3OGJhZDhkMzMzNWYz
OTBhZGNhNGYyMDFlOTQ1ZTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMTItMDYgIERhaSBNaWt1cnVi
ZSAgPGRtaWt1cnViZUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCAicmVxdWlyZWQiIGF0dHJpYnV0ZSBmb3Igc2Vs
ZWN0IHRhZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMzgwCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9zZWxlY3QtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmh0bWwKKyAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRt
bC1zZWxlY3QtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmh0bWwKKworICAgICAgICAqIGRvbS9TZWxl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6OnVwZGF0ZVZh
bGlkaXR5KTogQWRkZWQuIEl0J3MgYSBwdXJlIHZpcnR1YWwgZnVuY3Rpb24gd2hpY2ggaXMgcHJl
cGFyZWQgc28gdGhhdCBIVE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlVmFsaWRpdHkoKSBjYWxscyBI
VE1MU2VsZWN0RWxlbWVudDo6c2V0TmVlZHNWYWxpZGl0eUNoZWNrKCkuCisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RFbGVtZW50OjpwYXJzZU11bHRpcGxlQXR0cmlidXRlKTogQWRkZWQgY2FsbGlu
ZyB1cGRhdGVWYWxpZGl0eSgpLgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXMpOiBB
ZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpIHRvIGVuYWJsZSB2YWxpZGl0eSBj
aGVjayBhZnRlciBjaGFuZ2luZy4gTm8gdGVzdHMgZm9yIHRoaXMgY2hhbmdlIHNpbmNlIHRoaXMg
ZnVuY3Rpb24gaXMgbm90IGV4cG9zZWQgdG8gSmF2YVNjcmlwdCBvciBhbnkgd2ViIGludGVyZmFj
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4
KTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4QnlVc2VyKTogQWRkZWQgY2Fs
bGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50Ojp2YWx1ZU1pc3NpbmcpOiBBZGRlZCB2YWx1ZU1pc3NpbmcoKSB0byBjaGVjayBp
ZiBzZWxlY3RpbmcgYW4gaW52YWxpZCBvciBwbGFjZWhvbGRlciBsYWJlbCBvcHRpb24gd2hlbiBh
IHZhbGlkIHJlcXVpcmVkIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0ZW0pOiBBZGRlZCBjYWxsaW5nIHNl
dE5lZWRzVmFsaWRpdHlDaGVjaygpLiBObyB0ZXN0cyBmb3IgdGhpcyBjaGFuZ2Ugc2luY2UgaXQg
aXMgbm90IGNhbGxlZCB5ZXQuIExvb2sgYXQgdGhlIGJ1ZyAzNjE3NyBhbmQgdGhlIGNoYW5nZXNl
dCA1NjE4MC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjphZGQpOiBBZGRl
ZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNlbGVjdEVsZW1lbnQ6OnJlbW92ZSk6IEFkZGVkIGNhbGxpbmcgc2V0TmVlZHNWYWxpZGl0eUNo
ZWNrKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6cmVzdG9yZUZvcm1D
b250cm9sU3RhdGUpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKTog
QWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RBbGwpOiBBZGRlZCBjYWxsaW5nIHNldE5lZWRzVmFs
aWRpdHlDaGVjaygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc2V0
KTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94U2VsZWN0aW9uKTogQWRkZWQgY2Fs
bGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKS4gU2tpcHBlZCBhZGRpbmcgdGVzdHMgZm9yIHRo
aXMgY2hhbmdlIGFzIHRvbyBjb21wbGljYXRlZC4uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Vs
ZWN0RWxlbWVudDo6c2V0TGVuZ3RoKTogQWRkZWQgY2FsbGluZyBzZXROZWVkc1ZhbGlkaXR5Q2hl
Y2soKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojppc1JlcXVpcmVkRm9y
bUNvbnRyb2wpOiBDaGVjayBpZiByZXF1aXJlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2VsZWN0RWxlbWVudDo6aGFzUGxhY2Vob2xkZXJMYWJlbE9wdGlvbik6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZVZhbGlkaXR5KTogQWRkZWQu
IEl0IGNhbGxzIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpLgorICAgICAgICAqIGh0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojppc09w
dGlvbmFsRm9ybUNvbnRyb2wpOiBDaGVjayBpZiBub3QgcmVxdWlyZWQuCisgICAgICAgICogaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6IEFkZGVkIGEgcmVxdWlyZWQgYXR0cmlidXRlIHRvIHNl
bGVjdCBlbGVtZW50cy4uCisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnZhbHVlTWlzc2luZyk6IEFkZGVkIHZhbHVlTWlz
c2luZyBjaGVjayBmb3Igc2VsZWN0IGVsZW1lbnRzIGludG8gdGhlIGdsb2JhbCBjaGVja2VyLCBW
YWxpZGl0eVN0YXRlOjp2YWx1ZU1pc3NpbmcoKS4KKyAgICAgICAgKiB3bWwvV01MU2VsZWN0RWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6V01MU2VsZWN0RWxlbWVudDo6dXBkYXRlVmFsaWRp
dHkpOiBBZGRlZC4gSXQgZG9lcyBub3RoaW5nLgorCiAyMDEwLTEyLTA3ICBQYXRyaWNrIEdhbnN0
ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMg
S2xpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcCBiL1dlYkNv
cmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGQyMzZjOTY2NWRjOWUyYWZiZWEyMWUxZGIz
NTAxOGZlMTIxMzRiMjUuLjlkMWY5NjAyNjViNjkyMzI2YTZmYmJmMDlhYWFiN2E5MWJkN2JkOTkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL1NlbGVjdEVsZW1lbnQuY3BwCkBAIC00NTMsNiArNDUzLDcgQEAgdm9pZCBTZWxlY3RFbGVt
ZW50OjpwYXJzZU11bHRpcGxlQXR0cmlidXRlKFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVt
ZW50KiBlbGUKIHsKICAgICBib29sIG9sZFVzZXNNZW51TGlzdCA9IGRhdGEudXNlc01lbnVMaXN0
KCk7CiAgICAgZGF0YS5zZXRNdWx0aXBsZSghYXR0cmlidXRlLT5pc051bGwoKSk7CisgICAgdG9T
ZWxlY3RFbGVtZW50KGVsZW1lbnQpLT51cGRhdGVWYWxpZGl0eSgpOwogICAgIGlmIChvbGRVc2Vz
TWVudUxpc3QgIT0gZGF0YS51c2VzTWVudUxpc3QoKSAmJiBlbGVtZW50LT5hdHRhY2hlZCgpKSB7
CiAgICAgICAgIGVsZW1lbnQtPmRldGFjaCgpOwogICAgICAgICBlbGVtZW50LT5hdHRhY2goKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL1Nl
bGVjdEVsZW1lbnQuaAppbmRleCA1MzgxNWYyYWViZTViMDk1YmZkYTA1ODQzZTUxNGM3ZTBjOTFi
YTEyLi4yMjJhMWJiYzFjMmEwYzlmYTY0NzlmYjFkYzIyMGMxZDViYzRjYjUzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vU2VsZWN0RWxl
bWVudC5oCkBAIC02Myw2ICs2Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBsaXN0
Qm94U2VsZWN0SXRlbShpbnQgbGlzdEluZGV4LCBib29sIGFsbG93TXVsdGlwbHlTZWxlY3Rpb25z
LCBib29sIHNoaWZ0LCBib29sIGZpcmVPbkNoYW5nZU5vdyA9IHRydWUpID0gMDsKIAorICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVWYWxpZGl0eSgpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgflNlbGVjdEVsZW1lbnQoKSB7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5k
ZXggYzY4MGU5MmU0MGFhOTUxMmFhODI3ZWU4OWEyN2MwYWFlYWNlMzgwMC4uOTY4ZjYyOTNjN2M4
N2M0MjYwZGY4YzlhZjA3YmMxZWM5YzVkZWM5NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCkBAIC03OCwxMSArNzgsMTMgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RlZElu
ZGV4KCkgY29uc3QKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXMoSFRNTE9w
dGlvbkVsZW1lbnQqIGV4Y2x1ZGVFbGVtZW50KQogewogICAgIFNlbGVjdEVsZW1lbnQ6OmRlc2Vs
ZWN0SXRlbXMobV9kYXRhLCB0aGlzLCBleGNsdWRlRWxlbWVudCk7CisgICAgc2V0TmVlZHNWYWxp
ZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5k
ZXgoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2VsZWN0KQogewogICAgIFNlbGVjdEVsZW1lbnQ6
OnNldFNlbGVjdGVkSW5kZXgobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgZGVzZWxlY3QsIGZh
bHNlLCBmYWxzZSk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBi
b29sIGRlc2VsZWN0LCBib29sIGZpcmVPbkNoYW5nZU5vdywgYm9vbCBhbGxvd011bHRpcGxlU2Vs
ZWN0aW9uKQpAQCAtOTEsNiArOTMsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRTZWxl
Y3RlZEluZGV4QnlVc2VyKGludCBvcHRpb25JbmRleCwgYm9vbCBkZXNlbGVjdCwgYgogICAgIC8v
IG1vdXNlZG93biBldmVudHMuIFRoaXMgYWxsb3dzIHRoYXQgc2FtZSBiZWhhdmlvciBwcm9ncmFt
bWF0aWNhbGx5LgogICAgIGlmICghbV9kYXRhLnVzZXNNZW51TGlzdCgpKSB7CiAgICAgICAgIHVw
ZGF0ZVNlbGVjdGVkU3RhdGUobV9kYXRhLCB0aGlzLCBvcHRpb25JbmRleCwgYWxsb3dNdWx0aXBs
ZVNlbGVjdGlvbiwgZmFsc2UpOworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAg
ICAgICAgaWYgKGZpcmVPbkNoYW5nZU5vdykKICAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgp
OwogICAgICAgICByZXR1cm47CkBAIC0xMDQsNiArMTA3LDQyIEBAIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IG9wdGlvbkluZGV4LCBib29sIGRlc2Vs
ZWN0LCBiCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBTZWxlY3RFbGVtZW50OjpzZXRTZWxl
Y3RlZEluZGV4KG1fZGF0YSwgdGhpcywgb3B0aW9uSW5kZXgsIGRlc2VsZWN0LCBmaXJlT25DaGFu
Z2VOb3csIHRydWUpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOworfQorCitib29sIEhU
TUxTZWxlY3RFbGVtZW50OjpoYXNQbGFjZWhvbGRlckxhYmVsT3B0aW9uKCkgY29uc3QKK3sKKyAg
ICAvLyBUaGUgc2VsZWN0IGVsZW1lbnQgaGFzIG5vIHBsYWNlaG9sZGVyIGxhYmVsIG9wdGlvbiBp
ZiBpdCBoYXMgYW4gYXR0cmlidXRlICJtdWx0aXBsZSIgc3BlY2lmaWVkIG9yIGEgZGlzcGxheSBz
aXplIG9mIG5vbi0xLgorICAgIC8vIAorICAgIC8vIFRoZSBjb25kaXRpb24gInNpemUoKSA+IDEi
IGlzIGFjdHVhbGx5IG5vdCBjb21wbGlhbnQgd2l0aCB0aGUgSFRNTDUgc3BlYyBhcyBvZiBEZWMg
MywgMjAxMC4gInNpemUoKSAhPSAxIiBpcyBjb3JyZWN0LgorICAgIC8vIFVzaW5nICJzaXplKCkg
PiAxIiBoZXJlIGJlY2F1c2Ugc2l6ZSgpIG1heSBiZSAwIGluIFdlYktpdC4KKyAgICAvLyBTZWUg
dGhlIGRpc2N1c3Npb24gYXQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQzODg3CisgICAgLy8KKyAgICAvLyAiMCBzaXplKCkiIGhhcHBlbnMgd2hlbiBhbiBhdHRyaWJ1
dGUgInNpemUiIGlzIGFic2VudCBvciBhbiBpbnZhbGlkIHNpemUgYXR0cmlidXRlIGlzIHNwZWNp
ZmllZC4KKyAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBkaXNwbGF5IHNpemUgc2hvdWxkIGJlIGFz
c3VtZWQgYXMgdGhlIGRlZmF1bHQuCisgICAgLy8gVGhlIGRlZmF1bHQgZGlzcGxheSBzaXplIGlz
IDEgZm9yIG5vbi1tdWx0aXBsZSBzZWxlY3QgZWxlbWVudHMsIGFuZCA0IGZvciBtdWx0aXBsZSBz
ZWxlY3QgZWxlbWVudHMuCisgICAgLy8KKyAgICAvLyBGaW5hbGx5LCBpZiBzaXplKCkgPT0gMCBh
bmQgbm9uLW11bHRpcGxlLCB0aGUgZGlzcGxheSBzaXplIGNhbiBiZSBhc3N1bWVkIGFzIDEuCisg
ICAgaWYgKG11bHRpcGxlKCkgfHwgc2l6ZSgpID4gMSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaW50IGxpc3RJbmRleCA9IG9wdGlvblRvTGlzdEluZGV4KDApOworICAgIEFTU0VSVChs
aXN0SW5kZXggPj0gMCk7CisgICAgaWYgKGxpc3RJbmRleCA8IDApCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTE9w
dGlvbkVsZW1lbnQqPihsaXN0SXRlbXMoKVtsaXN0SW5kZXhdKTsKKyAgICByZXR1cm4gIW9wdGlv
bi0+ZGlzYWJsZWQoKSAmJiAhbGlzdEluZGV4ICYmIG9wdGlvbi0+dmFsdWUoKS5pc0VtcHR5KCk7
Cit9CisKK2Jvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlTWlzc2luZygpIGNvbnN0Cit7Cisg
ICAgaWYgKCFpc1JlcXVpcmVkRm9ybUNvbnRyb2woKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaW50IGZpcnN0U2VsZWN0aW9uSW5kZXggPSBzZWxlY3RlZEluZGV4KCk7CisKKyAgICAv
LyBJZiBhIG5vbi1wbGFjZWhvbGVyIGxhYmVsIG9wdGlvbiBpcyBzZWxlY3RlZCAoZmlyc3RTZWxl
Y3Rpb25JbmRleCA+IDApLCBpdCdzIG5vdCB2YWx1ZS1taXNzaW5nLgorICAgIHJldHVybiBmaXJz
dFNlbGVjdGlvbkluZGV4IDwgMCB8fCAoIWZpcnN0U2VsZWN0aW9uSW5kZXggJiYgaGFzUGxhY2Vo
b2xkZXJMYWJlbE9wdGlvbigpKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJv
eFNlbGVjdEl0ZW0oaW50IGxpc3RJbmRleCwgYm9vbCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywg
Ym9vbCBzaGlmdCwgYm9vbCBmaXJlT25DaGFuZ2VOb3cpCkBAIC0xMTIsNiArMTUxLDcgQEAgdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveFNlbGVjdEl0ZW0oaW50IGxpc3RJbmRleCwgYm9v
bCBhbGxvd011bHRpcGx5U2VsZWMKICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleEJ5VXNlcihsaXN0
VG9PcHRpb25JbmRleChsaXN0SW5kZXgpLCB0cnVlLCBmaXJlT25DaGFuZ2VOb3cpOwogICAgIGVs
c2UgewogICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKG1fZGF0YSwgdGhpcywgbGlzdEluZGV4
LCBhbGxvd011bHRpcGx5U2VsZWN0aW9ucywgc2hpZnQpOworICAgICAgICBzZXROZWVkc1ZhbGlk
aXR5Q2hlY2soKTsKICAgICAgICAgaWYgKGZpcmVPbkNoYW5nZU5vdykKICAgICAgICAgICAgIGxp
c3RCb3hPbkNoYW5nZSgpOwogICAgIH0KQEAgLTE0NCw2ICsxODQsNyBAQCB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjphZGQoSFRNTEVsZW1lbnQgKmVsZW1lbnQsIEhUTUxFbGVtZW50ICpiZWZvcmUs
IEV4Y2VwdGlvbgogICAgICAgICByZXR1cm47CiAKICAgICBpbnNlcnRCZWZvcmUoZWxlbWVudCwg
YmVmb3JlLCBlYyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnJlbW92ZShpbnQgaW5kZXgpCkBAIC0xNTYsNiArMTk3LDcgQEAgdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVtb3ZlKGludCBpbmRleCkKICAgICBBU1NFUlQoaXRlbS0+
cGFyZW50Tm9kZSgpKTsKICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgIGl0ZW0tPnBhcmVudE5v
ZGUoKS0+cmVtb3ZlQ2hpbGQoaXRlbSwgZWMpOworICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygp
OwogfQogCiBTdHJpbmcgSFRNTFNlbGVjdEVsZW1lbnQ6OnZhbHVlKCkKQEAgLTE5NSw2ICsyMzcs
NyBAQCBib29sIEhUTUxTZWxlY3RFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcm
IHZhbHVlKSBjb25zdAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKIHsKICAgICBTZWxlY3RFbGVtZW50OjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZShtX2RhdGEsIHRoaXMsIHN0YXRlKTsKKyAgICBzZXROZWVkc1ZhbGlk
aXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyKSAKQEAgLTIxNSw2ICsyNTgsNyBAQCB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiAgICAgICAg
ICAgICByZWNhbGNMaXN0SXRlbXNJZk5lZWRlZCgpOwogCiAgICAgICAgIG1fZGF0YS5zZXRTaXpl
KHNpemUpOworICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAgICAgICAgaWYgKChv
bGRVc2VzTWVudUxpc3QgIT0gbV9kYXRhLnVzZXNNZW51TGlzdCgpIHx8ICghb2xkVXNlc01lbnVM
aXN0ICYmIG1fZGF0YS5zaXplKCkgIT0gb2xkU2l6ZSkpICYmIGF0dGFjaGVkKCkpIHsKICAgICAg
ICAgICAgIGRldGFjaCgpOwogICAgICAgICAgICAgYXR0YWNoKCk7CkBAIC0yNTUsNiArMjk5LDcg
QEAgYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6Y2FuU2VsZWN0QWxsKCkgY29uc3QKIHZvaWQgSFRN
TFNlbGVjdEVsZW1lbnQ6OnNlbGVjdEFsbCgpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6c2VsZWN0
QWxsKG1fZGF0YSwgdGhpcyk7CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIFJl
bmRlck9iamVjdCogSFRNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUqKQpAQCAtMzE1LDYgKzM2MCw3IEBAIHZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OnNldFJlY2FsY0xpc3RJdGVtcygpCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpy
ZXNldCgpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6cmVzZXQobV9kYXRhLCB0aGlzKTsKKyAgICBz
ZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlz
cGF0Y2hGb2N1c0V2ZW50KCkKQEAgLTM1MCw2ICszOTYsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVt
ZW50OjpzZXRBY3RpdmVTZWxlY3Rpb25FbmRJbmRleChpbnQgaW5kZXgpCiB2b2lkIEhUTUxTZWxl
Y3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94U2VsZWN0aW9uKGJvb2wgZGVzZWxlY3RPdGhlck9wdGlv
bnMpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6dXBkYXRlTGlzdEJveFNlbGVjdGlvbihtX2RhdGEs
IHRoaXMsIGRlc2VsZWN0T3RoZXJPcHRpb25zKTsKKyAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2so
KTsKIH0KIAogdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6bWVudUxpc3RPbkNoYW5nZSgpCkBAIC00
NTgsNiArNTA1LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKHVuc2lnbmVk
IG5ld0xlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICB9CisgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVs
ZW1lbnQ6OnNjcm9sbFRvU2VsZWN0aW9uKCkKQEAgLTQ3MSw0ICs1MTksOSBAQCB2b2lkIEhUTUxT
ZWxlY3RFbGVtZW50OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkKICAgICBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50V2l0aFN0YXRlOjppbnNlcnRlZEludG9UcmVlKGRlZXApOwogfQogCitib29s
IEhUTUxTZWxlY3RFbGVtZW50Ojppc1JlcXVpcmVkRm9ybUNvbnRyb2woKSBjb25zdAoreworICAg
IHJldHVybiByZXF1aXJlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuaAppbmRleCBhM2I0NDYwZDRiYzkwZWY5ODhkZDZlYjA3MTNhOWZiOWY4MjUwMzMyLi4w
YmZiNmEwZWJiNzA0Y2QwYjQ2MTM4Y2QxMTQ2NDM5NDRkZjkxMWUxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaApAQCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dFNlbGVjdGVkSW5kZXgoaW50IGluZGV4LCBib29sIGRlc2VsZWN0ID0gdHJ1ZSk7CiAgICAgdmly
dHVhbCB2b2lkIHNldFNlbGVjdGVkSW5kZXhCeVVzZXIoaW50IGluZGV4LCBib29sIGRlc2VsZWN0
ID0gdHJ1ZSwgYm9vbCBmaXJlT25DaGFuZ2VOb3cgPSBmYWxzZSwgYm9vbCBhbGxvd011bHRpcGxl
U2VsZWN0aW9uID0gZmFsc2UpOwogCisgICAgLy8gRm9yIFZhbGlkaXR5U3RhdGUKKyAgICBib29s
IHZhbHVlTWlzc2luZygpIGNvbnN0OworCiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIGludCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQpA
QCAtODIsNiArODUsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGxpc3RCb3hTZWxlY3RJdGVtKGlu
dCBsaXN0SW5kZXgsIGJvb2wgYWxsb3dNdWx0aXBseVNlbGVjdGlvbnMsIGJvb2wgc2hpZnQsIGJv
b2wgZmlyZU9uQ2hhbmdlTm93ID0gdHJ1ZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmFs
aWRpdHkoKSB7IHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOyB9CisKIHByb3RlY3RlZDoKICAgICBI
VE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9y
bUVsZW1lbnQqKTsKIApAQCAtMTM0LDcgKzEzOSwxMCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNPcHRp
b25hbEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc09wdGlvbmFsRm9ybUNvbnRyb2woKSBjb25zdCB7IHJldHVybiAhaXNSZXF1aXJlZEZvcm1D
b250cm9sKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNSZXF1aXJlZEZvcm1Db250cm9sKCkgY29u
c3Q7CisKKyAgICBib29sIGhhc1BsYWNlaG9sZGVyTGFiZWxPcHRpb24oKSBjb25zdDsKIAogICAg
IFNlbGVjdEVsZW1lbnREYXRhIG1fZGF0YTsKICAgICBDb2xsZWN0aW9uQ2FjaGUgbV9jb2xsZWN0
aW9uSW5mbzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwg
Yi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCmluZGV4IDJlNTNiY2FhNmM2Mzcw
ODE0NjdmMTU2MDY2ZDBlY2FhODUyN2I3MjcuLmY1YWM2OWIyZjgxYzM5MzA4NDExZjZkYjhlZjBh
NmY0MzU5YWZhZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5p
ZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNDksNiArNDks
NyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBh
dXRvZm9jdXM7CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIG11bHRpcGxlOwogICAgICAgICBh
dHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZTsKKyAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIHJlcXVpcmVkOwogICAgICAgICBhdHRyaWJ1
dGUgbG9uZyBzaXplOwogICAgICAgICAKICAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBhZGQo
aW4gSFRNTEVsZW1lbnQgZWxlbWVudCwgaW4gSFRNTEVsZW1lbnQgYmVmb3JlKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBi
L1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCAyZmIxZTJjNTA4NDc0NGFlMzYy
MGE2YTQ4NDYwNjk3ZWRiNzE5NGQ4Li4wNTY1MDM1YWQ1MWNjYTNmZjk2ZWMwMzAwOTg3NjgzN2U2
YmUzNDFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVk
ZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5n
cy5oIgpAQCAtMTA1LDYgKzEwNiw5IEBAIHZvaWQgVmFsaWRpdHlTdGF0ZTo6c2V0Q3VzdG9tRXJy
b3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dmFs
dWVNaXNzaW5nKCkgY29uc3QKIHsKICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVs
ZW1lbnQobV9jb250cm9sKTsKKyAgICBpZiAoIWVsZW1lbnQtPndpbGxWYWxpZGF0ZSgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShpbnB1dFRh
ZykpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oZWxlbWVudCk7CiAgICAgICAgIHJldHVybiBpbnB1dC0+dmFsdWVNaXNz
aW5nKGlucHV0LT52YWx1ZSgpKTsKQEAgLTExMyw2ICsxMTcsMTAgQEAgYm9vbCBWYWxpZGl0eVN0
YXRlOjp2YWx1ZU1pc3NpbmcoKSBjb25zdAogICAgICAgICBIVE1MVGV4dEFyZWFFbGVtZW50KiB0
ZXh0QXJlYSA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihlbGVtZW50KTsKICAg
ICAgICAgcmV0dXJuIHRleHRBcmVhLT52YWx1ZU1pc3NpbmcodGV4dEFyZWEtPnZhbHVlKCkpOwog
ICAgIH0KKyAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7CisgICAgICAg
IEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVu
dCo+KGVsZW1lbnQpOworICAgICAgICByZXR1cm4gc2VsZWN0LT52YWx1ZU1pc3NpbmcoKTsKKyAg
ICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dtbC9XTUxT
ZWxlY3RFbGVtZW50LmggYi9XZWJDb3JlL3dtbC9XTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggMTZi
YjM4MjIwMGY0OGI0YzE5NDdiMTliMmYyODExOGQzOGQ0OTBiYy4uM2Q4YzcyNjdmMGE5ZTMzMmVm
MmM1M2VlYjRjYTc0MWRhZDQ0NDM5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93bWwvV01MU2VsZWN0
RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvd21sL1dNTFNlbGVjdEVsZW1lbnQuaApAQCAtMTAzLDYg
KzEwMyw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG9wdGlvbkluZGljZXNUb1ZhbHVlU3RyaW5n
KCkgY29uc3Q7CiAgICAgU3RyaW5nIG9wdGlvbkluZGljZXNUb1N0cmluZygpIGNvbnN0OwogCisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVZhbGlkaXR5KCkge30KKwogICAgIFN0cmluZyBuYW1lKCkg
Y29uc3Q7CiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGluYW1lKCkgY29u
c3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>