<?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>34733</bug_id>
          
          <creation_ts>2010-02-08 16:56:26 -0800</creation_ts>
          <short_desc>:invalid only works when input is in a form</short_desc>
          <delta_ts>2010-04-08 08:38:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>20101</dependson>
    
    <dependson>27357</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Erik Arvidsson">arv</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>abarth</cc>
    
    <cc>adele</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>ian</cc>
    
    <cc>michelangelo</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>188833</commentid>
    <comment_count>0</comment_count>
      <attachid>48377</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-02-08 16:56:26 -0800</bug_when>
    <thetext>Created attachment 48377
Test case

If I have an input in invalid state (validity.valid === false) I would expect the :invalid rule to apply to it. However, the CSS rule is only applied if the input is inside a form. The validity state works correctly outside forms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188867</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-08 19:24:51 -0800</bug_when>
    <thetext>I checked the current HTML5 draft, and I think we don&apos;t need to restrict validation to form controls inside a &lt;form&gt; element.

Opera 10.10 updates :valid/:invalid for form controls without &lt;form&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189075</commentid>
    <comment_count>2</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2010-02-09 10:46:52 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; I checked the current HTML5 draft, and I think we don&apos;t need to restrict
&gt; validation to form controls inside a &lt;form&gt; element.

I may be wrong but as far as I remember those two pseudoclasses apply only to &quot;validable&quot; elements; to be validable an element should be bound to a form, otherwise is de-facto non-validable (and, thus, can&apos;t be neither :valid or :invalid).

CC&apos;ing Hixie</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189241</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-09 22:02:11 -0800</bug_when>
    <thetext>&gt; I may be wrong but as far as I remember those two pseudoclasses apply only to
&gt; &quot;validable&quot; elements; to be validable an element should be bound to a form,
&gt; otherwise is de-facto non-validable (and, thus, can&apos;t be neither :valid or
&gt; :invalid).

I didn&apos;t find any clues for requirements of form element and name attribute.  So I&apos;ll remove them from HTMLFormControlElement::willValidate().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189242</commentid>
    <comment_count>4</comment_count>
      <attachid>48464</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-09 22:09:38 -0800</bug_when>
    <thetext>Created attachment 48464
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189248</commentid>
    <comment_count>5</comment_count>
      <attachid>48465</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-09 22:55:38 -0800</bug_when>
    <thetext>Created attachment 48465
Proposed patch (rev.2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189388</commentid>
    <comment_count>6</comment_count>
      <attachid>48465</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-02-10 09:30:14 -0800</bug_when>
    <thetext>Comment on attachment 48465
Proposed patch (rev.2)

Thanks and LGTM

A reviewer still has to review this though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189986</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-02-12 02:13:55 -0800</bug_when>
    <thetext>I found.

http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#association-of-controls-and-forms
&gt; Constraint validation: If an element has no form owner, it is barred
&gt; from constraint validation.

http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#naming-form-controls
&gt; Constraint validation: If an element does not have a name attribute
&gt; specified, or its name attribute&apos;s value is the empty string, then
&gt; it is barred from constraint validation.

http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#pseudo-classes
&gt; :valid
&gt; The :valid pseudo-class must match all elements that are candidates for
&gt; constraint validation and that satisfy their constraints.
&gt;
&gt; :invalid
&gt; The :invalid pseudo-class must match all elements that are candidates
&gt; for constraint validation but that do not satisfy their constraints.

http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#candidate-for-constraint-validation
&gt; A listed form-associated element is a candidate for constraint
&gt; validation except when a condition has barred the element from
&gt; constraint validation.

So, the current implementation conforms to the specification.

Erik, if we want to change the behavior, we need to propose the change to WHATWG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209015</commentid>
    <comment_count>8</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-06 06:36:05 -0700</bug_when>
    <thetext>The specification has been changed so that existens of owner form and non-empty name attribute are ignorable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209089</commentid>
    <comment_count>9</comment_count>
      <attachid>52648</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-06 10:08:50 -0700</bug_when>
    <thetext>Created attachment 52648
Proposed patch (rev.3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209098</commentid>
    <comment_count>10</comment_count>
      <attachid>52648</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-06 10:34:32 -0700</bug_when>
    <thetext>Comment on attachment 52648
Proposed patch (rev.3)

&gt; -    , m_willValidate(false)
&gt; +    , m_willValidateInitialized(false)
&gt; +    , m_willValidate(true)

I am not sure that &quot;initialized&quot; is the right word here. Since you called the function &quot;recalc&quot; maybe you should reverse the sense and call it &quot;m_willValidateNeedsRecalc&quot; or &quot;m_needsWillValidateRecalc&quot;? Or maybe this is needed only during construction. Maybe we can make m_willValidateInitialized be a debug-only concept?

&gt;      // FIXME: Check if the control does not have a datalist element as an ancestor.
&gt; -    return m_form &amp;&amp; m_hasName &amp;&amp; !m_disabled &amp;&amp; !m_readOnly;
&gt; +    return !m_disabled &amp;&amp; !m_readOnly;

It would be good to make that existing FIXME clearer and more specific. Check that, and do what? Why check it?

&gt;      bool newWillValidate = recalcWillValidate();
&gt; -    if (m_willValidate == newWillValidate)
&gt; +    if (m_willValidateInitialized &amp;&amp; m_willValidate == newWillValidate)
&gt;          return;
&gt; +    m_willValidateInitialized = true;

This seems a little strange. Do we really need to recalc immediately here? There at least needs to be a comment explaining why this doesn&apos;t just set m_willValidateInitialized to false and return.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209482</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-06 23:46:46 -0700</bug_when>
    <thetext>Attachment 52648 was posted by a committer and has review+, assigning to Kent Tamura for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210152</commentid>
    <comment_count>12</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-08 07:05:14 -0700</bug_when>
    <thetext>Thank you for reviewing.

(In reply to comment #10)
&gt; (From update of attachment 52648 [details])
&gt; &gt; -    , m_willValidate(false)
&gt; &gt; +    , m_willValidateInitialized(false)
&gt; &gt; +    , m_willValidate(true)
&gt; 
&gt; I am not sure that &quot;initialized&quot; is the right word here. Since you called the
&gt; function &quot;recalc&quot; maybe you should reverse the sense and call it
&gt; &quot;m_willValidateNeedsRecalc&quot; or &quot;m_needsWillValidateRecalc&quot;? Or maybe this is
&gt; needed only during construction. Maybe we can make m_willValidateInitialized be
&gt; a debug-only concept?

This is needed only during construction.  So I think m_willValidateNeedsRecalc and m_needsWillValidateRecalc are not suitable.

&gt; &gt;      // FIXME: Check if the control does not have a datalist element as an ancestor.
&gt; &gt; -    return m_form &amp;&amp; m_hasName &amp;&amp; !m_disabled &amp;&amp; !m_readOnly;
&gt; &gt; +    return !m_disabled &amp;&amp; !m_readOnly;
&gt; 
&gt; It would be good to make that existing FIXME clearer and more specific. Check
&gt; that, and do what? Why check it?

Ok, I added what we should do and the reason.

&gt; &gt;      bool newWillValidate = recalcWillValidate();
&gt; &gt; -    if (m_willValidate == newWillValidate)
&gt; &gt; +    if (m_willValidateInitialized &amp;&amp; m_willValidate == newWillValidate)
&gt; &gt;          return;
&gt; &gt; +    m_willValidateInitialized = true;
&gt; 
&gt; This seems a little strange. Do we really need to recalc immediately here?

Yes. if willValidate value is changed, we need to add or remove :valid :invalid pseudo selectors. I added a comment.

I&apos;ll commit this change with additional comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210156</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-08 07:12:44 -0700</bug_when>
    <thetext>Landed as r57274.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210167</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-08 07:35:40 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/57274 might have broken SnowLeopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210177</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-08 07:44:23 -0700</bug_when>
    <thetext>Looks like it might be a real breakage:
http://build.webkit.org/results/SnowLeopard%20Intel%20Leaks/r57274%20(5752)/fast/css/pseudo-invalid-novalidate-001-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210184</commentid>
    <comment_count>16</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-08 07:52:43 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Looks like it might be a real breakage:
&gt; http://build.webkit.org/results/SnowLeopard%20Intel%20Leaks/r57274%20(5752)/fast/css/pseudo-invalid-novalidate-001-pretty-diff.html

I&apos;m investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210187</commentid>
    <comment_count>17</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-08 07:55:42 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; Looks like it might be a real breakage:
&gt; &gt; http://build.webkit.org/results/SnowLeopard%20Intel%20Leaks/r57274%20(5752)/fast/css/pseudo-invalid-novalidate-001-pretty-diff.html
&gt; 
&gt; I&apos;m investigating.

Ok, I have understood. I&apos;ll fix this soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210193</commentid>
    <comment_count>18</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-04-08 08:01:56 -0700</bug_when>
    <thetext>r57279 fixes the test failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210217</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-08 08:38:56 -0700</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>48377</attachid>
            <date>2010-02-08 16:56:26 -0800</date>
            <delta_ts>2010-02-08 16:56:26 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>url-input-valid-pseudo.html</filename>
            <type>text/html</type>
            <size>432</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHRpdGxlPjwvdGl0bGU+CjxzdHlsZT4KCjpp
bnZhbGlkIHsKICBiYWNrZ3JvdW5kOiByZWQ7Cn0KCjp2YWxpZCB7CiAgYmFja2dyb3VuZDogbGlt
ZTsKfQoKCjwvc3R5bGU+CjxzY3JpcHQ+Cgo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KCjxwPklu
IGZvcm06Cgo8Zm9ybSBtZXRob2Q9Z2V0Pgo8aW5wdXQgbmFtZT11cmwxIHR5cGU9dXJsIHZhbHVl
PUludmFsaWQ+CjxpbnB1dCBuYW1lPXVybDIgdHlwZT11cmwgdmFsdWU9Imh0dHA6Ly93ZWJraXQu
b3JnIj4KPC9mb3JtPgoKPHA+Tm90IGluIGZvcm06Cgo8cD48aW5wdXQgbmFtZT11cmwzIHR5cGU9
dXJsIHZhbHVlPUludmFsaWQ+CjxpbnB1dCBuYW1lPXVybDQgdHlwZT11cmwgdmFsdWU9Imh0dHA6
Ly93ZWJraXQub3JnIj4KCgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48464</attachid>
            <date>2010-02-09 22:09:38 -0800</date>
            <delta_ts>2010-02-09 22:55:30 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-34733-20100210150936.patch</filename>
            <type>text/plain</type>
            <size>26909</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMGRhYTAwLi5hOGU5ODZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDIt
MDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpbGxWYWxpZGF0ZSBkb2Vzbid0IG5lZWQg
dG8gY2hlY2sgZXhpc3RlbmNlIG9mIGEgZm9ybSBlbGVtZW50IGFuZCBhIG5hbWUgYXR0cmlidXRl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ3MzMK
KworICAgICAgICAtIE1lcmdlIHdpbGx2YWxpZGF0ZS0wMHggdGVzdHMgaW50byBvbmUgZmlsZS4K
KyAgICAgICAgLSBVcGRhdGUgdGVzdHMgYWZmZWN0ZWQgYnkgdGhlIHdpbGxWYWxpZGF0ZSBiZWhh
dmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWxpdmUtcHNldWRvLXNl
bGVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5w
dXQtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvcmVzb3Vy
Y2VzL3RleHRhcmVhLWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qczoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy93aWxsdmFsaWRhdGUuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDAtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAxLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDIuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDMtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA0Lmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA1LWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDYtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNi5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNy1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA3Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA4LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDguaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDktZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwOS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDItMDkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQuIFJvbGwtb3V0IHI1NDU0MywgYmVjYXVzZSBsYXlv
dXQgdGVzdHMgY3Jhc2ggaW4gZGVidWcgbW9kZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4
dAppbmRleCBjYzg3ZjI0Li4xYzI2MGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0
CkBAIC02LDcgKzYsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogQ2hoZWNrIHRoZSBpbml0
aWFsIHN0YXRlOgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogQ2hhbmdl
IG5hbWU6Ci1QQVNTIGJhY2tncm91bmRPZihlbCkgaXMgbm9ybWFsQ29sb3IKK1BBU1MgYmFja2dy
b3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKIFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZh
bGlkQ29sb3IKIENoYW5nZSBkaXNhYmxlZDoKIFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBkaXNh
YmxlZENvbG9yCkBAIC0xNSw3ICsxNSw3IEBAIENoYW5nZSByZWFkT25seToKIFBBU1MgYmFja2dy
b3VuZE9mKGVsKSBpcyByZWFkT25seUNvbG9yCiBQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCiBJbnNpZGUvb3V0c2lkZSBvZiBhIGZvcm06Ci1QQVNTIGJhY2tncm91bmRPZihl
bCkgaXMgbm9ybWFsQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IK
IFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKIENoYW5nZSB0aGUgdmFsdWUg
YnkgRE9NIGF0dHJpYnV0ZToKIFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9pbnB1dC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9pbnB1
dC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKaW5kZXggYWMxNjRjNC4uYzk5MjYzNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5wdXQtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2lucHV0
LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcwpAQCAtMzYsNyArMzYsNyBAQCBzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKIAogZGVidWcoJ0NoYW5nZSBuYW1lOicpOwogZWwu
bmFtZSA9ICcnOwotc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnbm9ybWFsQ29sb3InKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOwogZWwubmFtZSA9ICdiYXInOwogc2hv
dWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiAKQEAgLTU3LDcgKzU3LDcgQEAg
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiBkZWJ1ZygnSW5zaWRlL291
dHNpZGUgb2YgYSBmb3JtOicpOwogZWwgPSBtYWtlSW52YWxpZCgpOwogbm9uRm9ybS5hcHBlbmRD
aGlsZChlbCk7Ci1zaG91bGRCZShlbEJhY2tncm91bmQsICdub3JtYWxDb2xvcicpOworc2hvdWxk
QmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiBmb3JtLmFwcGVuZENoaWxkKGVsKTsK
IHNob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXh0YXJlYS1saXZlLXBzZXVkby1zZWxl
Y3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXh0YXJlYS1saXZl
LXBzZXVkby1zZWxlY3RvcnMuanMKaW5kZXggNzExOWNjNi4uZGU2NmRkNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3RleHRhcmVh
LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcwpAQCAtMzYsNyArMzYsNyBAQCBzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKIAogZGVidWcoJ0NoYW5nZSBuYW1lOicpOwogZWwu
bmFtZSA9ICcnOwotc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnbm9ybWFsQ29sb3InKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOwogZWwubmFtZSA9ICdiYXInOwogc2hv
dWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiAKQEAgLTU3LDcgKzU3LDcgQEAg
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiBkZWJ1ZygnSW5zaWRlL291
dHNpZGUgb2YgYSBmb3JtOicpOwogZWwgPSBtYWtlSW52YWxpZCgpOwogbm9uRm9ybS5hcHBlbmRD
aGlsZChlbCk7Ci1zaG91bGRCZShlbEJhY2tncm91bmQsICdub3JtYWxDb2xvcicpOworc2hvdWxk
QmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiBmb3JtLmFwcGVuZENoaWxkKGVsKTsK
IHNob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy93aWxsdmFsaWRhdGUuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy93aWxsdmFsaWRhdGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY2MTZjMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3dpbGx2YWxpZGF0ZS5qcwpAQCAtMCww
ICsxLDYxIEBACitkZXNjcmlwdGlvbignVmFyaW91cyB0ZXN0cyBmb3IgLndpbGxWYWxpZGF0ZSBw
cm9wZXJ0eScpOworCit2YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudCk7CisKK2RlYnVnKCdFeGlzdGVuY2Ug
b2YgLndpbGxWYWxpZGF0ZScpOworcGFyZW50LmlubmVySFRNTCA9ICc8Zm9ybT4nCisgICAgKyAn
PGlucHV0IG5hbWU9InZpY3RpbSIvPicKKyAgICArICc8dGV4dGFyZWEgbmFtZT0idmljdGltIj48
L3RleHRhcmVhPicKKyAgICArICc8ZmllbGRzZXQgbmFtZT0idmljdGltIj5UZXN0PC9maWVsZHNl
dD4nCisgICAgKyAnPGJ1dHRvbiBuYW1lPSJ2aWN0aW0iPicKKyAgICArICc8c2VsZWN0IG5hbWU9
InZpY3RpbSI+PC9zZWxlY3Q+JworICAgICsgJzwvZm9ybT4nOwordmFyIGNvbnRyb2xzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoJ3ZpY3RpbScpOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgY29udHJvbHMubGVuZ3RoOyBpKyspCisgICAgICAgIHNob3VsZEJlKCd0eXBlb2YgY29udHJv
bHNbaV0ud2lsbFZhbGlkYXRlJywgJyJib29sZWFuIicpOworCitkZWJ1ZygnPGJyIC8+Rm9ybSBh
c3NvY2lhdGlvbicpOworcGFyZW50LmlubmVySFRNTCA9ICc8aW5wdXQgbmFtZT0idGVzdCI+JzsK
K3ZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwor
c2hvdWxkQmVUcnVlKCdpbnB1dC53aWxsVmFsaWRhdGUnKTsKK3BhcmVudC5pbm5lckhUTUwgPSAn
PGZvcm0+PGlucHV0IG5hbWU9InRlc3QiPjwvZm9ybT4nOworaW5wdXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKK3Nob3VsZEJlVHJ1ZSgnaW5wdXQud2lsbFZh
bGlkYXRlJyk7CisKK2RlYnVnKCc8YnIgLz5Db250cm9sIG5hbWUnKTsKK3BhcmVudC5pbm5lckhU
TUwgPSAnPGZvcm0+PGlucHV0PjwvZm9ybT4nOworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKK3Nob3VsZEJlVHJ1ZSgnaW5wdXQud2lsbFZhbGlkYXRl
Jyk7CitwYXJlbnQuaW5uZXJIVE1MID0gJzxmb3JtPjxpbnB1dCBuYW1lPSJ0ZXN0Ij48L2Zvcm0+
JzsKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF07Citz
aG91bGRCZVRydWUoJ2lucHV0LndpbGxWYWxpZGF0ZScpOworCitkZWJ1ZygnPGJyIC8+RGlzYWJs
ZWQgY29udHJvbCcpOworcGFyZW50LmlubmVySFRNTCA9ICc8Zm9ybT48aW5wdXQgbmFtZT0idGVz
dCIgZGlzYWJsZWQ+PC9mb3JtPic7CitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJpbnB1dCIpWzBdOworc2hvdWxkQmVGYWxzZSgnaW5wdXQud2lsbFZhbGlkYXRlJyk7CisK
K2RlYnVnKCc8YnIgLz5SYWFkLW9ubHkgY29udHJvbCcpOworcGFyZW50LmlubmVySFRNTCA9ICc8
Zm9ybT48aW5wdXQgbmFtZT0idGVzdCIgcmVhZG9ubHk+PC9mb3JtPic7CitpbnB1dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOworc2hvdWxkQmVGYWxzZSgnaW5w
dXQud2lsbFZhbGlkYXRlJyk7CisKK2RlYnVnKCc8YnIgLz5JbnB1dCB0eXBlcycpOworcGFyZW50
LmlubmVySFRNTCA9ICc8Zm9ybT48aW5wdXQgbmFtZT0idGVzdCI+PC9mb3JtPic7CitpbnB1dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOworc2hvdWxkQmVUcnVl
KCdpbnB1dC53aWxsVmFsaWRhdGUnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0LnR5cGUgPSAiYnV0
dG9uIjsgaW5wdXQud2lsbFZhbGlkYXRlJyk7CitzaG91bGRCZVRydWUoJ2lucHV0LnR5cGUgPSAi
c3VibWl0IjsgaW5wdXQud2lsbFZhbGlkYXRlJyk7CitzaG91bGRCZUZhbHNlKCdpbnB1dC50eXBl
ID0gImhpZGRlbiI7IGlucHV0LndpbGxWYWxpZGF0ZScpOworc2hvdWxkQmVGYWxzZSgnaW5wdXQu
dHlwZSA9ICJyZXNldCI7IGlucHV0LndpbGxWYWxpZGF0ZScpOworCitkZWJ1ZygnPGJyIC8+Rmll
bGRzZXQgZWxlbWVudCcpOworcGFyZW50LmlubmVySFRNTCA9ICc8Zm9ybT48ZmllbGRzZXQ+PHA+
RmllbGRzZXQgdGVzdDwvcD48L2ZpZWxkdHNldD48L2Zvcm0+JzsKK3Nob3VsZEJlRmFsc2UoJ2Rv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmaWVsZHNldCIpWzBdLndpbGxWYWxpZGF0ZScp
OworCitkZWJ1ZygnPGJyIC8+VGV4dGFyZWEgZWxlbWVudCcpOworcGFyZW50LmlubmVySFRNTCA9
ICc8Zm9ybT48dGV4dGFyZWEgbmFtZT0idGV4dCI+PC90ZXh0YXJlYT48L2Zvcm0+JzsKK3Nob3Vs
ZEJlVHJ1ZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRleHRhcmVhIilbMF0ud2ls
bFZhbGlkYXRlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1saXZlLXBzZXVkby1zZWxlY3RvcnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1saXZlLXBzZXVk
by1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDk1MTE5NmIuLmY0NGY1YjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8tc2VsZWN0b3Jz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLWxpdmUt
cHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw3IEBAIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFCiBDaGhlY2sgdGhlIGluaXRpYWwgc3RhdGU6CiBQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCiBDaGFuZ2UgbmFtZToKLVBBU1MgYmFja2dyb3VuZE9mKGVs
KSBpcyBub3JtYWxDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgog
UEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogQ2hhbmdlIGRpc2FibGVkOgog
UEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGRpc2FibGVkQ29sb3IKQEAgLTE1LDcgKzE1LDcgQEAg
Q2hhbmdlIHJlYWRPbmx5OgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHJlYWRPbmx5Q29sb3IK
IFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKIEluc2lkZS9vdXRzaWRlIG9m
IGEgZm9ybToKLVBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBub3JtYWxDb2xvcgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGlu
dmFsaWRDb2xvcgogQ2hhbmdlIHRoZSB2YWx1ZSBieSBET00gYXR0cmlidXRlOgogUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvd2lsbHZhbGlkYXRlLTAwMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3dpbGx2YWxpZGF0ZS0wMDAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyY2ZhZDZkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2ls
bHZhbGlkYXRlLTAwMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAK
LSAgVGVzdAotCi1TVUNDRVNTCi1TVUNDRVNTCi1TVUNDRVNTCi1TVUNDRVNTCi1TVUNDRVNTCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDAuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3OGE2MTAxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5DaGVjayBmb3Igd2lsbFZhbGlkYXRlIHByb3Bl
cnR5IGV4aXN0ZW5jZTwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+Iitt
ZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0gICAgICAgIGkgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7Ci0gICAgICAgIGZvciAoYyA9IDA7IGMgPCBpLmxl
bmd0aDsgYysrKQotICAgICAgICAgICAgbG9nKHR5cGVvZiBpW2NdLndpbGxWYWxpZGF0ZSAhPSAi
dW5kZWZpbmVkIiA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08Zm9ybT4KLTxpbnB1dCBuYW1lPSJ2aWN0
aW0iLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Ci08ZmllbGRzZXQgbmFt
ZT0idmljdGltIj5UZXN0PC9maWVsZHNldD4KLTxidXR0b24gbmFtZT0idmljdGltIj4KLTxzZWxl
Y3QgbmFtZT0idmljdGltIj48L3NlbGVjdD4KLTwvZm9ybT4KLTxocj4KLTxvbCBpZD0iY29uc29s
ZSI+PC9vbD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAxLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFkY2VjYy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDEtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0KLVNVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAxLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGZkNTQ0MmUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFs
aWRhdGUtMDAxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHRpdGxlPndpbGxWYWxpZGF0ZSBhbmQgZm9ybSBhc3NvY2lhdGlvbjwvdGl0bGU+Ci08
c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAg
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICAgICAgCi0gICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5w
dXQiKVswXTsKLQotICAgICAgICBsb2coKGkud2lsbFZhbGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJT
VUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08aW5wdXQgbmFtZT0idGVzdCI+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Ci08
L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZGNlY2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotCi1TVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2ls
bHZhbGlkYXRlLTAwMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OGVmODRj
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRs
ZT53aWxsVmFsaWRhdGUgYW5kIGNvbnRyb2wgbmFtZTwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1YWdl
PSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyht
ZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
dGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0gICAg
ICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKLSAgICAg
ICAgCi0gICAgICAgIGxvZygoaS53aWxsVmFsaWRhdGUpID8gIkZBSUxVUkUiIDogIlNVQ0NFU1Mi
KTsKLSAgICB9Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxm
b3JtPjxwPjxpbnB1dD48L3A+PC9mb3JtPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWRjZWNjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLQotU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dp
bGx2YWxpZGF0ZS0wMDMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJmMjU1
ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDMu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0
bGU+d2lsbFZhbGlkYXRlIGFuZCBhIGRpc2FibGVkIGNvbnRyb2w8L3RpdGxlPgotPHNjcmlwdCBs
YW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlv
biBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAg
IAotICAgICAgICBpID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF07
Ci0gICAgICAgIAotICAgICAgICBsb2coKGkud2lsbFZhbGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJT
VUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08Zm9ybT48cD48aW5wdXQgbmFtZT0idGVzdCIgZGlzYWJsZWQ+PC9wPjwvZm9ybT4KLTxo
cj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2
YWxpZGF0ZS0wMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFs
aWRhdGUtMDA0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFk
Y2VjYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0w
MDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0KLVNVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA0Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNmVjYmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPndpbGxWYWxpZGF0ZSBhbmQgYnV0dG9uIGNv
bnRyb2w8L3RpdGxlPgotPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsi
PC9saT4iOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIAotICAgICAgICBpID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoImlucHV0IilbMF07Ci0gICAgICAgIAotICAgICAgICBsb2coKGkud2lsbFZh
bGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJTVUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08Zm9ybT48cD48aW5wdXQgbmFtZT0idGVzdCIg
dHlwZT0iYnV0dG9uIj48L3A+PC9mb3JtPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWRjZWNjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLQotU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dp
bGx2YWxpZGF0ZS0wMDUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU0ZTQx
Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0
bGU+d2lsbFZhbGlkYXRlIGFuZCBzdWJtaXQgY29udHJvbDwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1
YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0g
ICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKLSAg
ICAgICAgCi0gICAgICAgIGxvZygoaS53aWxsVmFsaWRhdGUpID8gIlNVQ0NFU1MiIDogIkZBSUxV
UkUiKTsKLSAgICB9Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4K
LTxmb3JtPjxwPjxpbnB1dCBuYW1lPSJ0ZXN0IiB0eXBlPSJzdWJtaXQiPjwvcD48L2Zvcm0+Ci08
aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZh
bGlkYXRlLTAwNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJi
NTk2YjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUt
MDA2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1GaWVsZHNl
dCB0ZXN0Ci0KLVNVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2ls
bHZhbGlkYXRlLTAwNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUt
MDA2Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzNTA3OWUuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA2Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPndpbGxWYWxp
ZGF0ZSBhbmQgdGhlICZsdDtmaWVsZHNldD4gZWxlbWVudDwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1
YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0g
ICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZmllbGRzZXQiKVswXTsK
LSAgICAgICAgbG9nKChpLndpbGxWYWxpZGF0ZSkgPyAiRkFJTFVSRSIgOiAiU1VDQ0VTUyIpOwot
ICAgIH0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGZvcm0+
Ci08ZmllbGRzZXQ+Ci08cCBpZD0iciI+RmllbGRzZXQgdGVzdDwvcD4KLTwvZmllbGRzZXQ+Ci08
L2Zvcm0+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy93aWxsdmFsaWRhdGUtMDA3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvd2lsbHZhbGlkYXRlLTAwNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGMxZGNlY2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDA3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAot
Ci1TVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0
ZS0wMDcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWZiNWNkLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT53aWxsVmFsaWRhdGUgYW5k
IGEgcmVhZG9ubHkgY29udHJvbDwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8
bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0gICAgICAgIGkgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKLSAgICAgICAgbG9nKChpLndp
bGxWYWxpZGF0ZSkgPyAiRkFJTFVSRSIgOiAiU1VDQ0VTUyIpOwotICAgIH0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGZvcm0+PGlucHV0IG5hbWU9InRlc3Qi
IHJlYWRvbmx5PjwvZm9ybT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZmY0M2NhNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDA4Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0w
MDguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE2NzVkZC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDguaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDIzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+d2lsbFZhbGlk
YXRlIGFuZCBhIGhpZGRlbiBjb250cm9sPC90aXRsZT4KLTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFT
Y3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
IHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwg
Kz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0KCkg
ewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAKLSAgICAgICAgaSA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwotICAgICAgICBsb2co
KGkud2lsbFZhbGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJTVUNDRVNTIik7Ci0gICAgfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08Zm9ybT48aW5wdXQgbmFtZT0i
dGVzdCIgdHlwZT0iaGlkZGVuIj48L2Zvcm0+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+
Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwOS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZGNlY2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotCi1TVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
d2lsbHZhbGlkYXRlLTAwOS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjJh
N2M1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAw
OS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0
aXRsZT53aWxsVmFsaWRhdGUgYW5kIGEgcmVzZXQgY29udHJvbDwvdGl0bGU+Ci08c2NyaXB0IGxh
bmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9u
IGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAg
Ci0gICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsK
LSAgICAgICAgbG9nKChpLndpbGxWYWxpZGF0ZSkgPyAiRkFJTFVSRSIgOiAiU1VDQ0VTUyIpOwot
ICAgIH0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGZvcm0+
PGlucHV0IG5hbWU9InRlc3QiIHR5cGU9InJlc2V0Ij48L2Zvcm0+Ci08aHI+Ci08b2wgaWQ9ImNv
bnNvbGUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlZGI0MGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0MiBAQAorVmFyaW91cyB0ZXN0cyBmb3IgLndpbGxWYWxpZGF0ZSBwcm9wZXJ0
eQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRXhpc3RlbmNlIG9mIC53aWxsVmFs
aWRhdGUKK1BBU1MgdHlwZW9mIGNvbnRyb2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIK
K1BBU1MgdHlwZW9mIGNvbnRyb2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIKK1BBU1Mg
dHlwZW9mIGNvbnRyb2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIKK1BBU1MgdHlwZW9m
IGNvbnRyb2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIKK1BBU1MgdHlwZW9mIGNvbnRy
b2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIKKworRm9ybSBhc3NvY2lhdGlvbgorUEFT
UyBpbnB1dC53aWxsVmFsaWRhdGUgaXMgdHJ1ZQorUEFTUyBpbnB1dC53aWxsVmFsaWRhdGUgaXMg
dHJ1ZQorCitDb250cm9sIG5hbWUKK1BBU1MgaW5wdXQud2lsbFZhbGlkYXRlIGlzIHRydWUKK1BB
U1MgaW5wdXQud2lsbFZhbGlkYXRlIGlzIHRydWUKKworRGlzYWJsZWQgY29udHJvbAorUEFTUyBp
bnB1dC53aWxsVmFsaWRhdGUgaXMgZmFsc2UKKworUmFhZC1vbmx5IGNvbnRyb2wKK1BBU1MgaW5w
dXQud2lsbFZhbGlkYXRlIGlzIGZhbHNlCisKK0lucHV0IHR5cGVzCitQQVNTIGlucHV0LndpbGxW
YWxpZGF0ZSBpcyB0cnVlCitQQVNTIGlucHV0LnR5cGUgPSAiYnV0dG9uIjsgaW5wdXQud2lsbFZh
bGlkYXRlIGlzIGZhbHNlCitQQVNTIGlucHV0LnR5cGUgPSAic3VibWl0IjsgaW5wdXQud2lsbFZh
bGlkYXRlIGlzIHRydWUKK1BBU1MgaW5wdXQudHlwZSA9ICJoaWRkZW4iOyBpbnB1dC53aWxsVmFs
aWRhdGUgaXMgZmFsc2UKK1BBU1MgaW5wdXQudHlwZSA9ICJyZXNldCI7IGlucHV0LndpbGxWYWxp
ZGF0ZSBpcyBmYWxzZQorCitGaWVsZHNldCBlbGVtZW50CitQQVNTIGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJmaWVsZHNldCIpWzBdLndpbGxWYWxpZGF0ZSBpcyBmYWxzZQorCitUZXh0
YXJlYSBlbGVtZW50CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXh0YXJl
YSIpWzBdLndpbGxWYWxpZGF0ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy93aWxsdmFsaWRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU4ZmE5NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLmh0bWwKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvd2lsbHZhbGlkYXRlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzdkMTE4Li40MjJiOTk1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDEwLTAyLTA5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aWxsVmFsaWRhdGUgZG9lc24n
dCBuZWVkIHRvIGNoZWNrIGV4aXN0ZW5jZSBvZiBhIGZvcm0gZWxlbWVudCBhbmQgYSBuYW1lIGF0
dHJpYnV0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0NzMzCisgICAgICAgIAorICAgICAgICBSZW1vdmUgbV9mb3JtIGFuZCBtX2hhc05hbWUgY2hl
Y2tzIGluCisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSgpLCBh
bmQgcmVtb3ZlIHRoZSBjb2RlIHRvCisgICAgICAgIHRyYWNrIHRoZWlyIHVwZGF0ZXMuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUuaHRtbAorCisgICAgICAgICogaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6aW5zZXJ0ZWRJbnRvVHJlZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZW1vdmVkRnJvbVRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlkYXRl
KToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZvcm1EZXN0cm95ZWQpOgorCiAyMDEwLTAy
LTA5ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSdWJiZXIgU3RhbXBlZCBieSBHZW9mZiBHYXJlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCA2ZjI0ZTBjLi43YzZlOTg1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01Miw3ICs1Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MsIEhUTUxGb3JtRWxl
bWVudCogZikKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvYykKICAgICAsIG1fZm9ybShm
KQotICAgICwgbV9oYXNOYW1lKGZhbHNlKQogICAgICwgbV9kaXNhYmxlZChmYWxzZSkKICAgICAs
IG1fcmVhZE9ubHkoZmFsc2UpCiAgICAgLCBtX3JlcXVpcmVkKGZhbHNlKQpAQCAtOTEsOSArOTAs
NyBAQCBWYWxpZGl0eVN0YXRlKiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp2YWxpZGl0eSgpCiB2
b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0
dHJpYnV0ZSAqYXR0cikKIHsKICAgICBib29sIG9sZFdpbGxWYWxpZGF0ZSA9IHdpbGxWYWxpZGF0
ZSgpOwotICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gbmFtZUF0dHIpCi0gICAgICAgIG1faGFzTmFt
ZSA9ICFhdHRyLT5pc0VtcHR5KCk7Ci0gICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGRpc2Fi
bGVkQXR0cikgeworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gZGlzYWJsZWRBdHRyKSB7CiAgICAg
ICAgIGJvb2wgb2xkRGlzYWJsZWQgPSBtX2Rpc2FibGVkOwogICAgICAgICBtX2Rpc2FibGVkID0g
IWF0dHItPmlzTnVsbCgpOwogICAgICAgICBpZiAob2xkRGlzYWJsZWQgIT0gbV9kaXNhYmxlZCkg
ewpAQCAtMTUzLDEwICsxNTAsOSBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Omluc2Vy
dGVkSW50b1RyZWUoYm9vbCBkZWVwKQogICAgICAgICAvLyBzZXR0aW5nIGEgZm9ybSwgd2Ugd2ls
bCBhbHJlYWR5IGhhdmUgYSBub24tbnVsbCB2YWx1ZSBmb3IgbV9mb3JtLCAKICAgICAgICAgLy8g
YW5kIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuCiAgICAgICAgIG1fZm9ybSA9IGZp
bmRGb3JtQW5jZXN0b3IoKTsKLSAgICAgICAgaWYgKG1fZm9ybSkgeworICAgICAgICBpZiAobV9m
b3JtKQogICAgICAgICAgICAgbV9mb3JtLT5yZWdpc3RlckZvcm1FbGVtZW50KHRoaXMpOwotICAg
ICAgICAgICAgc2V0TmVlZHNXaWxsVmFsaWRhdGVDaGVjaygpOwotICAgICAgICB9IGVsc2UKKyAg
ICAgICAgZWxzZQogICAgICAgICAgICAgZG9jdW1lbnQoKS0+Y2hlY2tlZFJhZGlvQnV0dG9ucygp
LmFkZEJ1dHRvbih0aGlzKTsKICAgICB9CiAKQEAgLTE4MywxOSArMTc5LDExIEBAIHZvaWQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCkKICAgICBpZiAo
bV9mb3JtICYmICEocGFyc2VyICYmIHBhcnNlci0+aXNIYW5kbGluZ1Jlc2lkdWFsU3R5bGVBY3Jv
c3NCbG9ja3MoKSkgJiYgZmluZFJvb3QodGhpcykgIT0gZmluZFJvb3QobV9mb3JtKSkgewogICAg
ICAgICBtX2Zvcm0tPnJlbW92ZUZvcm1FbGVtZW50KHRoaXMpOwogICAgICAgICBtX2Zvcm0gPSAw
OwotICAgICAgICBzZXROZWVkc1dpbGxWYWxpZGF0ZUNoZWNrKCk7CiAgICAgfQogCiAgICAgSFRN
TEVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZShkZWVwKTsKIH0KIAotdm9pZCBIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Ojpmb3JtRGVzdHJveWVkKCkKLXsKLSAgICBpZiAobV9mb3JtKQotICAgICAgICBz
ZXROZWVkc1dpbGxWYWxpZGF0ZUNoZWNrKCk7Ci0gICAgbV9mb3JtID0gMDsKLX0KLQogY29uc3Qg
QXRvbWljU3RyaW5nJiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpmb3JtQ29udHJvbE5hbWUoKSBj
b25zdAogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbiA9IGdldEF0dHJpYnV0ZShuYW1lQXR0
cik7CkBAIC0zMDUsNyArMjkzLDcgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxs
VmFsaWRhdGUoKSBjb25zdAogICAgIC8vICAgICAgVGhlIGNvbnRyb2wgZG9lcyBub3QgaGF2ZSBh
IHJlcGV0aXRpb24gdGVtcGxhdGUgYXMgYW4gYW5jZXN0b3IuCiAgICAgLy8gICAgICBUaGUgY29u
dHJvbCBkb2VzIG5vdCBoYXZlIGEgZGF0YWxpc3QgZWxlbWVudCBhcyBhbiBhbmNlc3Rvci4KICAg
ICAvLyAgICAgIFRoZSBjb250cm9sIGlzIG5vdCBhbiBvdXRwdXQgZWxlbWVudC4KLSAgICByZXR1
cm4gbV9mb3JtICYmIG1faGFzTmFtZSAmJiAhbV9kaXNhYmxlZCAmJiAhbV9yZWFkT25seTsKKyAg
ICByZXR1cm4gIW1fZGlzYWJsZWQgJiYgIW1fcmVhZE9ubHk7CiB9CiAKIFN0cmluZyBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZSgpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaAppbmRleCAxMTcwODdiLi4yMzcyNGE2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgKQEAgLTExNiw3ICsxMTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIHRvb0xvbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBm
b3JtRGVzdHJveWVkKCk7CisgICAgdm9pZCBmb3JtRGVzdHJveWVkKCkgeyBtX2Zvcm0gPSAwOyB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KCk7CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoQmx1ckV2ZW50KCk7CkBAIC0xMzMsNyArMTMzLDYgQEAgcHJpdmF0ZToKIAog
ICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOwogICAgIE93blB0cjxWYWxpZGl0eVN0YXRlPiBt
X3ZhbGlkaXR5U3RhdGU7Ci0gICAgYm9vbCBtX2hhc05hbWUgOiAxOwogICAgIGJvb2wgbV9kaXNh
YmxlZCA6IDE7CiAgICAgYm9vbCBtX3JlYWRPbmx5IDogMTsKICAgICBib29sIG1fcmVxdWlyZWQg
OiAxOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48465</attachid>
            <date>2010-02-09 22:55:38 -0800</date>
            <delta_ts>2010-04-06 10:08:45 -0700</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>bug-34733-20100210155535.patch</filename>
            <type>text/plain</type>
            <size>26901</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMGRhYTAwLi5hOGU5ODZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDIt
MDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpbGxWYWxpZGF0ZSBkb2Vzbid0IG5lZWQg
dG8gY2hlY2sgZXhpc3RlbmNlIG9mIGEgZm9ybSBlbGVtZW50IGFuZCBhIG5hbWUgYXR0cmlidXRl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ3MzMK
KworICAgICAgICAtIE1lcmdlIHdpbGx2YWxpZGF0ZS0wMHggdGVzdHMgaW50byBvbmUgZmlsZS4K
KyAgICAgICAgLSBVcGRhdGUgdGVzdHMgYWZmZWN0ZWQgYnkgdGhlIHdpbGxWYWxpZGF0ZSBiZWhh
dmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWxpdmUtcHNldWRvLXNl
bGVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5w
dXQtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvcmVzb3Vy
Y2VzL3RleHRhcmVhLWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qczoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy93aWxsdmFsaWRhdGUuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDAtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAxLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDIuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDMtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA0Lmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA1LWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDYtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNi5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNy1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA3Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA4LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDguaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDktZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwOS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDItMDkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQuIFJvbGwtb3V0IHI1NDU0MywgYmVjYXVzZSBsYXlv
dXQgdGVzdHMgY3Jhc2ggaW4gZGVidWcgbW9kZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4
dAppbmRleCBjYzg3ZjI0Li4xYzI2MGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0
CkBAIC02LDcgKzYsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogQ2hoZWNrIHRoZSBpbml0
aWFsIHN0YXRlOgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogQ2hhbmdl
IG5hbWU6Ci1QQVNTIGJhY2tncm91bmRPZihlbCkgaXMgbm9ybWFsQ29sb3IKK1BBU1MgYmFja2dy
b3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKIFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZh
bGlkQ29sb3IKIENoYW5nZSBkaXNhYmxlZDoKIFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBkaXNh
YmxlZENvbG9yCkBAIC0xNSw3ICsxNSw3IEBAIENoYW5nZSByZWFkT25seToKIFBBU1MgYmFja2dy
b3VuZE9mKGVsKSBpcyByZWFkT25seUNvbG9yCiBQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCiBJbnNpZGUvb3V0c2lkZSBvZiBhIGZvcm06Ci1QQVNTIGJhY2tncm91bmRPZihl
bCkgaXMgbm9ybWFsQ29sb3IKK1BBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IK
IFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKIENoYW5nZSB0aGUgdmFsdWUg
YnkgRE9NIGF0dHJpYnV0ZToKIFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyB2YWxpZENvbG9yCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9pbnB1dC1saXZlLXBz
ZXVkby1zZWxlY3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9pbnB1
dC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKaW5kZXggYWMxNjRjNC4uYzk5MjYzNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5wdXQtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2lucHV0
LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcwpAQCAtMzYsNyArMzYsNyBAQCBzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKIAogZGVidWcoJ0NoYW5nZSBuYW1lOicpOwogZWwu
bmFtZSA9ICcnOwotc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnbm9ybWFsQ29sb3InKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOwogZWwubmFtZSA9ICdiYXInOwogc2hv
dWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiAKQEAgLTU3LDcgKzU3LDcgQEAg
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiBkZWJ1ZygnSW5zaWRlL291
dHNpZGUgb2YgYSBmb3JtOicpOwogZWwgPSBtYWtlSW52YWxpZCgpOwogbm9uRm9ybS5hcHBlbmRD
aGlsZChlbCk7Ci1zaG91bGRCZShlbEJhY2tncm91bmQsICdub3JtYWxDb2xvcicpOworc2hvdWxk
QmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiBmb3JtLmFwcGVuZENoaWxkKGVsKTsK
IHNob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXh0YXJlYS1saXZlLXBzZXVkby1zZWxl
Y3RvcnMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXh0YXJlYS1saXZl
LXBzZXVkby1zZWxlY3RvcnMuanMKaW5kZXggNzExOWNjNi4uZGU2NmRkNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8tc2Vs
ZWN0b3JzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3RleHRhcmVh
LWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcwpAQCAtMzYsNyArMzYsNyBAQCBzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKIAogZGVidWcoJ0NoYW5nZSBuYW1lOicpOwogZWwu
bmFtZSA9ICcnOwotc2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnbm9ybWFsQ29sb3InKTsKK3Nob3Vs
ZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOwogZWwubmFtZSA9ICdiYXInOwogc2hv
dWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiAKQEAgLTU3LDcgKzU3LDcgQEAg
c2hvdWxkQmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiBkZWJ1ZygnSW5zaWRlL291
dHNpZGUgb2YgYSBmb3JtOicpOwogZWwgPSBtYWtlSW52YWxpZCgpOwogbm9uRm9ybS5hcHBlbmRD
aGlsZChlbCk7Ci1zaG91bGRCZShlbEJhY2tncm91bmQsICdub3JtYWxDb2xvcicpOworc2hvdWxk
QmUoZWxCYWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiBmb3JtLmFwcGVuZENoaWxkKGVsKTsK
IHNob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2ludmFsaWRDb2xvcicpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy93aWxsdmFsaWRhdGUuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy93aWxsdmFsaWRhdGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYzMzAxMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3dpbGx2YWxpZGF0ZS5qcwpAQCAtMCww
ICsxLDYxIEBACitkZXNjcmlwdGlvbignVmFyaW91cyB0ZXN0cyBmb3IgLndpbGxWYWxpZGF0ZSBw
cm9wZXJ0eScpOworCit2YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7
Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudCk7CisKK2RlYnVnKCdFeGlzdGVuY2Ug
b2YgLndpbGxWYWxpZGF0ZScpOworcGFyZW50LmlubmVySFRNTCA9ICc8Zm9ybT4nCisgICAgKyAn
PGlucHV0IG5hbWU9InZpY3RpbSIvPicKKyAgICArICc8dGV4dGFyZWEgbmFtZT0idmljdGltIj48
L3RleHRhcmVhPicKKyAgICArICc8ZmllbGRzZXQgbmFtZT0idmljdGltIj5UZXN0PC9maWVsZHNl
dD4nCisgICAgKyAnPGJ1dHRvbiBuYW1lPSJ2aWN0aW0iPicKKyAgICArICc8c2VsZWN0IG5hbWU9
InZpY3RpbSI+PC9zZWxlY3Q+JworICAgICsgJzwvZm9ybT4nOwordmFyIGNvbnRyb2xzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoJ3ZpY3RpbScpOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgY29udHJvbHMubGVuZ3RoOyBpKyspCisgICAgICAgIHNob3VsZEJlKCd0eXBlb2YgY29udHJv
bHNbaV0ud2lsbFZhbGlkYXRlJywgJyJib29sZWFuIicpOworCitkZWJ1ZygnPGJyIC8+Rm9ybSBh
c3NvY2lhdGlvbicpOworcGFyZW50LmlubmVySFRNTCA9ICc8aW5wdXQgbmFtZT0idGVzdCI+JzsK
K3ZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwor
c2hvdWxkQmVUcnVlKCdpbnB1dC53aWxsVmFsaWRhdGUnKTsKK3BhcmVudC5pbm5lckhUTUwgPSAn
PGZvcm0+PGlucHV0IG5hbWU9InRlc3QiPjwvZm9ybT4nOworaW5wdXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKK3Nob3VsZEJlVHJ1ZSgnaW5wdXQud2lsbFZh
bGlkYXRlJyk7CisKK2RlYnVnKCc8YnIgLz5Db250cm9sIG5hbWUnKTsKK3BhcmVudC5pbm5lckhU
TUwgPSAnPGZvcm0+PGlucHV0PjwvZm9ybT4nOworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKK3Nob3VsZEJlVHJ1ZSgnaW5wdXQud2lsbFZhbGlkYXRl
Jyk7CitwYXJlbnQuaW5uZXJIVE1MID0gJzxmb3JtPjxpbnB1dCBuYW1lPSJ0ZXN0Ij48L2Zvcm0+
JzsKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF07Citz
aG91bGRCZVRydWUoJ2lucHV0LndpbGxWYWxpZGF0ZScpOworCitkZWJ1ZygnPGJyIC8+RGlzYWJs
ZWQgY29udHJvbCcpOworcGFyZW50LmlubmVySFRNTCA9ICc8Zm9ybT48aW5wdXQgbmFtZT0idGVz
dCIgZGlzYWJsZWQ+PC9mb3JtPic7CitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJpbnB1dCIpWzBdOworc2hvdWxkQmVGYWxzZSgnaW5wdXQud2lsbFZhbGlkYXRlJyk7CisK
K2RlYnVnKCc8YnIgLz5SZWFkLW9ubHkgY29udHJvbCcpOworcGFyZW50LmlubmVySFRNTCA9ICc8
Zm9ybT48aW5wdXQgbmFtZT0idGVzdCIgcmVhZG9ubHk+PC9mb3JtPic7CitpbnB1dCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOworc2hvdWxkQmVGYWxzZSgnaW5w
dXQud2lsbFZhbGlkYXRlJyk7CisKK2RlYnVnKCc8YnIgLz5JbnB1dCB0eXBlcycpOworcGFyZW50
LmlubmVySFRNTCA9ICc8Zm9ybT48aW5wdXQgbmFtZT0idGVzdCI+PC9mb3JtPic7CitpbnB1dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOworc2hvdWxkQmVUcnVl
KCdpbnB1dC53aWxsVmFsaWRhdGUnKTsKK3Nob3VsZEJlRmFsc2UoJ2lucHV0LnR5cGUgPSAiYnV0
dG9uIjsgaW5wdXQud2lsbFZhbGlkYXRlJyk7CitzaG91bGRCZVRydWUoJ2lucHV0LnR5cGUgPSAi
c3VibWl0IjsgaW5wdXQud2lsbFZhbGlkYXRlJyk7CitzaG91bGRCZUZhbHNlKCdpbnB1dC50eXBl
ID0gImhpZGRlbiI7IGlucHV0LndpbGxWYWxpZGF0ZScpOworc2hvdWxkQmVGYWxzZSgnaW5wdXQu
dHlwZSA9ICJyZXNldCI7IGlucHV0LndpbGxWYWxpZGF0ZScpOworCitkZWJ1ZygnPGJyIC8+Rmll
bGRzZXQgZWxlbWVudCcpOworcGFyZW50LmlubmVySFRNTCA9ICc8Zm9ybT48ZmllbGRzZXQ+PHA+
RmllbGRzZXQgdGVzdDwvcD48L2ZpZWxkdHNldD48L2Zvcm0+JzsKK3Nob3VsZEJlRmFsc2UoJ2Rv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJmaWVsZHNldCIpWzBdLndpbGxWYWxpZGF0ZScp
OworCitkZWJ1ZygnPGJyIC8+VGV4dGFyZWEgZWxlbWVudCcpOworcGFyZW50LmlubmVySFRNTCA9
ICc8Zm9ybT48dGV4dGFyZWEgbmFtZT0idGV4dCI+PC90ZXh0YXJlYT48L2Zvcm0+JzsKK3Nob3Vs
ZEJlVHJ1ZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRleHRhcmVhIilbMF0ud2ls
bFZhbGlkYXRlJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1saXZlLXBzZXVkby1zZWxlY3RvcnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90ZXh0YXJlYS1saXZlLXBzZXVk
by1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IDk1MTE5NmIuLmY0NGY1YjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8tc2VsZWN0b3Jz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RleHRhcmVhLWxpdmUt
cHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw3IEBAIE9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFCiBDaGhlY2sgdGhlIGluaXRpYWwgc3RhdGU6CiBQQVNTIGJhY2tncm91bmRP
ZihlbCkgaXMgaW52YWxpZENvbG9yCiBDaGFuZ2UgbmFtZToKLVBBU1MgYmFja2dyb3VuZE9mKGVs
KSBpcyBub3JtYWxDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgog
UEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogQ2hhbmdlIGRpc2FibGVkOgog
UEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGRpc2FibGVkQ29sb3IKQEAgLTE1LDcgKzE1LDcgQEAg
Q2hhbmdlIHJlYWRPbmx5OgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHJlYWRPbmx5Q29sb3IK
IFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKIEluc2lkZS9vdXRzaWRlIG9m
IGEgZm9ybToKLVBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBub3JtYWxDb2xvcgorUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGlu
dmFsaWRDb2xvcgogQ2hhbmdlIHRoZSB2YWx1ZSBieSBET00gYXR0cmlidXRlOgogUEFTUyBiYWNr
Z3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvd2lsbHZhbGlkYXRlLTAwMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3dpbGx2YWxpZGF0ZS0wMDAtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyY2ZhZDZkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2ls
bHZhbGlkYXRlLTAwMC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAK
LSAgVGVzdAotCi1TVUNDRVNTCi1TVUNDRVNTCi1TVUNDRVNTCi1TVUNDRVNTCi1TVUNDRVNTCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDAuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3OGE2MTAxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5DaGVjayBmb3Igd2lsbFZhbGlkYXRlIHByb3Bl
cnR5IGV4aXN0ZW5jZTwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+Iitt
ZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0gICAgICAgIGkgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7Ci0gICAgICAgIGZvciAoYyA9IDA7IGMgPCBpLmxl
bmd0aDsgYysrKQotICAgICAgICAgICAgbG9nKHR5cGVvZiBpW2NdLndpbGxWYWxpZGF0ZSAhPSAi
dW5kZWZpbmVkIiA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08Zm9ybT4KLTxpbnB1dCBuYW1lPSJ2aWN0
aW0iLz4KLTx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Ci08ZmllbGRzZXQgbmFt
ZT0idmljdGltIj5UZXN0PC9maWVsZHNldD4KLTxidXR0b24gbmFtZT0idmljdGltIj4KLTxzZWxl
Y3QgbmFtZT0idmljdGltIj48L3NlbGVjdD4KLTwvZm9ybT4KLTxocj4KLTxvbCBpZD0iY29uc29s
ZSI+PC9vbD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAxLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFkY2VjYy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDEtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0KLVNVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAxLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGZkNTQ0MmUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFs
aWRhdGUtMDAxLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHRpdGxlPndpbGxWYWxpZGF0ZSBhbmQgZm9ybSBhc3NvY2lhdGlvbjwvdGl0bGU+Ci08
c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAg
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICAgICAgCi0gICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5w
dXQiKVswXTsKLQotICAgICAgICBsb2coKGkud2lsbFZhbGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJT
VUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08aW5wdXQgbmFtZT0idGVzdCI+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Ci08
L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZGNlY2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDIgKzAsMCBAQAotCi1TVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2ls
bHZhbGlkYXRlLTAwMi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OGVmODRj
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMi5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRs
ZT53aWxsVmFsaWRhdGUgYW5kIGNvbnRyb2wgbmFtZTwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1YWdl
PSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyht
ZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5u
ZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
dGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0gICAg
ICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKLSAgICAg
ICAgCi0gICAgICAgIGxvZygoaS53aWxsVmFsaWRhdGUpID8gIkZBSUxVUkUiIDogIlNVQ0NFU1Mi
KTsKLSAgICB9Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxm
b3JtPjxwPjxpbnB1dD48L3A+PC9mb3JtPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWRjZWNjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLQotU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dp
bGx2YWxpZGF0ZS0wMDMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWJmMjU1
ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDMu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0
bGU+d2lsbFZhbGlkYXRlIGFuZCBhIGRpc2FibGVkIGNvbnRyb2w8L3RpdGxlPgotPHNjcmlwdCBs
YW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlv
biBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOwotICAgIH0KLQotICAgIGZ1
bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAg
IAotICAgICAgICBpID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF07
Ci0gICAgICAgIAotICAgICAgICBsb2coKGkud2lsbFZhbGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJT
VUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08Zm9ybT48cD48aW5wdXQgbmFtZT0idGVzdCIgZGlzYWJsZWQ+PC9wPjwvZm9ybT4KLTxo
cj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2
YWxpZGF0ZS0wMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFs
aWRhdGUtMDA0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFk
Y2VjYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0w
MDQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0KLVNVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA0Lmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNmVjYmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPndpbGxWYWxpZGF0ZSBhbmQgYnV0dG9uIGNv
bnRyb2w8L3RpdGxlPgotPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsi
PC9saT4iOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIAotICAgICAgICBpID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoImlucHV0IilbMF07Ci0gICAgICAgIAotICAgICAgICBsb2coKGkud2lsbFZh
bGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJTVUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08Zm9ybT48cD48aW5wdXQgbmFtZT0idGVzdCIg
dHlwZT0iYnV0dG9uIj48L3A+PC9mb3JtPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWRjZWNjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLQotU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA1Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dp
bGx2YWxpZGF0ZS0wMDUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU0ZTQx
Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0
bGU+d2lsbFZhbGlkYXRlIGFuZCBzdWJtaXQgY29udHJvbDwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1
YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0g
ICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKLSAg
ICAgICAgCi0gICAgICAgIGxvZygoaS53aWxsVmFsaWRhdGUpID8gIlNVQ0NFU1MiIDogIkZBSUxV
UkUiKTsKLSAgICB9Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4K
LTxmb3JtPjxwPjxpbnB1dCBuYW1lPSJ0ZXN0IiB0eXBlPSJzdWJtaXQiPjwvcD48L2Zvcm0+Ci08
aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZh
bGlkYXRlLTAwNi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJi
NTk2YjIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUt
MDA2LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1GaWVsZHNl
dCB0ZXN0Ci0KLVNVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2ls
bHZhbGlkYXRlLTAwNi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUt
MDA2Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzNTA3OWUuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA2Lmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPndpbGxWYWxp
ZGF0ZSBhbmQgdGhlICZsdDtmaWVsZHNldD4gZWxlbWVudDwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1
YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0g
ICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZmllbGRzZXQiKVswXTsK
LSAgICAgICAgbG9nKChpLndpbGxWYWxpZGF0ZSkgPyAiRkFJTFVSRSIgOiAiU1VDQ0VTUyIpOwot
ICAgIH0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGZvcm0+
Ci08ZmllbGRzZXQ+Ci08cCBpZD0iciI+RmllbGRzZXQgdGVzdDwvcD4KLTwvZmllbGRzZXQ+Ci08
L2Zvcm0+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy93aWxsdmFsaWRhdGUtMDA3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvd2lsbHZhbGlkYXRlLTAwNy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGMxZGNlY2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDA3LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAot
Ci1TVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0
ZS0wMDcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWZiNWNkLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT53aWxsVmFsaWRhdGUgYW5k
IGEgcmVhZG9ubHkgY29udHJvbDwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8
bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0gICAgICAgIGkgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKLSAgICAgICAgbG9nKChpLndp
bGxWYWxpZGF0ZSkgPyAiRkFJTFVSRSIgOiAiU1VDQ0VTUyIpOwotICAgIH0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGZvcm0+PGlucHV0IG5hbWU9InRlc3Qi
IHJlYWRvbmx5PjwvZm9ybT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KLTwvYm9keT4K
LTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA4LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZmY0M2NhNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDA4Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0w
MDguaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE2NzVkZC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDguaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDIzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+d2lsbFZhbGlk
YXRlIGFuZCBhIGhpZGRlbiBjb250cm9sPC90aXRsZT4KLTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFT
Y3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
IHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwg
Kz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0KCkg
ewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAKLSAgICAgICAgaSA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwotICAgICAgICBsb2co
KGkud2lsbFZhbGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJTVUNDRVNTIik7Ci0gICAgfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08Zm9ybT48aW5wdXQgbmFtZT0i
dGVzdCIgdHlwZT0iaGlkZGVuIj48L2Zvcm0+Ci08aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+
Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwOS1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxZGNlY2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDIgKzAsMCBAQAotCi1TVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
d2lsbHZhbGlkYXRlLTAwOS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjJh
N2M1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAw
OS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0
aXRsZT53aWxsVmFsaWRhdGUgYW5kIGEgcmVzZXQgY29udHJvbDwvdGl0bGU+Ci08c2NyaXB0IGxh
bmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9u
IGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAg
Ci0gICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsK
LSAgICAgICAgbG9nKChpLndpbGxWYWxpZGF0ZSkgPyAiRkFJTFVSRSIgOiAiU1VDQ0VTUyIpOwot
ICAgIH0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGZvcm0+
PGlucHV0IG5hbWU9InRlc3QiIHR5cGU9InJlc2V0Ij48L2Zvcm0+Ci08aHI+Ci08b2wgaWQ9ImNv
bnNvbGUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxNmE4YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0MiBAQAorVmFyaW91cyB0ZXN0cyBmb3IgLndpbGxWYWxpZGF0ZSBwcm9wZXJ0
eQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRXhpc3RlbmNlIG9mIC53aWxsVmFs
aWRhdGUKK1BBU1MgdHlwZW9mIGNvbnRyb2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIK
K1BBU1MgdHlwZW9mIGNvbnRyb2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIKK1BBU1Mg
dHlwZW9mIGNvbnRyb2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIKK1BBU1MgdHlwZW9m
IGNvbnRyb2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIKK1BBU1MgdHlwZW9mIGNvbnRy
b2xzW2ldLndpbGxWYWxpZGF0ZSBpcyAiYm9vbGVhbiIKKworRm9ybSBhc3NvY2lhdGlvbgorUEFT
UyBpbnB1dC53aWxsVmFsaWRhdGUgaXMgdHJ1ZQorUEFTUyBpbnB1dC53aWxsVmFsaWRhdGUgaXMg
dHJ1ZQorCitDb250cm9sIG5hbWUKK1BBU1MgaW5wdXQud2lsbFZhbGlkYXRlIGlzIHRydWUKK1BB
U1MgaW5wdXQud2lsbFZhbGlkYXRlIGlzIHRydWUKKworRGlzYWJsZWQgY29udHJvbAorUEFTUyBp
bnB1dC53aWxsVmFsaWRhdGUgaXMgZmFsc2UKKworUmVhZC1vbmx5IGNvbnRyb2wKK1BBU1MgaW5w
dXQud2lsbFZhbGlkYXRlIGlzIGZhbHNlCisKK0lucHV0IHR5cGVzCitQQVNTIGlucHV0LndpbGxW
YWxpZGF0ZSBpcyB0cnVlCitQQVNTIGlucHV0LnR5cGUgPSAiYnV0dG9uIjsgaW5wdXQud2lsbFZh
bGlkYXRlIGlzIGZhbHNlCitQQVNTIGlucHV0LnR5cGUgPSAic3VibWl0IjsgaW5wdXQud2lsbFZh
bGlkYXRlIGlzIHRydWUKK1BBU1MgaW5wdXQudHlwZSA9ICJoaWRkZW4iOyBpbnB1dC53aWxsVmFs
aWRhdGUgaXMgZmFsc2UKK1BBU1MgaW5wdXQudHlwZSA9ICJyZXNldCI7IGlucHV0LndpbGxWYWxp
ZGF0ZSBpcyBmYWxzZQorCitGaWVsZHNldCBlbGVtZW50CitQQVNTIGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJmaWVsZHNldCIpWzBdLndpbGxWYWxpZGF0ZSBpcyBmYWxzZQorCitUZXh0
YXJlYSBlbGVtZW50CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXh0YXJl
YSIpWzBdLndpbGxWYWxpZGF0ZSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy93aWxsdmFsaWRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU4ZmE5NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLmh0bWwKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvd2lsbHZhbGlkYXRlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzdkMTE4Li5iODU3YTNiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDEwLTAyLTA5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3aWxsVmFsaWRhdGUgZG9lc24n
dCBuZWVkIHRvIGNoZWNrIGV4aXN0ZW5jZSBvZiBhIGZvcm0gZWxlbWVudCBhbmQgYSBuYW1lIGF0
dHJpYnV0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0NzMzCisKKyAgICAgICAgUmVtb3ZlIG1fZm9ybSBhbmQgbV9oYXNOYW1lIGNoZWNrcyBpbgor
ICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRhdGUoKSwgYW5kIHJlbW92
ZSB0aGUgY29kZSB0bworICAgICAgICB0cmFjayB0aGVpciB1cGRhdGVzLgorCisgICAgICAgIFRl
c3Q6IGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Omluc2VydGVkSW50b1RyZWUpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSk6CisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpmb3JtRGVzdHJveWVkKToKKwogMjAxMC0wMi0wOSAgR2F2
aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVy
IFN0YW1wZWQgYnkgR2VvZmYgR2FyZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5jcHAKaW5kZXggNmYyNGUwYy4uN2M2ZTk4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtNTIsNyArNTIsNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogSFRNTEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYp
CiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2MpCiAgICAgLCBtX2Zvcm0oZikKLSAgICAs
IG1faGFzTmFtZShmYWxzZSkKICAgICAsIG1fZGlzYWJsZWQoZmFsc2UpCiAgICAgLCBtX3JlYWRP
bmx5KGZhbHNlKQogICAgICwgbV9yZXF1aXJlZChmYWxzZSkKQEAgLTkxLDkgKzkwLDcgQEAgVmFs
aWRpdHlTdGF0ZSogSFRNTEZvcm1Db250cm9sRWxlbWVudDo6dmFsaWRpdHkoKQogdm9pZCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUg
KmF0dHIpCiB7CiAgICAgYm9vbCBvbGRXaWxsVmFsaWRhdGUgPSB3aWxsVmFsaWRhdGUoKTsKLSAg
ICBpZiAoYXR0ci0+bmFtZSgpID09IG5hbWVBdHRyKQotICAgICAgICBtX2hhc05hbWUgPSAhYXR0
ci0+aXNFbXB0eSgpOwotICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBkaXNhYmxlZEF0dHIp
IHsKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IGRpc2FibGVkQXR0cikgewogICAgICAgICBib29s
IG9sZERpc2FibGVkID0gbV9kaXNhYmxlZDsKICAgICAgICAgbV9kaXNhYmxlZCA9ICFhdHRyLT5p
c051bGwoKTsKICAgICAgICAgaWYgKG9sZERpc2FibGVkICE9IG1fZGlzYWJsZWQpIHsKQEAgLTE1
MywxMCArMTUwLDkgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjppbnNlcnRlZEludG9U
cmVlKGJvb2wgZGVlcCkKICAgICAgICAgLy8gc2V0dGluZyBhIGZvcm0sIHdlIHdpbGwgYWxyZWFk
eSBoYXZlIGEgbm9uLW51bGwgdmFsdWUgZm9yIG1fZm9ybSwgCiAgICAgICAgIC8vIGFuZCBzbyB3
ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nLgogICAgICAgICBtX2Zvcm0gPSBmaW5kRm9ybUFu
Y2VzdG9yKCk7Ci0gICAgICAgIGlmIChtX2Zvcm0pIHsKKyAgICAgICAgaWYgKG1fZm9ybSkKICAg
ICAgICAgICAgIG1fZm9ybS0+cmVnaXN0ZXJGb3JtRWxlbWVudCh0aGlzKTsKLSAgICAgICAgICAg
IHNldE5lZWRzV2lsbFZhbGlkYXRlQ2hlY2soKTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIGVs
c2UKICAgICAgICAgICAgIGRvY3VtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRvbnMoKS5hZGRCdXR0
b24odGhpcyk7CiAgICAgfQogCkBAIC0xODMsMTkgKzE3OSwxMSBAQCB2b2lkIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApCiAgICAgaWYgKG1fZm9ybSAm
JiAhKHBhcnNlciAmJiBwYXJzZXItPmlzSGFuZGxpbmdSZXNpZHVhbFN0eWxlQWNyb3NzQmxvY2tz
KCkpICYmIGZpbmRSb290KHRoaXMpICE9IGZpbmRSb290KG1fZm9ybSkpIHsKICAgICAgICAgbV9m
b3JtLT5yZW1vdmVGb3JtRWxlbWVudCh0aGlzKTsKICAgICAgICAgbV9mb3JtID0gMDsKLSAgICAg
ICAgc2V0TmVlZHNXaWxsVmFsaWRhdGVDaGVjaygpOwogICAgIH0KIAogICAgIEhUTUxFbGVtZW50
OjpyZW1vdmVkRnJvbVRyZWUoZGVlcCk7CiB9CiAKLXZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6Zm9ybURlc3Ryb3llZCgpCi17Ci0gICAgaWYgKG1fZm9ybSkKLSAgICAgICAgc2V0TmVlZHNX
aWxsVmFsaWRhdGVDaGVjaygpOwotICAgIG1fZm9ybSA9IDA7Ci19Ci0KIGNvbnN0IEF0b21pY1N0
cmluZyYgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Zm9ybUNvbnRyb2xOYW1lKCkgY29uc3QKIHsK
ICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUobmFtZUF0dHIpOwpAQCAt
MzA1LDcgKzI5Myw3IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlkYXRl
KCkgY29uc3QKICAgICAvLyAgICAgIFRoZSBjb250cm9sIGRvZXMgbm90IGhhdmUgYSByZXBldGl0
aW9uIHRlbXBsYXRlIGFzIGFuIGFuY2VzdG9yLgogICAgIC8vICAgICAgVGhlIGNvbnRyb2wgZG9l
cyBub3QgaGF2ZSBhIGRhdGFsaXN0IGVsZW1lbnQgYXMgYW4gYW5jZXN0b3IuCiAgICAgLy8gICAg
ICBUaGUgY29udHJvbCBpcyBub3QgYW4gb3V0cHV0IGVsZW1lbnQuCi0gICAgcmV0dXJuIG1fZm9y
bSAmJiBtX2hhc05hbWUgJiYgIW1fZGlzYWJsZWQgJiYgIW1fcmVhZE9ubHk7CisgICAgcmV0dXJu
ICFtX2Rpc2FibGVkICYmICFtX3JlYWRPbmx5OwogfQogCiBTdHJpbmcgSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6dmFsaWRhdGlvbk1lc3NhZ2UoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmgKaW5kZXggMTE3MDg3Yi4uMjM3MjRhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5oCkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBw
YXR0ZXJuTWlzbWF0Y2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCB0b29Mb25nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgZm9ybURlc3Ry
b3llZCgpOworICAgIHZvaWQgZm9ybURlc3Ryb3llZCgpIHsgbV9mb3JtID0gMDsgfQogCiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaEJsdXJFdmVudCgpOwpAQCAtMTMzLDcgKzEzMyw2IEBAIHByaXZhdGU6CiAKICAgICBIVE1M
Rm9ybUVsZW1lbnQqIG1fZm9ybTsKICAgICBPd25QdHI8VmFsaWRpdHlTdGF0ZT4gbV92YWxpZGl0
eVN0YXRlOwotICAgIGJvb2wgbV9oYXNOYW1lIDogMTsKICAgICBib29sIG1fZGlzYWJsZWQgOiAx
OwogICAgIGJvb2wgbV9yZWFkT25seSA6IDE7CiAgICAgYm9vbCBtX3JlcXVpcmVkIDogMTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52648</attachid>
            <date>2010-04-06 10:08:50 -0700</date>
            <delta_ts>2010-04-08 07:13:08 -0700</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>bug-34733-20100407020848.patch</filename>
            <type>text/plain</type>
            <size>30237</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMDY5MTI1Li43ZmU1MzU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTAtMDQt
MDYgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdpbGxWYWxpZGF0ZSBkb2Vzbid0IG5lZWQg
dG8gY2hlY2sgZXhpc3RlbmNlIG9mIGEgZm9ybSBlbGVtZW50IGFuZCBhIG5hbWUgYXR0cmlidXRl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ3MzMK
KworICAgICAgICAtIE1lcmdlIHdpbGx2YWxpZGF0ZS0wMHggdGVzdHMgaW50byBvbmUgZmlsZS4K
KyAgICAgICAgLSBVcGRhdGUgdGVzdHMgYWZmZWN0ZWQgYnkgdGhlIHdpbGxWYWxpZGF0ZSBiZWhh
dmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LWxpdmUtcHNldWRvLXNl
bGVjdG9ycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5w
dXQtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLmpzOgorICAgICAgICAqIGZhc3QvZm9ybXMvcmVzb3Vy
Y2VzL3RleHRhcmVhLWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qczoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy93aWxsdmFsaWRhdGUuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDAtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAxLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDIuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDMtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA0Lmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA1LWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDYtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNi5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNy1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA3Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA4LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDguaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDktZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwOS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUuaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDQtMDYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgTm90IHJldmlld2VkOiByZWJhc2VsaW5pbmcgQ2hyb21pdW0gbGF5b3V0IHRl
c3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGNjODdm
MjQuLjFjMjYwYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbGl2
ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lucHV0LWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw3
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBDaGhlY2sgdGhlIGluaXRpYWwgc3RhdGU6CiBQ
QVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCiBDaGFuZ2UgbmFtZToKLVBBU1Mg
YmFja2dyb3VuZE9mKGVsKSBpcyBub3JtYWxDb2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IGludmFsaWRDb2xvcgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogQ2hh
bmdlIGRpc2FibGVkOgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGRpc2FibGVkQ29sb3IKQEAg
LTE1LDcgKzE1LDcgQEAgQ2hhbmdlIHJlYWRPbmx5OgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlz
IHJlYWRPbmx5Q29sb3IKIFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKIElu
c2lkZS9vdXRzaWRlIG9mIGEgZm9ybToKLVBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBub3JtYWxD
b2xvcgorUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogUEFTUyBiYWNrZ3Jv
dW5kT2YoZWwpIGlzIGludmFsaWRDb2xvcgogQ2hhbmdlIHRoZSB2YWx1ZSBieSBET00gYXR0cmli
dXRlOgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIHZhbGlkQ29sb3IKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2lucHV0LWxpdmUtcHNldWRvLXNlbGVjdG9y
cy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2lucHV0LWxpdmUtcHNldWRv
LXNlbGVjdG9ycy5qcwppbmRleCBhYzE2NGM0Li5jOTkyNjM0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9pbnB1dC1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW5wdXQtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmpzCkBAIC0zNiw3ICszNiw3IEBAIHNob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2lu
dmFsaWRDb2xvcicpOwogCiBkZWJ1ZygnQ2hhbmdlIG5hbWU6Jyk7CiBlbC5uYW1lID0gJyc7Ci1z
aG91bGRCZShlbEJhY2tncm91bmQsICdub3JtYWxDb2xvcicpOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAnaW52YWxpZENvbG9yJyk7CiBlbC5uYW1lID0gJ2Jhcic7CiBzaG91bGRCZShlbEJhY2tn
cm91bmQsICdpbnZhbGlkQ29sb3InKTsKIApAQCAtNTcsNyArNTcsNyBAQCBzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKIGRlYnVnKCdJbnNpZGUvb3V0c2lkZSBvZiBhIGZv
cm06Jyk7CiBlbCA9IG1ha2VJbnZhbGlkKCk7CiBub25Gb3JtLmFwcGVuZENoaWxkKGVsKTsKLXNo
b3VsZEJlKGVsQmFja2dyb3VuZCwgJ25vcm1hbENvbG9yJyk7CitzaG91bGRCZShlbEJhY2tncm91
bmQsICdpbnZhbGlkQ29sb3InKTsKIGZvcm0uYXBwZW5kQ2hpbGQoZWwpOwogc2hvdWxkQmUoZWxC
YWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVzb3VyY2VzL3RleHRhcmVhLWxpdmUtcHNldWRvLXNlbGVjdG9ycy5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3RleHRhcmVhLWxpdmUtcHNldWRvLXNlbGVj
dG9ycy5qcwppbmRleCA3MTE5Y2M2Li5kZTY2ZGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3Jlc291cmNlcy90ZXh0YXJlYS1saXZlLXBzZXVkby1zZWxlY3RvcnMuanMKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8t
c2VsZWN0b3JzLmpzCkBAIC0zNiw3ICszNiw3IEBAIHNob3VsZEJlKGVsQmFja2dyb3VuZCwgJ2lu
dmFsaWRDb2xvcicpOwogCiBkZWJ1ZygnQ2hhbmdlIG5hbWU6Jyk7CiBlbC5uYW1lID0gJyc7Ci1z
aG91bGRCZShlbEJhY2tncm91bmQsICdub3JtYWxDb2xvcicpOworc2hvdWxkQmUoZWxCYWNrZ3Jv
dW5kLCAnaW52YWxpZENvbG9yJyk7CiBlbC5uYW1lID0gJ2Jhcic7CiBzaG91bGRCZShlbEJhY2tn
cm91bmQsICdpbnZhbGlkQ29sb3InKTsKIApAQCAtNTcsNyArNTcsNyBAQCBzaG91bGRCZShlbEJh
Y2tncm91bmQsICdpbnZhbGlkQ29sb3InKTsKIGRlYnVnKCdJbnNpZGUvb3V0c2lkZSBvZiBhIGZv
cm06Jyk7CiBlbCA9IG1ha2VJbnZhbGlkKCk7CiBub25Gb3JtLmFwcGVuZENoaWxkKGVsKTsKLXNo
b3VsZEJlKGVsQmFja2dyb3VuZCwgJ25vcm1hbENvbG9yJyk7CitzaG91bGRCZShlbEJhY2tncm91
bmQsICdpbnZhbGlkQ29sb3InKTsKIGZvcm0uYXBwZW5kQ2hpbGQoZWwpOwogc2hvdWxkQmUoZWxC
YWNrZ3JvdW5kLCAnaW52YWxpZENvbG9yJyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvc2NyaXB0LXRlc3RzL3dpbGx2YWxpZGF0ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvc2NyaXB0LXRlc3RzL3dpbGx2YWxpZGF0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41NGZlMzhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvd2lsbHZhbGlkYXRlLmpzCkBAIC0wLDAgKzEsNjggQEAKK2Rl
c2NyaXB0aW9uKCdWYXJpb3VzIHRlc3RzIGZvciAud2lsbFZhbGlkYXRlIHByb3BlcnR5Jyk7CisK
K3ZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2RvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsKKworZGVidWcoJ0V4aXN0ZW5jZSBvZiAud2lsbFZhbGlk
YXRlJyk7CitwYXJlbnQuaW5uZXJIVE1MID0gJzxmb3JtPicKKyAgICArICc8aW5wdXQgbmFtZT0i
dmljdGltIi8+JworICAgICsgJzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Jwor
ICAgICsgJzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPlRlc3Q8L2ZpZWxkc2V0PicKKyAgICArICc8
YnV0dG9uIG5hbWU9InZpY3RpbSI+JworICAgICsgJzxzZWxlY3QgbmFtZT0idmljdGltIj48L3Nl
bGVjdD4nCisgICAgKyAnPC9mb3JtPic7Cit2YXIgY29udHJvbHMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5TmFtZSgndmljdGltJyk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb250cm9scy5s
ZW5ndGg7IGkrKykKKyAgICAgICAgc2hvdWxkQmUoJ3R5cGVvZiBjb250cm9sc1tpXS53aWxsVmFs
aWRhdGUnLCAnImJvb2xlYW4iJyk7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdGb3JtIGFzc29jaWF0
aW9uJyk7CitwYXJlbnQuaW5uZXJIVE1MID0gJzxpbnB1dCBuYW1lPSJ0ZXN0Ij4nOwordmFyIGlu
cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF07CitzaG91bGRC
ZVRydWUoJ2lucHV0LndpbGxWYWxpZGF0ZScpOworcGFyZW50LmlubmVySFRNTCA9ICc8Zm9ybT48
aW5wdXQgbmFtZT0idGVzdCI+PC9mb3JtPic7CitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpWzBdOworc2hvdWxkQmVUcnVlKCdpbnB1dC53aWxsVmFsaWRhdGUn
KTsKKworZGVidWcoJycpOworZGVidWcoJ0NvbnRyb2wgbmFtZScpOworcGFyZW50LmlubmVySFRN
TCA9ICc8Zm9ybT48aW5wdXQ+PC9mb3JtPic7CitpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpWzBdOworc2hvdWxkQmVUcnVlKCdpbnB1dC53aWxsVmFsaWRhdGUn
KTsKK3BhcmVudC5pbm5lckhUTUwgPSAnPGZvcm0+PGlucHV0IG5hbWU9InRlc3QiPjwvZm9ybT4n
OworaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKK3No
b3VsZEJlVHJ1ZSgnaW5wdXQud2lsbFZhbGlkYXRlJyk7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdE
aXNhYmxlZCBjb250cm9sJyk7CitwYXJlbnQuaW5uZXJIVE1MID0gJzxmb3JtPjxpbnB1dCBuYW1l
PSJ0ZXN0IiBkaXNhYmxlZD48L2Zvcm0+JzsKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImlucHV0IilbMF07CitzaG91bGRCZUZhbHNlKCdpbnB1dC53aWxsVmFsaWRhdGUn
KTsKKworZGVidWcoJycpOworZGVidWcoJ1JlYWQtb25seSBjb250cm9sJyk7CitwYXJlbnQuaW5u
ZXJIVE1MID0gJzxmb3JtPjxpbnB1dCBuYW1lPSJ0ZXN0IiByZWFkb25seT48L2Zvcm0+JzsKK2lu
cHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF07CitzaG91bGRC
ZUZhbHNlKCdpbnB1dC53aWxsVmFsaWRhdGUnKTsKKworZGVidWcoJycpOworZGVidWcoJ0lucHV0
IHR5cGVzJyk7CitwYXJlbnQuaW5uZXJIVE1MID0gJzxmb3JtPjxpbnB1dCBuYW1lPSJ0ZXN0Ij48
L2Zvcm0+JzsKK2lucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0Iilb
MF07CitzaG91bGRCZVRydWUoJ2lucHV0LndpbGxWYWxpZGF0ZScpOworc2hvdWxkQmVGYWxzZSgn
aW5wdXQudHlwZSA9ICJidXR0b24iOyBpbnB1dC53aWxsVmFsaWRhdGUnKTsKK3Nob3VsZEJlVHJ1
ZSgnaW5wdXQudHlwZSA9ICJzdWJtaXQiOyBpbnB1dC53aWxsVmFsaWRhdGUnKTsKK3Nob3VsZEJl
RmFsc2UoJ2lucHV0LnR5cGUgPSAiaGlkZGVuIjsgaW5wdXQud2lsbFZhbGlkYXRlJyk7CitzaG91
bGRCZUZhbHNlKCdpbnB1dC50eXBlID0gInJlc2V0IjsgaW5wdXQud2lsbFZhbGlkYXRlJyk7CisK
K2RlYnVnKCcnKTsKK2RlYnVnKCdGaWVsZHNldCBlbGVtZW50Jyk7CitwYXJlbnQuaW5uZXJIVE1M
ID0gJzxmb3JtPjxmaWVsZHNldD48cD5GaWVsZHNldCB0ZXN0PC9wPjwvZmllbGR0c2V0PjwvZm9y
bT4nOworc2hvdWxkQmVGYWxzZSgnZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImZpZWxk
c2V0IilbMF0ud2lsbFZhbGlkYXRlJyk7CisKK2RlYnVnKCcnKTsKK2RlYnVnKCdUZXh0YXJlYSBl
bGVtZW50Jyk7CitwYXJlbnQuaW5uZXJIVE1MID0gJzxmb3JtPjx0ZXh0YXJlYSBuYW1lPSJ0ZXh0
Ij48L3RleHRhcmVhPjwvZm9ybT4nOworc2hvdWxkQmVUcnVlKCdkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgidGV4dGFyZWEiKVswXS53aWxsVmFsaWRhdGUnKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Rl
eHRhcmVhLWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3RleHRhcmVhLWxpdmUtcHNldWRvLXNlbGVjdG9ycy1leHBlY3RlZC50eHQKaW5k
ZXggOTUxMTk2Yi4uZjQ0ZjViMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90
ZXh0YXJlYS1saXZlLXBzZXVkby1zZWxlY3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvdGV4dGFyZWEtbGl2ZS1wc2V1ZG8tc2VsZWN0b3JzLWV4cGVjdGVkLnR4
dApAQCAtNiw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIENoaGVjayB0aGUgaW5p
dGlhbCBzdGF0ZToKIFBBU1MgYmFja2dyb3VuZE9mKGVsKSBpcyBpbnZhbGlkQ29sb3IKIENoYW5n
ZSBuYW1lOgotUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIG5vcm1hbENvbG9yCitQQVNTIGJhY2tn
cm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCiBQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52
YWxpZENvbG9yCiBDaGFuZ2UgZGlzYWJsZWQ6CiBQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgZGlz
YWJsZWRDb2xvcgpAQCAtMTUsNyArMTUsNyBAQCBDaGFuZ2UgcmVhZE9ubHk6CiBQQVNTIGJhY2tn
cm91bmRPZihlbCkgaXMgcmVhZE9ubHlDb2xvcgogUEFTUyBiYWNrZ3JvdW5kT2YoZWwpIGlzIGlu
dmFsaWRDb2xvcgogSW5zaWRlL291dHNpZGUgb2YgYSBmb3JtOgotUEFTUyBiYWNrZ3JvdW5kT2Yo
ZWwpIGlzIG5vcm1hbENvbG9yCitQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9y
CiBQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgaW52YWxpZENvbG9yCiBDaGFuZ2UgdGhlIHZhbHVl
IGJ5IERPTSBhdHRyaWJ1dGU6CiBQQVNTIGJhY2tncm91bmRPZihlbCkgaXMgdmFsaWRDb2xvcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAwLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjZmFkNmQuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAwLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotICBUZXN0Ci0KLVNVQ0NFU1MKLVNVQ0NFU1MK
LVNVQ0NFU1MKLVNVQ0NFU1MKLVNVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvd2lsbHZhbGlkYXRlLTAwMC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDAwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4YTYxMDEu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAwLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxl
PkNoZWNrIGZvciB3aWxsVmFsaWRhdGUgcHJvcGVydHkgZXhpc3RlbmNlPC90aXRsZT4KLTxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
ICAgICAKLSAgICAgICAgaSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsK
LSAgICAgICAgZm9yIChjID0gMDsgYyA8IGkubGVuZ3RoOyBjKyspCi0gICAgICAgICAgICBsb2co
dHlwZW9mIGlbY10ud2lsbFZhbGlkYXRlICE9ICJ1bmRlZmluZWQiID8gIlNVQ0NFU1MiIDogIkZB
SUxVUkUiKTsKLSAgICB9Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KLTxmb3JtPgotPGlucHV0IG5hbWU9InZpY3RpbSIvPgotPHRleHRhcmVhIG5hbWU9InZpY3Rp
bSI+PC90ZXh0YXJlYT4KLTxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPlRlc3Q8L2ZpZWxkc2V0Pgot
PGJ1dHRvbiBuYW1lPSJ2aWN0aW0iPgotPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0Pgot
PC9mb3JtPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgotPC9ib2R5PgotPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvd2lsbHZhbGlkYXRlLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3dpbGx2YWxpZGF0ZS0wMDEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjMWRjZWNjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2ls
bHZhbGlkYXRlLTAwMS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAK
LQotU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRh
dGUtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDEuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQ1NDQyZS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDEuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDI0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+d2lsbFZhbGlkYXRlIGFu
ZCBmb3JtIGFzc29jaWF0aW9uPC90aXRsZT4KLTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQi
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxs
aT4iK21lc3NhZ2UrIjwvbGk+IjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAKLSAgICAgICAgaSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwotCi0gICAgICAgIGxvZygoaS53
aWxsVmFsaWRhdGUpID8gIkZBSUxVUkUiIDogIlNVQ0NFU1MiKTsKLSAgICB9Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxpbnB1dCBuYW1lPSJ0ZXN0Ij4KLTxo
cj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2
YWxpZGF0ZS0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFs
aWRhdGUtMDAyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFk
Y2VjYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0w
MDItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0KLVNVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4ZWY4NGMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDAyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNCAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPndpbGxWYWxpZGF0ZSBhbmQgY29udHJvbCBu
YW1lPC90aXRsZT4KLTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwv
bGk+IjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICAKLSAgICAgICAgaSA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpWzBdOwotICAgICAgICAKLSAgICAgICAgbG9nKChpLndpbGxWYWxp
ZGF0ZSkgPyAiRkFJTFVSRSIgOiAiU1VDQ0VTUyIpOwotICAgIH0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGZvcm0+PHA+PGlucHV0PjwvcD48L2Zvcm0+Ci08
aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDAzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZh
bGlkYXRlLTAwMy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMx
ZGNlY2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUt
MDAzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotCi1TVUNDRVNT
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYmYyNTVkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwMy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT53aWxsVmFsaWRhdGUgYW5kIGEgZGlzYWJs
ZWQgY29udHJvbDwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNz
YWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0gICAgICAgIGkgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKLSAgICAgICAgCi0gICAgICAgIGxvZygoaS53
aWxsVmFsaWRhdGUpID8gIkZBSUxVUkUiIDogIlNVQ0NFU1MiKTsKLSAgICB9Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4KLTxmb3JtPjxwPjxpbnB1dCBuYW1lPSJ0
ZXN0IiBkaXNhYmxlZD48L3A+PC9mb3JtPgotPGhyPgotPG9sIGlkPSJjb25zb2xlIj48L29sPgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWRjZWNjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLQotU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dp
bGx2YWxpZGF0ZS0wMDQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI2ZWNi
Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08dGl0
bGU+d2lsbFZhbGlkYXRlIGFuZCBidXR0b24gY29udHJvbDwvdGl0bGU+Ci08c2NyaXB0IGxhbmd1
YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIiku
aW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgCi0g
ICAgICAgIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXTsKLSAg
ICAgICAgCi0gICAgICAgIGxvZygoaS53aWxsVmFsaWRhdGUpID8gIkZBSUxVUkUiIDogIlNVQ0NF
U1MiKTsKLSAgICB9Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4K
LTxmb3JtPjxwPjxpbnB1dCBuYW1lPSJ0ZXN0IiB0eXBlPSJidXR0b24iPjwvcD48L2Zvcm0+Ci08
aHI+Ci08b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDA1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZh
bGlkYXRlLTAwNS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMx
ZGNlY2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUt
MDA1LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotCi1TVUNDRVNT
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTRlNDE3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT53aWxsVmFsaWRhdGUgYW5kIHN1Ym1pdCBj
b250cm9sPC90aXRsZT4KLTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2Ur
IjwvbGk+IjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAKLSAgICAgICAgaSA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwotICAgICAgICAKLSAgICAgICAgbG9nKChpLndpbGxW
YWxpZGF0ZSkgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOwotICAgIH0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgotPGZvcm0+PHA+PGlucHV0IG5hbWU9InRlc3Qi
IHR5cGU9InN1Ym1pdCI+PC9wPjwvZm9ybT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4K
LTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDYtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA2LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI1OTZiMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDYtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNCArMCwwIEBACi0KLUZpZWxkc2V0IHRlc3QKLQotU1VDQ0VTUwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA2Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjM1MDc5ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3dpbGx2YWxpZGF0ZS0wMDYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08dGl0bGU+d2lsbFZhbGlkYXRlIGFuZCB0aGUgJmx0O2ZpZWxkc2V0PiBl
bGVtZW50PC90aXRsZT4KLTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQv
amF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2Ur
IjwvbGk+IjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAKLSAgICAgICAgaSA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJmaWVsZHNldCIpWzBdOwotICAgICAgICBsb2coKGkud2lsbFZhbGlkYXRl
KSA/ICJGQUlMVVJFIiA6ICJTVUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08Zm9ybT4KLTxmaWVsZHNldD4KLTxwIGlkPSJyIj5GaWVs
ZHNldCB0ZXN0PC9wPgotPC9maWVsZHNldD4KLTwvZm9ybT4KLTxocj4KLTxvbCBpZD0iY29uc29s
ZSI+PC9vbD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA3LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFkY2VjYy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDctZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0KLVNVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwNy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA3Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGMxZmI1Y2QuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFs
aWRhdGUtMDA3Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHRpdGxlPndpbGxWYWxpZGF0ZSBhbmQgYSByZWFkb25seSBjb250cm9sPC90aXRsZT4K
LTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0g
ICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgICAgICAKLSAgICAgICAgaSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJp
bnB1dCIpWzBdOwotICAgICAgICBsb2coKGkud2lsbFZhbGlkYXRlKSA/ICJGQUlMVVJFIiA6ICJT
VUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+Ci08Zm9ybT48aW5wdXQgbmFtZT0idGVzdCIgcmVhZG9ubHk+PC9mb3JtPgotPGhyPgotPG9s
IGlkPSJjb25zb2xlIj48L29sPgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRl
LTAwOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0w
MDgtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjQzY2E0Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwOC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1TVUNDRVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS0wMDguaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwOC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1YTY3NWRkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
d2lsbHZhbGlkYXRlLTAwOC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTx0aXRsZT53aWxsVmFsaWRhdGUgYW5kIGEgaGlkZGVuIGNvbnRyb2w8L3Rp
dGxlPgotPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgICAgIAotICAgICAgICBpID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImlucHV0IilbMF07Ci0gICAgICAgIGxvZygoaS53aWxsVmFsaWRhdGUpID8gIkZBSUxVUkUi
IDogIlNVQ0NFU1MiKTsKLSAgICB9Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
dGVzdCgpIj4KLTxmb3JtPjxpbnB1dCBuYW1lPSJ0ZXN0IiB0eXBlPSJoaWRkZW4iPjwvZm9ybT4K
LTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dp
bGx2YWxpZGF0ZS0wMDktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxs
dmFsaWRhdGUtMDA5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YzFkY2VjYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0
ZS0wMDktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi0KLVNVQ0NF
U1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvd2lsbHZhbGlkYXRlLTAwOS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA5Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MmE3YzUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUtMDA5Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPndpbGxWYWxpZGF0ZSBhbmQgYSByZXNl
dCBjb250cm9sPC90aXRsZT4KLTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ci0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3Nh
Z2UrIjwvbGk+IjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAKLSAgICAgICAgaSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOwotICAgICAgICBsb2coKGkud2lsbFZhbGlkYXRl
KSA/ICJGQUlMVVJFIiA6ICJTVUNDRVNTIik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InRlc3QoKSI+Ci08Zm9ybT48aW5wdXQgbmFtZT0idGVzdCIgdHlwZT0icmVz
ZXQiPjwvZm9ybT4KLTxocj4KLTxvbCBpZD0iY29uc29sZSI+PC9vbD4KLTwvYm9keT4KLTwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3dpbGx2YWxpZGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTE2YThjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvd2lsbHZhbGlkYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQyIEBACitWYXJpb3VzIHRl
c3RzIGZvciAud2lsbFZhbGlkYXRlIHByb3BlcnR5CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitFeGlzdGVuY2Ugb2YgLndpbGxWYWxpZGF0ZQorUEFTUyB0eXBlb2YgY29udHJvbHNb
aV0ud2lsbFZhbGlkYXRlIGlzICJib29sZWFuIgorUEFTUyB0eXBlb2YgY29udHJvbHNbaV0ud2ls
bFZhbGlkYXRlIGlzICJib29sZWFuIgorUEFTUyB0eXBlb2YgY29udHJvbHNbaV0ud2lsbFZhbGlk
YXRlIGlzICJib29sZWFuIgorUEFTUyB0eXBlb2YgY29udHJvbHNbaV0ud2lsbFZhbGlkYXRlIGlz
ICJib29sZWFuIgorUEFTUyB0eXBlb2YgY29udHJvbHNbaV0ud2lsbFZhbGlkYXRlIGlzICJib29s
ZWFuIgorCitGb3JtIGFzc29jaWF0aW9uCitQQVNTIGlucHV0LndpbGxWYWxpZGF0ZSBpcyB0cnVl
CitQQVNTIGlucHV0LndpbGxWYWxpZGF0ZSBpcyB0cnVlCisKK0NvbnRyb2wgbmFtZQorUEFTUyBp
bnB1dC53aWxsVmFsaWRhdGUgaXMgdHJ1ZQorUEFTUyBpbnB1dC53aWxsVmFsaWRhdGUgaXMgdHJ1
ZQorCitEaXNhYmxlZCBjb250cm9sCitQQVNTIGlucHV0LndpbGxWYWxpZGF0ZSBpcyBmYWxzZQor
CitSZWFkLW9ubHkgY29udHJvbAorUEFTUyBpbnB1dC53aWxsVmFsaWRhdGUgaXMgZmFsc2UKKwor
SW5wdXQgdHlwZXMKK1BBU1MgaW5wdXQud2lsbFZhbGlkYXRlIGlzIHRydWUKK1BBU1MgaW5wdXQu
dHlwZSA9ICJidXR0b24iOyBpbnB1dC53aWxsVmFsaWRhdGUgaXMgZmFsc2UKK1BBU1MgaW5wdXQu
dHlwZSA9ICJzdWJtaXQiOyBpbnB1dC53aWxsVmFsaWRhdGUgaXMgdHJ1ZQorUEFTUyBpbnB1dC50
eXBlID0gImhpZGRlbiI7IGlucHV0LndpbGxWYWxpZGF0ZSBpcyBmYWxzZQorUEFTUyBpbnB1dC50
eXBlID0gInJlc2V0IjsgaW5wdXQud2lsbFZhbGlkYXRlIGlzIGZhbHNlCisKK0ZpZWxkc2V0IGVs
ZW1lbnQKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImZpZWxkc2V0IilbMF0u
d2lsbFZhbGlkYXRlIGlzIGZhbHNlCisKK1RleHRhcmVhIGVsZW1lbnQKK1BBU1MgZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInRleHRhcmVhIilbMF0ud2lsbFZhbGlkYXRlIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3dpbGx2YWxpZGF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy93aWxsdmFsaWRhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yNThmYTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy93aWxsdmFsaWRhdGUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy93
aWxsdmFsaWRhdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDljZDM5
YjEuLjdiMzZjZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDQtMDYgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIHdpbGxWYWxpZGF0ZSBkb2Vzbid0IG5lZWQgdG8gY2hlY2sgZXhpc3RlbmNlIG9m
IGEgZm9ybSBlbGVtZW50IGFuZCBhIG5hbWUgYXR0cmlidXRlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ3MzMKKworICAgICAgICBSZW1vdmUgY2hl
Y2tzIGFnYWluc3QgbV9mb3JtIGFuZCBtX2hhc05hbWUgaW4KKyAgICAgICAgSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6d2lsbFZhbGlkYXRlKCksIGFuZCByZW1vdmUgdGhlIGNvZGUgdG8KKyAgICAg
ICAgdHJhY2sgdGhlaXIgdXBkYXRlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL3dpbGx2
YWxpZGF0ZS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6SFRNTEZvcm1Db250
cm9sRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpw
YXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjppbnNlcnRlZEludG9UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OnJlbW92ZWRGcm9tVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9y
bUNvbnRyb2xFbGVtZW50OjpyZWNhbGNXaWxsVmFsaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldE5lZWRzV2lsbFZhbGlkYXRlQ2hlY2spOgorICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6Zm9ybURlc3Ryb3llZCk6CisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OnNldElucHV0VHlwZSk6CisgICAgICAgICAgc2V0TmVlZHNXaWxsVmFsaWRhdGVDaGVjaygpIHNo
b3VsZCBiZSBjYWxsZWQgYmVmb3JlCisgICAgICAgICAgc2V0QXR0cmlidXRlKHZhbHVlQXR0ciwg
Li4uKSBpcyBjYWxsZWQuCisKIDIwMTAtMDQtMDYgIE1hdHRpYXMgTmlzc2xlciAgPG1uaXNzbGVy
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGFlOTkyMWEuLmEwNGU2Mzkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTUyLDEyICs1Miwx
MiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
SFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYsIENvbnN0cnVjdGlvblR5cGUgY29uc3RydWN0
aW9uVHlwZSkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvYywgY29uc3RydWN0aW9uVHlw
ZSkKICAgICAsIG1fZm9ybShmKQotICAgICwgbV9oYXNOYW1lKGZhbHNlKQogICAgICwgbV9kaXNh
YmxlZChmYWxzZSkKICAgICAsIG1fcmVhZE9ubHkoZmFsc2UpCiAgICAgLCBtX3JlcXVpcmVkKGZh
bHNlKQogICAgICwgbV92YWx1ZU1hdGNoZXNSZW5kZXJlcihmYWxzZSkKLSAgICAsIG1fd2lsbFZh
bGlkYXRlKGZhbHNlKQorICAgICwgbV93aWxsVmFsaWRhdGVJbml0aWFsaXplZChmYWxzZSkKKyAg
ICAsIG1fd2lsbFZhbGlkYXRlKHRydWUpCiAgICAgLCBtX2lzVmFsaWQodHJ1ZSkKIHsKICAgICBp
ZiAoIW1fZm9ybSkKQEAgLTkyLDkgKzkyLDcgQEAgVmFsaWRpdHlTdGF0ZSogSFRNTEZvcm1Db250
cm9sRWxlbWVudDo6dmFsaWRpdHkoKQogCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSAqYXR0cikKIHsKLSAgICBpZiAoYXR0
ci0+bmFtZSgpID09IG5hbWVBdHRyKQotICAgICAgICBtX2hhc05hbWUgPSAhYXR0ci0+aXNFbXB0
eSgpOwotICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBkaXNhYmxlZEF0dHIpIHsKKyAgICBp
ZiAoYXR0ci0+bmFtZSgpID09IGRpc2FibGVkQXR0cikgewogICAgICAgICBib29sIG9sZERpc2Fi
bGVkID0gbV9kaXNhYmxlZDsKICAgICAgICAgbV9kaXNhYmxlZCA9ICFhdHRyLT5pc051bGwoKTsK
ICAgICAgICAgaWYgKG9sZERpc2FibGVkICE9IG1fZGlzYWJsZWQpIHsKQEAgLTE1NSwxMCArMTUz
LDkgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjppbnNlcnRlZEludG9UcmVlKGJvb2wg
ZGVlcCkKICAgICAgICAgLy8gc2V0dGluZyBhIGZvcm0sIHdlIHdpbGwgYWxyZWFkeSBoYXZlIGEg
bm9uLW51bGwgdmFsdWUgZm9yIG1fZm9ybSwgCiAgICAgICAgIC8vIGFuZCBzbyB3ZSBkb24ndCBu
ZWVkIHRvIGRvIGFueXRoaW5nLgogICAgICAgICBtX2Zvcm0gPSBmaW5kRm9ybUFuY2VzdG9yKCk7
Ci0gICAgICAgIGlmIChtX2Zvcm0pIHsKKyAgICAgICAgaWYgKG1fZm9ybSkKICAgICAgICAgICAg
IG1fZm9ybS0+cmVnaXN0ZXJGb3JtRWxlbWVudCh0aGlzKTsKLSAgICAgICAgICAgIHNldE5lZWRz
V2lsbFZhbGlkYXRlQ2hlY2soKTsKLSAgICAgICAgfSBlbHNlCisgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIGRvY3VtZW50KCktPmNoZWNrZWRSYWRpb0J1dHRvbnMoKS5hZGRCdXR0b24odGhpcyk7
CiAgICAgfQogCkBAIC0xODUsMTkgKzE4MiwxMSBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OnJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApCiAgICAgaWYgKG1fZm9ybSAmJiAhKHBhcnNl
ciAmJiBwYXJzZXItPmlzSGFuZGxpbmdSZXNpZHVhbFN0eWxlQWNyb3NzQmxvY2tzKCkpICYmIGZp
bmRSb290KHRoaXMpICE9IGZpbmRSb290KG1fZm9ybSkpIHsKICAgICAgICAgbV9mb3JtLT5yZW1v
dmVGb3JtRWxlbWVudCh0aGlzKTsKICAgICAgICAgbV9mb3JtID0gMDsKLSAgICAgICAgc2V0TmVl
ZHNXaWxsVmFsaWRhdGVDaGVjaygpOwogICAgIH0KIAogICAgIEhUTUxFbGVtZW50OjpyZW1vdmVk
RnJvbVRyZWUoZGVlcCk7CiB9CiAKLXZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Zm9ybURl
c3Ryb3llZCgpCi17Ci0gICAgaWYgKG1fZm9ybSkKLSAgICAgICAgc2V0TmVlZHNXaWxsVmFsaWRh
dGVDaGVjaygpOwotICAgIG1fZm9ybSA9IDA7Ci19Ci0KIGNvbnN0IEF0b21pY1N0cmluZyYgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6Zm9ybUNvbnRyb2xOYW1lKCkgY29uc3QKIHsKICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIG4gPSBnZXRBdHRyaWJ1dGUobmFtZUF0dHIpOwpAQCAtMzA0LDIzICsy
OTMsMjkgQEAgc2hvcnQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6dGFiSW5kZXgoKSBjb25zdAog
Ym9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZWNhbGNXaWxsVmFsaWRhdGUoKSBjb25zdAog
ewogICAgIC8vIEZJWE1FOiBDaGVjayBpZiB0aGUgY29udHJvbCBkb2VzIG5vdCBoYXZlIGEgZGF0
YWxpc3QgZWxlbWVudCBhcyBhbiBhbmNlc3Rvci4KLSAgICByZXR1cm4gbV9mb3JtICYmIG1faGFz
TmFtZSAmJiAhbV9kaXNhYmxlZCAmJiAhbV9yZWFkT25seTsKKyAgICByZXR1cm4gIW1fZGlzYWJs
ZWQgJiYgIW1fcmVhZE9ubHk7CiB9CiAKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2ls
bFZhbGlkYXRlKCkgY29uc3QKIHsKLSAgICAvLyBJZiB0aGUgZm9sbG93aW5nIGFzc2VydGlvbiBm
YWlscywgc2V0TmVlZHNXaWxsVmFsaWRhdGVDaGVjaygpIGlzIG5vdAotICAgIC8vIGNhbGxlZCBj
b3JyZWN0bHkgd2hlbiBzb21ldGhpbmcgd2hpY2ggY2hhbmdlcyByZWNhbGNXaWxsVmFsaWRhdGUo
KSByZXN1bHQKLSAgICAvLyBpcyB1cGRhdGVkLgotICAgIEFTU0VSVChtX3dpbGxWYWxpZGF0ZSA9
PSByZWNhbGNXaWxsVmFsaWRhdGUoKSk7CisgICAgaWYgKCFtX3dpbGxWYWxpZGF0ZUluaXRpYWxp
emVkKSB7CisgICAgICAgIG1fd2lsbFZhbGlkYXRlSW5pdGlhbGl6ZWQgPSB0cnVlOworICAgICAg
ICBtX3dpbGxWYWxpZGF0ZSA9IHJlY2FsY1dpbGxWYWxpZGF0ZSgpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIElmIHRoZSBmb2xsb3dpbmcgYXNzZXJ0aW9uIGZhaWxzLCBzZXROZWVkc1dpbGxW
YWxpZGF0ZUNoZWNrKCkgaXMgbm90CisgICAgICAgIC8vIGNhbGxlZCBjb3JyZWN0bHkgd2hlbiBz
b21ldGhpbmcgd2hpY2ggY2hhbmdlcyByZWNhbGNXaWxsVmFsaWRhdGUoKSByZXN1bHQKKyAgICAg
ICAgLy8gaXMgdXBkYXRlZC4KKyAgICAgICAgQVNTRVJUKG1fd2lsbFZhbGlkYXRlID09IHJlY2Fs
Y1dpbGxWYWxpZGF0ZSgpKTsKKyAgICB9CiAgICAgcmV0dXJuIG1fd2lsbFZhbGlkYXRlOwogfQog
CiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldE5lZWRzV2lsbFZhbGlkYXRlQ2hlY2so
KQogewogICAgIGJvb2wgbmV3V2lsbFZhbGlkYXRlID0gcmVjYWxjV2lsbFZhbGlkYXRlKCk7Ci0g
ICAgaWYgKG1fd2lsbFZhbGlkYXRlID09IG5ld1dpbGxWYWxpZGF0ZSkKKyAgICBpZiAobV93aWxs
VmFsaWRhdGVJbml0aWFsaXplZCAmJiBtX3dpbGxWYWxpZGF0ZSA9PSBuZXdXaWxsVmFsaWRhdGUp
CiAgICAgICAgIHJldHVybjsKKyAgICBtX3dpbGxWYWxpZGF0ZUluaXRpYWxpemVkID0gdHJ1ZTsK
ICAgICBtX3dpbGxWYWxpZGF0ZSA9IG5ld1dpbGxWYWxpZGF0ZTsKICAgICBzZXROZWVkc1N0eWxl
UmVjYWxjKCk7CiAgICAgLy8gRklYTUU6IFNob3cvaGlkZSBhIHZhbGlkYXRpb24gbWVzc2FnZS4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDU4YjJmYTEuLmQxZWUwMTIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMTA2LDcgKzEwNiw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIAotICAgIGJv
b2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgp
IGNvbnN0OwogICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgIGJvb2wgY2hlY2tW
YWxpZGl0eSgpOwogICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgd2hlbiBhIHZhbGlkYXRpb24g
Y29uc3RyYWludCBvciBjb250cm9sIHZhbHVlIGlzIGNoYW5nZWQuCkBAIC0xMTYsNyArMTE2LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBwYXR0ZXJuTWlzbWF0Y2goKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCB0b29Mb25nKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAotICAgIHZvaWQgZm9ybURlc3Ryb3llZCgpOworICAgIHZvaWQgZm9ybURlc3Ry
b3llZCgpIHsgbV9mb3JtID0gMDsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNF
dmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOwpAQCAtMTM0LDEy
ICsxMzQsMTUgQEAgcHJpdmF0ZToKIAogICAgIEhUTUxGb3JtRWxlbWVudCogbV9mb3JtOwogICAg
IE93blB0cjxWYWxpZGl0eVN0YXRlPiBtX3ZhbGlkaXR5U3RhdGU7Ci0gICAgYm9vbCBtX2hhc05h
bWUgOiAxOwogICAgIGJvb2wgbV9kaXNhYmxlZCA6IDE7CiAgICAgYm9vbCBtX3JlYWRPbmx5IDog
MTsKICAgICBib29sIG1fcmVxdWlyZWQgOiAxOwogICAgIGJvb2wgbV92YWx1ZU1hdGNoZXNSZW5k
ZXJlciA6IDE7Ci0gICAgYm9vbCBtX3dpbGxWYWxpZGF0ZSA6IDE7CisgICAgLy8gVGhlIGluaXRp
YWwgdmFsdWUgb2YgbV93aWxsVmFsaWRhdGUgZGVwZW5kcyBvbiBhIHN1YmNsYXNzLCBhbmQgd2Ug
Y2FuJ3QKKyAgICAvLyBpbml0aWFsaXplIGl0IHdpdGggYSB2aXJ0dWFsIGZ1bmN0aW9uIGluIHRo
ZSBjb25zdHJ1Y3Rvci4gbV93aWxsVmFsaWRhdGUKKyAgICAvLyBpcyBub3QgZGV0ZXJtaW5pc3Rp
YyBkdXJpbmcgbV93aWxsVmFsaWRhdGVJbml0aWFsaXplZD1mYWxzZS4KKyAgICBtdXRhYmxlIGJv
b2wgbV93aWxsVmFsaWRhdGVJbml0aWFsaXplZDogMTsKKyAgICBtdXRhYmxlIGJvb2wgbV93aWxs
VmFsaWRhdGUgOiAxOwogICAgIC8vIENhY2hlIG9mIHZhbGlkaXR5KCktPnZhbGlkKCkuCiAgICAg
Ly8gImNhbmRpZGF0ZSBmb3IgY29uc3RyYWludCB2YWxpZGF0aW9uIiBkb2Vzbid0IGFmZmVjdCB0
byBtX2lzVmFsaWQuCiAgICAgYm9vbCBtX2lzVmFsaWQgOiAxOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IDUyMTdiYzkuLjgwZTg0ZWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKQEAgLTgxNyw2ICs4MTcsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldElucHV0VHlw
ZShjb25zdCBTdHJpbmcmIHQpCiAgICAgICAgICAgICBib29sIHdhc1Bhc3N3b3JkRmllbGQgPSBp
bnB1dFR5cGUoKSA9PSBQQVNTV09SRDsKICAgICAgICAgICAgIGJvb2wgZGlkUmVzcGVjdEhlaWdo
dEFuZFdpZHRoID0gcmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cnMoKTsKICAgICAgICAgICAgIG1f
dHlwZSA9IG5ld1R5cGU7CisgICAgICAgICAgICBzZXROZWVkc1dpbGxWYWxpZGF0ZUNoZWNrKCk7
CiAgICAgICAgICAgICBib29sIHdpbGxTdG9yZVZhbHVlID0gc3RvcmVzVmFsdWVTZXBhcmF0ZUZy
b21BdHRyaWJ1dGUoKTsKICAgICAgICAgICAgIGJvb2wgaXNQYXNzd29yZEZpZWxkID0gaW5wdXRU
eXBlKCkgPT0gUEFTU1dPUkQ7CiAgICAgICAgICAgICBib29sIHdpbGxSZXNwZWN0SGVpZ2h0QW5k
V2lkdGggPSByZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRycygpOwpAQCAtODU1LDcgKzg1Niw2IEBA
IHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0SW5wdXRUeXBlKGNvbnN0IFN0cmluZyYgdCkKICAg
ICAgICAgICAgIGNoZWNrZWRSYWRpb0J1dHRvbnModGhpcykuYWRkQnV0dG9uKHRoaXMpOwogICAg
ICAgICB9CiAKLSAgICAgICAgc2V0TmVlZHNXaWxsVmFsaWRhdGVDaGVjaygpOwogICAgICAgICBz
ZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAgICAgICAgSW5wdXRFbGVtZW50Ojpub3RpZnlGb3Jt
U3RhdGVDaGFuZ2VkKHRoaXMpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>