<?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>27455</bug_id>
          
          <creation_ts>2009-07-20 12:08:11 -0700</creation_ts>
          <short_desc>Support custom validity error message</short_desc>
          <delta_ts>2009-08-06 16:45:48 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>19264</blocked>
    
    <blocked>27959</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Kasting">pkasting</reporter>
          <assigned_to name="Michelangelo De Simone">michelangelo</assigned_to>
          <cc>abarth</cc>
    
    <cc>mike</cc>
    
    <cc>pkasting</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>133190</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-07-20 12:08:11 -0700</bug_when>
    <thetext>See spec sections 4.10.15.1, 4.10.15.3.

This covers adding the notion of a custom validity error message (string) to input elements, supporting the setCustomValidity() method to set it, and hooking it to the customError() method of the validityState object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136813</commentid>
    <comment_count>1</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-03 15:51:50 -0700</bug_when>
    <thetext>I believe this bug includes the support for the validationMessage attribute as well. If it does I need to know exactly the design you intend to adopt for the &quot;localized validation messages&quot;.

4.10.15.3
&quot;The validationMessage attribute must return the empty string if the element is not a candidate for constraint validation or if it is one but it satisfies its constraints; otherwise, it must return a suitably localized message that the user agent would show the user if this were the only form with a validity constraint problem. If the element is suffering from a custom error, then the custom validity error message should be present in the return value.&quot;

I don&apos;t know if having such localizable/localized strings hardcoded directly into WebCore is a good thing, anyway we could use a neutral notation for {typeMismatch, tooLong, ...} \ {customError} validation messages: enumerate them inside a ENUM and then let upper layers deal with the user presentation in his/her natural language.

On the other hand, If &quot;validationMessage&quot; is not supposed to be part of this bug (I doubt it): setCustomValidity and customError are ready, along with a simple tc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136818</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-08-03 15:55:52 -0700</bug_when>
    <thetext>Let&apos;s keep this about setCustomValidity() and customError().  Can you file a separate bug about validationMessage?  The right implementation for that will probably be to get an appropriate string from the embedder, so we&apos;ll have to plumb something.  I don&apos;t know if there is already a pathway for this kind of thing.  Maybe for context menu strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136825</commentid>
    <comment_count>3</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-03 16:03:31 -0700</bug_when>
    <thetext>(In reply to comment #2)

&gt; Let&apos;s keep this about setCustomValidity() and customError().  Can you file a
&gt; separate bug about validationMessage?  The right implementation for that will

Done; a tiny patch for this bug is on its way, matter of minutes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136852</commentid>
    <comment_count>4</comment_count>
      <attachid>34025</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-03 17:04:08 -0700</bug_when>
    <thetext>Created attachment 34025
Proposed patch (no -expected files attached, no review asked, yet)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137226</commentid>
    <comment_count>5</comment_count>
      <attachid>34111</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-04 18:40:26 -0700</bug_when>
    <thetext>Created attachment 34111
Proposed patch, complete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137316</commentid>
    <comment_count>6</comment_count>
      <attachid>34111</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-05 09:19:55 -0700</bug_when>
    <thetext>Comment on attachment 34111
Proposed patch, complete.

&gt; +            v[i].setCustomValidity(&quot;&quot;);

I&apos;d like to see a test that calls setCustomValidity with too few arguments, too many arguments, and an argument of &quot;null&quot; and and argument of &quot;undefined&quot;.

&gt;      RefPtr&lt;ValidityState&gt; m_validityState;
&gt; +    String m_customError;

Can we put m_customError inside ValidityState instead of putting it directly in the form element? I don&apos;t want to make form elements on pages that aren&apos;t using validation larger, and it seems logical to group this with the rest of the validity system. It would get rid of the need for ValidityState::customError to call back to the control as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137441</commentid>
    <comment_count>7</comment_count>
      <attachid>34177</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-05 14:30:36 -0700</bug_when>
    <thetext>Created attachment 34177
Proposed patch, rev. 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137480</commentid>
    <comment_count>8</comment_count>
      <attachid>34177</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-05 16:32:10 -0700</bug_when>
    <thetext>Comment on attachment 34177
Proposed patch, rev. 2

&gt;  #include &quot;HTMLElement.h&quot;
&gt; +//#include &quot;ValidityState.h&quot;

I think you forgot to remove this.

&gt;  ValidityState::ValidityState(HTMLFormControlElement* parent)
&gt;      : m_control(parent)
&gt; +    , m_customError(&quot;&quot;)
&gt;  {
&gt;      ASSERT(parent);
&gt;  }
&gt;  
&gt; +void ValidityState::setCustomValidity(const String&amp; error)
&gt; +{
&gt; +    if (error.isNull()) {
&gt; +        m_customError = &quot;&quot;;
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    m_customError = error;
&gt; +}

Why is it important to store an empty string instead of a null string? It would be nice to just let m_customError get initialized to null and not special case null in setCustomValidity. Does it cause some sort of problem?

&gt; +        void setCustomValidity(const String&amp;);

&gt; -        bool customError() { return false; }
&gt; +        bool customError() { return !m_customError.isEmpty(); }

&gt; +        String m_customError;

I assume that customError and setCustomValidity are both names from the HTML 5 specification, so I won&apos;t complain to you about them too much, since I guess it&apos;s OK to have the ValidityState function names match the DOM function names.

But I must say both names are confusing. Set the custom validity? No, set a custom validity error message. So it should be setCustomErrorMessage on ValidityState. &quot;Custom error&quot;? No, &quot;has custom error message&quot;, so the name should be hasCustomErrorMessage, not customError.

Since m_customError is our own name, it can be as clear as we like. I suggest m_customErrorMessage.

I&apos;m going to say review-, just so you can fix these minor issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137490</commentid>
    <comment_count>9</comment_count>
      <attachid>34194</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-05 17:14:48 -0700</bug_when>
    <thetext>Created attachment 34194
Proposed patch, rev. 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137491</commentid>
    <comment_count>10</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-05 17:17:52 -0700</bug_when>
    <thetext>I forgot to comply with Darin&apos;s comment on ValidityState::setCustomValidity-&gt;ValidityState::setCustomErrorMessage.

A couple of minutes and it&apos;ll be updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137492</commentid>
    <comment_count>11</comment_count>
      <attachid>34195</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-05 17:21:42 -0700</bug_when>
    <thetext>Created attachment 34195
Proposed patch, rev. 3a

Here we are.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137498</commentid>
    <comment_count>12</comment_count>
      <attachid>34195</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-05 18:09:53 -0700</bug_when>
    <thetext>Comment on attachment 34195
Proposed patch, rev. 3a

&gt;  ValidityState::ValidityState(HTMLFormControlElement* parent)
&gt;      : m_control(parent)
&gt; +    , m_customErrorMessage()
&gt;  {
&gt;      ASSERT(parent);
&gt;  }

No change needed here. This will happen without you explicitly listing the name of the data member since it&apos;s not a plain type like int, so you should leave this out.

&gt; +        void setCustomErrorMessage(const String&amp; e) { m_customErrorMessage = e; }

We normally use short words rather than single letters for this sort of thing. It should be &quot;message&quot; instead of &quot;e&quot;.

&gt; -        bool customError() { return false; }
&gt; +        bool customError() { return !m_customErrorMessage.isEmpty() &amp;&amp; !m_customErrorMessage.isNull(); }

Since all null messages are empty there is no need for the separate isNull check here.

This is looking good, but please fix these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137499</commentid>
    <comment_count>13</comment_count>
      <attachid>34196</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-05 18:30:52 -0700</bug_when>
    <thetext>Created attachment 34196
Proposed patch, 3b</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137528</commentid>
    <comment_count>14</comment_count>
      <attachid>34196</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-05 23:23:55 -0700</bug_when>
    <thetext>Comment on attachment 34196
Proposed patch, 3b

The commit-queue claims this patch fails the following test:

fast/dom/domListEnumeration.html -&gt; failed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137612</commentid>
    <comment_count>15</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-08-06 11:57:25 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 34196 [details])
&gt; The commit-queue claims this patch fails the following test:
&gt; 
&gt; fast/dom/domListEnumeration.html -&gt; failed

I bet that&apos;s a real failure, and the expected results of this test have to be updated to add one to some number(s).

Michelangelo, you&apos;ve done this to this test before, so you should have no problem updating and testing this locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137614</commentid>
    <comment_count>16</comment_count>
      <attachid>34217</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-06 12:09:21 -0700</bug_when>
    <thetext>Created attachment 34217
Proposed patch, rev. 3c</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137636</commentid>
    <comment_count>17</comment_count>
      <attachid>34217</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-06 13:35:19 -0700</bug_when>
    <thetext>Comment on attachment 34217
Proposed patch, rev. 3c

micdesim, are you a commiter?  I don&apos;t see you listed at https://trac.webkit.org/wiki/WebKit%20Team</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137687</commentid>
    <comment_count>18</comment_count>
      <attachid>34217</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-06 16:45:44 -0700</bug_when>
    <thetext>Comment on attachment 34217
Proposed patch, rev. 3c

Clearing review flag on attachment: 34217

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	M	LayoutTests/fast/dom/domListEnumeration-expected.txt
	M	LayoutTests/fast/dom/resources/domListEnumeration.js
	A	LayoutTests/fast/forms/ValidityState-customError-001-expected.txt
	A	LayoutTests/fast/forms/ValidityState-customError-001.html
	A	LayoutTests/fast/forms/ValidityState-customError-002-expected.txt
	A	LayoutTests/fast/forms/ValidityState-customError-002.html
	A	LayoutTests/fast/forms/ValidityState-customError-003-expected.txt
	A	LayoutTests/fast/forms/ValidityState-customError-003.html
	A	LayoutTests/fast/forms/ValidityState-customError-004-expected.txt
	A	LayoutTests/fast/forms/ValidityState-customError-004.html
	M	WebCore/ChangeLog
	M	WebCore/html/HTMLButtonElement.idl
	M	WebCore/html/HTMLFieldSetElement.idl
	M	WebCore/html/HTMLFormControlElement.cpp
	M	WebCore/html/HTMLFormControlElement.h
	M	WebCore/html/HTMLInputElement.idl
	M	WebCore/html/HTMLSelectElement.idl
	M	WebCore/html/HTMLTextAreaElement.idl
	M	WebCore/html/ValidityState.h
Committed r46869
	M	WebCore/ChangeLog
	M	WebCore/html/HTMLInputElement.idl
	M	WebCore/html/HTMLFieldSetElement.idl
	M	WebCore/html/HTMLFormControlElement.h
	M	WebCore/html/HTMLFormControlElement.cpp
	M	WebCore/html/ValidityState.h
	M	WebCore/html/HTMLSelectElement.idl
	M	WebCore/html/HTMLButtonElement.idl
	M	WebCore/html/HTMLTextAreaElement.idl
	M	LayoutTests/ChangeLog
	M	LayoutTests/fast/dom/resources/domListEnumeration.js
	M	LayoutTests/fast/dom/domListEnumeration-expected.txt
	A	LayoutTests/fast/forms/ValidityState-customError-001.html
	A	LayoutTests/fast/forms/ValidityState-customError-003-expected.txt
	A	LayoutTests/fast/forms/ValidityState-customError-002.html
	A	LayoutTests/fast/forms/ValidityState-customError-001-expected.txt
	A	LayoutTests/fast/forms/ValidityState-customError-003.html
	A	LayoutTests/fast/forms/ValidityState-customError-004-expected.txt
	A	LayoutTests/fast/forms/ValidityState-customError-004.html
	A	LayoutTests/fast/forms/ValidityState-customError-002-expected.txt
r46869 = bfb58fa6d333ec22cad161a29606909f77d8ec71 (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/46869</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137688</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-06 16:45:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34025</attachid>
            <date>2009-08-03 17:04:08 -0700</date>
            <delta_ts>2009-08-04 18:40:26 -0700</delta_ts>
            <desc>Proposed patch (no -expected files attached, no review asked, yet)</desc>
            <filename>27455-pre.patch</filename>
            <type>text/plain</type>
            <size>7185</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTcx
MDA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+c2V0Q3VzdG9tVmFsaWRpdHkgYW5kIGN1c3RvbUVycm9yPC90aXRsZT4KKzxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAg
IGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1
c3RvbVZhbGlkaXR5KCJDdXN0b20gdmFsaWRhdGlvbiBtZXNzYWdlIik7CisgICAgICAgICAgICBs
b2codltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Cisg
ICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZp
Y3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFy
ZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxo
cj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2QyNjI0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMi5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+c2V0
Q3VzdG9tVmFsaWRpdHkgYW5kIGN1c3RvbUVycm9yIDI8L3RpdGxlPgorPHNjcmlwdCBsYW5ndWFn
ZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBmdW5jdGlvbiBsb2co
bWVzc2FnZSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlu
bmVySFRNTCArPSAiPGxpPiIrbWVzc2FnZSsiPC9saT4iOworICAgIH0KKworICAgIGZ1bmN0aW9u
IHRlc3QoKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJ2aWN0aW0iKTsKKyAgICAgICAgZm9yIChpID0g
MDsgaSA8IHYubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5
KCJDdXN0b20gdmFsaWRhdGlvbiBtZXNzYWdlIik7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8
IHYubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZbaV0uc2V0Q3VzdG9tVmFsaWRpdHkoIiIp
OworICAgICAgICAgICAgbG9nKCF2W2ldLnZhbGlkaXR5LmN1c3RvbUVycm9yID8gIlNVQ0NFU1Mi
IDogIkZBSUxVUkUiKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGZpZWxkc2V0IG5hbWU9InZpY3RpbSI+PC9maWVsZHNldD4K
KzxidXR0b24gbmFtZT0idmljdGltIj48L2J1dHRvbj4KKzxzZWxlY3QgbmFtZT0idmljdGltIj48
L3NlbGVjdD4KKzx0ZXh0YXJlYSBuYW1lPSJ2aWN0aW0iPjwvdGV4dGFyZWE+Cis8aW5wdXQgbmFt
ZT0idmljdGltIiAvPgorPGhyPgorPG9sIGlkPSJjb25zb2xlIj48L29sPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1
c3RvbUVycm9yLTAwMy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LWN1c3RvbUVycm9yLTAwMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmQxNjJiOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlk
aXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8
aGVhZD4KKzx0aXRsZT5zZXRDdXN0b21WYWxpZGl0eSBhbmQgY3VzdG9tRXJyb3IgMjwvdGl0bGU+
Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgor
ICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAg
fQorCisgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKworICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOwor
ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdi5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIGxvZygh
dltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7CisgICAg
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8ZmllbGRzZXQg
bmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGJ1dHRvbiBuYW1lPSJ2aWN0aW0iPjwvYnV0dG9u
PgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0PgorPHRleHRhcmVhIG5hbWU9InZpY3Rp
bSI+PC90ZXh0YXJlYT4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIC8+Cis8aHI+Cis8b2wgaWQ9ImNv
bnNvbGUiPjwvb2w+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTEJ1dHRvbkVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50Lmlk
bAppbmRleCAzMGFkNmYyLi45YmI3YzdlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwK
QEAgLTM2LDYgKzM2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgIERPTVN0cmluZyAgICAgICAgICAgIHR5cGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICB3aWxsVmFs
aWRhdGU7CisgICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gRE9NU3RyaW5nIGVycm9y
KTsKICAgICAgICAgdm9pZCBjbGljaygpOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmlkbAppbmRleCAzNzFmM2ZkLi4wMzcyZTNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaWRsCkBAIC0yOSw2ICsyOSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRpZgogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAg
ICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9
OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
IGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCBkM2RkNjBmLi5m
M2IwYjM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTEwNCw4ICsx
MDQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldEN1c3Rv
bVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpIHsgbV9jdXN0b21FcnJvciA9IGVycm9yOyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBib29sIGN1c3RvbUVycm9yKCkgY29uc3QgeyByZXR1cm4gIW1fY3VzdG9tRXJy
b3IuaXNFbXB0eSgpOyB9CiAKICAgICB2b2lkIGZvcm1EZXN0cm95ZWQoKSB7IG1fZm9ybSA9IDA7
IH0KIApAQCAtMTIwLDYgKzEyMiw3IEBAIHByaXZhdGU6CiAKICAgICBIVE1MRm9ybUVsZW1lbnQq
IG1fZm9ybTsKICAgICBSZWZQdHI8VmFsaWRpdHlTdGF0ZT4gbV92YWxpZGl0eVN0YXRlOworICAg
IFN0cmluZyBtX2N1c3RvbUVycm9yOwogICAgIGJvb2wgbV9kaXNhYmxlZDsKICAgICBib29sIG1f
cmVhZE9ubHk7CiAgICAgYm9vbCBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVyOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaWRsCmluZGV4IGUxOWIzMGUuLjBlMDg1ZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwKQEAgLTU2LDYgKzU2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdXNlTWFwOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
d2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRp
dHkoaW4gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNlbGVj
dCgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgY2xpY2soKTsKICAgICAgICAgCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAyNmYyNjUzLi4zM2VhM2M5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgbW9kdWxlIGh0bWwgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlkaXR5OwogI2VuZGlm
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRl
OworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gRE9NU3Ry
aW5nIGVycm9yKTsKIAogICAgICAgICAvLyBNb2RpZmllZCBpbiBET00gTGV2ZWwgMjoKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25zQ29sbGVjdGlvbiBvcHRpb25zOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCmluZGV4IGJhOGEwNjIuLmYxZTY0MjggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKQEAgLTQ0LDYgKzQ0LDcgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgdm9pZCAgICAgc2V0
Q3VzdG9tVmFsaWRpdHkoaW4gRE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAgIC8vIFdpbklFICYg
RmlyZUZveCBleHRlbnNpb246CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVj
dGlvblN0YXJ0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaCBiL1dl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKaW5kZXggNGIyZjAyMi4uNTIwZTJhNSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAorKysgYi9XZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgYm9vbCByYW5nZVVuZGVyZmxvdygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIGJvb2wg
cmFuZ2VPdmVyZmxvdygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIGJvb2wgc3RlcE1pc21h
dGNoKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9vbCBjdXN0b21FcnJvcigpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgY3VzdG9tRXJyb3IoKSB7IHJldHVybiBjb250cm9s
KCktPmN1c3RvbUVycm9yKCk7IH0KICAgICAgICAgYm9vbCB2YWxpZCgpOwogCiAgICAgcHJpdmF0
ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34111</attachid>
            <date>2009-08-04 18:40:26 -0700</date>
            <delta_ts>2009-08-05 14:30:36 -0700</delta_ts>
            <desc>Proposed patch, complete.</desc>
            <filename>27455-1.patch</filename>
            <type>text/plain</type>
            <size>10833</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMDk1M2UwLi43Zjc3Y2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDgt
MDQgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDU1CisgICAgICAgIFRlc3Qgc3VpdGUgZm9yIGZv
cm0gY29udHJvbHMnIGN1c3RvbSB2YWxpZGF0aW9uIG1lc3NhZ2UuCisKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3It
MDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5odG1sOiBBZGRlZC4K
KwogMjAwOS0wOC0wNCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTk0OThhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisgICAKK1NVQ0NFU1MKK1NV
Q0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDEuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDEuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTcxMDA4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS5odG1s
CkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+c2V0Q3VzdG9tVmFsaWRp
dHkgYW5kIGN1c3RvbUVycm9yPC90aXRsZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQi
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxs
aT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHYgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gdmFs
aWRhdGlvbiBtZXNzYWdlIik7CisgICAgICAgICAgICBsb2codltpXS52YWxpZGl0eS5jdXN0b21F
cnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7CisgICAgICAgIH0KKyAgICB9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0
aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0b24+Cis8c2VsZWN0
IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRh
cmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9v
bD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
VmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE5NDk4YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICAgCitTVUNDRVNTCitTVUNDRVNTCitTVUND
RVNTCitTVUNDRVNTCitTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDdkMjYyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDIuaHRtbApAQCAtMCwwICsx
LDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPnNldEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0
b21FcnJvciAyPC90aXRsZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3Nh
Z2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQor
ICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgiQ3VzdG9tIHZhbGlkYXRpb24gbWVz
c2FnZSIpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCIiKTsKKyAgICAgICAgICAgIGxvZyghdltp
XS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7CisgICAgICAg
IH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxm
aWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+
PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFt
ZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxocj4KKzxv
bCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAw
My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE5NDk4
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0
ZS1jdXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICAgCitTVUND
RVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE2MmI5ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0w
MDMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPnNldEN1c3Rv
bVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRsZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9Ikph
dmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5lckhU
TUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0
KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHYgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoaSA9IDA7IGkg
PCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgbG9nKCF2W2ldLnZhbGlkaXR5LmN1c3RvbUVy
cm9yID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRz
ZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3Rp
bSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0
IG5hbWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZDU0MzZlMS4uNmE5MmM0MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0wOC0wNCAgTWlj
aGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0NTUKKyAgICAgICAgU3VwcG9ydCBmb3IgYSBjdXN0b20gdmFs
aWRhdGlvbiBtZXNzYWdlIGluIFZhbGlkaXR5U3RhdGUgYW5kIHJlbGF0ZWQKKyAgICAgICAgZm9y
bSBjb250cm9scy4KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBz
L2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvZm9ybXMuaHRtbCNkb20tY3ZhLXNldGN1c3RvbXZhbGlk
aXR5CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJv
ci0wMDEuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwMi5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDAzLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
aWRsOiBzZXRDdXN0b21WYWxpZGl0eSBtZXRob2QKKyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6c2V0Q3VzdG9t
VmFsaWRpdHkpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6dmFsdWVNaXNzaW5nKTogdmFsaWRhdGlvbiBmbGFnCisgICAgICAgIChXZWJDb3JlOjpIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpjdXN0b21FcnJvcik6IGluc3RhbmNlIHZhcmlhYmxlCisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDogZGl0dG8KKyAgICAgICAgKiBodG1sL0hU
TUxTZWxlY3RFbGVtZW50LmlkbDogZGl0dG8KKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6Y3VzdG9tRXJyb3IpOiB2YWxpZGF0aW9uIGZsYWcK
KwogMjAwOS0wOC0wNCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAg
ICAgICAgIEJ1ZyAyNzk5NCAtIFdBSS1BUklBOiBhcmlhLXZhbHVldGV4dCBuZWVkcyB0byBiZSBp
bXBsZW1lbnRlZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50Lmlk
bCBiL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKaW5kZXggMzBhZDZmMi4uOWJi
N2M3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCkBAIC0zNiw2ICszNiw3IEBAIG1v
ZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAg
ICAgICB0eXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICB2b2lk
IHNldEN1c3RvbVZhbGlkaXR5KGluIERPTVN0cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgY2xp
Y2soKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxl
bWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKaW5kZXggMzcx
ZjNmZC4uMDM3MmUzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbApAQCAtMjks
NiArMjksNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxp
ZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHZvaWQgICAgIHNldEN1c3Rv
bVZhbGlkaXR5KGluIERPTVN0cmluZyBlcnJvcik7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggZDNkZDYwZi4uYzgyMWFkNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC03Nyw4ICs3Nyw2IEBAIHB1YmxpYzoKICAgICBi
b29sIHJlcXVpcmVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZXF1aXJlZChib29sKTsKIAotICAg
IHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotCiAg
ICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKTsKIAogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbE5hbWUoKSBjb25zdDsKQEAgLTEwNCw4ICsx
MDIsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdDsKKyAgICB2b2lkIHNldEN1c3Rv
bVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpIHsgbV9jdXN0b21FcnJvciA9IGVycm9yOyB9
CiAKKyAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBib29sIGN1c3RvbUVycm9yKCkgY29uc3QgeyByZXR1cm4gIW1fY3VzdG9tRXJy
b3IuaXNFbXB0eSgpOyB9CiAKICAgICB2b2lkIGZvcm1EZXN0cm95ZWQoKSB7IG1fZm9ybSA9IDA7
IH0KIApAQCAtMTIwLDYgKzEyMSw3IEBAIHByaXZhdGU6CiAKICAgICBIVE1MRm9ybUVsZW1lbnQq
IG1fZm9ybTsKICAgICBSZWZQdHI8VmFsaWRpdHlTdGF0ZT4gbV92YWxpZGl0eVN0YXRlOworICAg
IFN0cmluZyBtX2N1c3RvbUVycm9yOwogICAgIGJvb2wgbV9kaXNhYmxlZDsKICAgICBib29sIG1f
cmVhZE9ubHk7CiAgICAgYm9vbCBtX3ZhbHVlTWF0Y2hlc1JlbmRlcmVyOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaWRsCmluZGV4IGUxOWIzMGUuLjBlMDg1ZmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwKQEAgLTU2LDYgKzU2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdXNlTWFwOwog
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
d2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRp
dHkoaW4gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNlbGVj
dCgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgY2xpY2soKTsKICAgICAgICAgCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAyNmYyNjUzLi4zM2VhM2M5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgbW9kdWxlIGh0bWwgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlkaXR5OwogI2VuZGlm
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRl
OworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gRE9NU3Ry
aW5nIGVycm9yKTsKIAogICAgICAgICAvLyBNb2RpZmllZCBpbiBET00gTGV2ZWwgMjoKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25zQ29sbGVjdGlvbiBvcHRpb25zOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCmluZGV4IGJhOGEwNjIuLmYxZTY0MjggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKQEAgLTQ0LDYgKzQ0LDcgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgdm9pZCAgICAgc2V0
Q3VzdG9tVmFsaWRpdHkoaW4gRE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAgIC8vIFdpbklFICYg
RmlyZUZveCBleHRlbnNpb246CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVj
dGlvblN0YXJ0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaCBiL1dl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKaW5kZXggNGIyZjAyMi4uNTIwZTJhNSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAorKysgYi9XZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgYm9vbCByYW5nZVVuZGVyZmxvdygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIGJvb2wg
cmFuZ2VPdmVyZmxvdygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIGJvb2wgc3RlcE1pc21h
dGNoKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9vbCBjdXN0b21FcnJvcigpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgY3VzdG9tRXJyb3IoKSB7IHJldHVybiBjb250cm9s
KCktPmN1c3RvbUVycm9yKCk7IH0KICAgICAgICAgYm9vbCB2YWxpZCgpOwogCiAgICAgcHJpdmF0
ZToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34177</attachid>
            <date>2009-08-05 14:30:36 -0700</date>
            <delta_ts>2009-08-05 17:14:48 -0700</delta_ts>
            <desc>Proposed patch, rev. 2</desc>
            <filename>27455-2.patch</filename>
            <type>text/plain</type>
            <size>14945</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMDk1M2UwLi5iNjliMTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDgt
MDUgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDU1CisgICAgICAgIFRlc3Qgc3VpdGUgZm9yIGZv
cm0gY29udHJvbHMnIGN1c3RvbSB2YWxpZGF0aW9uIG1lc3NhZ2UuCisKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3It
MDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDA0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwNC5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0wNCAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kYTk0OThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACisgICAKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTcx
MDA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+c2V0Q3VzdG9tVmFsaWRpdHkgYW5kIGN1c3RvbUVycm9yPC90aXRsZT4KKzxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAg
IGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1
c3RvbVZhbGlkaXR5KCJDdXN0b20gdmFsaWRhdGlvbiBtZXNzYWdlIik7CisgICAgICAgICAgICBs
b2codltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Cisg
ICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZp
Y3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFy
ZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxo
cj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICAg
CitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdkMjYyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPnNl
dEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRsZT4KKzxzY3JpcHQgbGFuZ3Vh
Z2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoaSA9
IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0
eSgiQ3VzdG9tIHZhbGlkYXRpb24gbWVzc2FnZSIpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkg
PCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCIi
KTsKKyAgICAgICAgICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNT
IiA6ICJGQUlMVVJFIik7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+
Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+
PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5h
bWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1j
dXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorICAgCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitT
VUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDE2MmI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPnNldEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRs
ZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCisgICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7
CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgbG9n
KCF2W2ldLnZhbGlkaXR5LmN1c3RvbUVycm9yID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNl
dCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0
b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmlj
dGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0i
Y29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UyYTRiMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKyAgIAorU1VDQ0VTUwor
U1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VD
Q0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VT
UworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYWE4
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDA0Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5zZXRDdXN0b21WYWxpZGl0eSBhbmQgY3VzdG9tRXJyb3IgNDwvdGl0bGU+Cis8c2Ny
aXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1
bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworCisgICAg
ICAgIC8vIEJsYW5rCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7CisgICAg
ICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCk7CisgICAgICAgICAgICBsb2coIXZbaV0u
dmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOworICAgICAgICAg
ICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgib25lIiwgInR3byIsICJ0aHJlZSIpOworICAgICAg
ICAgICAgbG9nKHZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVS
RSIpOworICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eShudWxsKTsKKyAgICAgICAg
ICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJF
Iik7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7
CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KHVuZGVmaW5lZCk7CisgICAgICAg
ICAgICBsb2coIXZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVS
RSIpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3QoKSI+Cis8ZmllbGRzZXQgbmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGJ1dHRvbiBu
YW1lPSJ2aWN0aW0iPjwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0Pgor
PHRleHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0i
IC8+Cis8aHI+Cis8b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ1NDM2
ZTEuLmM3N2NjNDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMDgtMDUgIE1pY2hlbGFuZ2VsbyBEZSBT
aW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NDU1CisgICAgICAgIFN1cHBvcnQgZm9yIGEgY3VzdG9tIHZhbGlkYXRpb24gbWVzc2Fn
ZSBpbiBWYWxpZGl0eVN0YXRlIGFuZCByZWxhdGVkCisgICAgICAgIGZvcm0gY29udHJvbHMuCisg
ICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
bXVsdGlwYWdlL2Zvcm1zLmh0bWwjZG9tLWN2YS1zZXRjdXN0b212YWxpZGl0eQorCisgICAgICAg
IFRlc3Q6IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDEuaHRtbAorICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0bWwK
KyAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0w
MDQuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6IGFkZGVkIHNl
dEN1c3RvbVZhbGlkaXR5IG1ldGhvZAorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlk
aXR5KTogZGl0dG8KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDogZGl0
dG8KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAqIGh0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6c2V0Q3VzdG9tVmFsaWRpdHkpOiBkaXR0bwor
ICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRp
dHlTdGF0ZTo6Y3VzdG9tRXJyb3IpOiB2YWxpZGF0aW9uIGZsYWcKKwogMjAwOS0wOC0wNCAgQ2hy
aXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1ZyAyNzk5NCAt
IFdBSS1BUklBOiBhcmlhLXZhbHVldGV4dCBuZWVkcyB0byBiZSBpbXBsZW1lbnRlZApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5pZGwKaW5kZXggMzBhZDZmMi4uNWZkMDA3NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuaWRsCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB0eXBlOwogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
ICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5
KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3Ip
OwogICAgICAgICB2b2lkIGNsaWNrKCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVs
ZW1lbnQuaWRsCmluZGV4IDM3MWYzZmQuLjRkMTEzMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5pZGwKQEAgLTI5LDYgKzI5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlkaXR5OwogI2VuZGlmCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAg
ICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggZTkwYTZlMC4uMjg0OTVmZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjYyLDYgKzI2MiwxMSBAQCBib29s
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSgpIGNvbnN0CiAgICAgLy8gICAg
ICBUaGUgY29udHJvbCBpcyBub3QgYW4gb3V0cHV0IGVsZW1lbnQuCiAgICAgcmV0dXJuIGZvcm0o
KSAmJiBuYW1lKCkubGVuZ3RoKCkgJiYgIWRpc2FibGVkKCkgJiYgIWlzUmVhZE9ubHlGb3JtQ29u
dHJvbCgpOwogfQorCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlk
aXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpCit7CisgICAgdmFsaWRpdHkoKS0+c2V0Q3VzdG9tVmFs
aWRpdHkoZXJyb3IpOworfQogICAgIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNw
YXRjaEZvY3VzRXZlbnQoKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5k
ZXggZDNkZDYwZi4uMzg4MDc1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CkBAIC0yNSw2ICsyNSw3IEBACiAjZGVmaW5lIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRfaAogCiAj
aW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKy8vI2luY2x1ZGUgIlZhbGlkaXR5U3RhdGUuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Nyw4ICs3OCw2IEBAIHB1YmxpYzoKICAgICBib29s
IHJlcXVpcmVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZXF1aXJlZChib29sKTsKIAotICAgIHZp
cnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotCiAgICAg
dmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKTsKIAogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbE5hbWUoKSBjb25zdDsKQEAgLTEwNCw3ICsxMDMs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0OwogCiAgICAg
dmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0Q3VzdG9tVmFs
aWRpdHkoY29uc3QgU3RyaW5nJik7CiAKKyAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21hdGNo
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgZm9ybURlc3Ryb3llZCgpIHsg
bV9mb3JtID0gMDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGUxOWIzMGUuLmUx
NWM2YjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTU2LDYgKzU2LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgdXNlTWFwOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkICAg
ICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAg
ICBzZWxlY3QoKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIGNsaWNrKCk7CiAgICAgICAg
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCBiL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKaW5kZXggMjZmMjY1My4uMTc3ODk1ZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCkBAIC00NSw2ICs0NSw3IEBAIG1vZHVsZSBodG1s
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsK
ICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxW
YWxpZGF0ZTsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwog
CiAgICAgICAgIC8vIE1vZGlmaWVkIGluIERPTSBMZXZlbCAyOgogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgSFRNTE9wdGlvbnNDb2xsZWN0aW9uIG9wdGlvbnM7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5pZGwKaW5kZXggYmE4YTA2Mi4uNWQyODUzZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmlkbApAQCAtNDQsNiArNDQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAg
IHZvaWQgICAgIHNlbGVjdCgpOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
ICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0
eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9y
KTsKIAogICAgICAgIC8vIFdpbklFICYgRmlyZUZveCBleHRlbnNpb246CiAgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSBsb25nIHNlbGVjdGlvblN0YXJ0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL1ZhbGlkaXR5U3RhdGUuY3BwIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCmlu
ZGV4IDg2MjI3ZDQuLjM3MzAxMjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0
YXRlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKQEAgLTI3LDEwICsy
NywyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5U3Rh
dGUoSFRNTEZvcm1Db250cm9sRWxlbWVudCogcGFyZW50KQogICAgIDogbV9jb250cm9sKHBhcmVu
dCkKKyAgICAsIG1fY3VzdG9tRXJyb3IoIiIpCiB7CiAgICAgQVNTRVJUKHBhcmVudCk7CiB9CiAK
K3ZvaWQgVmFsaWRpdHlTdGF0ZTo6c2V0Q3VzdG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJiBlcnJv
cikKK3sKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9jdXN0b21FcnJvciA9
ICIiOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9jdXN0b21FcnJvciA9IGVycm9y
OworfQorCiBib29sIFZhbGlkaXR5U3RhdGU6OnZhbGlkKCkKIHsKICAgICBib29sIHNvbWVFcnJv
ciA9IHR5cGVNaXNtYXRjaCgpIHx8IHN0ZXBNaXNtYXRjaCgpIHx8IHJhbmdlVW5kZXJmbG93KCkg
fHwgcmFuZ2VPdmVyZmxvdygpIHx8CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlT
dGF0ZS5oIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAppbmRleCA0YjJmMDIyLi41MTc0
YzFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oCisrKyBiL1dlYkNv
cmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKQEAgLTM4LDYgKzM4LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2woKSBjb25zdCB7
IHJldHVybiBtX2NvbnRyb2w7IH0KIAorICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGNv
bnN0IFN0cmluZyYpOworCiAgICAgICAgIGJvb2wgdmFsdWVNaXNzaW5nKCkgeyByZXR1cm4gY29u
dHJvbCgpLT52YWx1ZU1pc3NpbmcoKTsgfQogICAgICAgICBib29sIHR5cGVNaXNtYXRjaCgpIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgeyByZXR1cm4g
Y29udHJvbCgpLT5wYXR0ZXJuTWlzbWF0Y2goKTsgfQpAQCAtNDUsMTIgKzQ3LDEzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCByYW5nZVVuZGVyZmxvdygpIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgICAgIGJvb2wgcmFuZ2VPdmVyZmxvdygpIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgICAgIGJvb2wgc3RlcE1pc21hdGNoKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAgICAgYm9v
bCBjdXN0b21FcnJvcigpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIGJvb2wgY3VzdG9tRXJy
b3IoKSB7IHJldHVybiAhbV9jdXN0b21FcnJvci5pc0VtcHR5KCk7IH0KICAgICAgICAgYm9vbCB2
YWxpZCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgVmFsaWRpdHlTdGF0ZShIVE1MRm9ybUNv
bnRyb2xFbGVtZW50Kik7CiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIG1fY29udHJv
bDsKKyAgICAgICAgU3RyaW5nIG1fY3VzdG9tRXJyb3I7CiAgICAgfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="18333"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34194</attachid>
            <date>2009-08-05 17:14:48 -0700</date>
            <delta_ts>2009-08-05 17:21:42 -0700</delta_ts>
            <desc>Proposed patch, rev. 3</desc>
            <filename>27455-3.patch</filename>
            <type>text/plain</type>
            <size>14583</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMDk1M2UwLi5iNjliMTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDgt
MDUgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDU1CisgICAgICAgIFRlc3Qgc3VpdGUgZm9yIGZv
cm0gY29udHJvbHMnIGN1c3RvbSB2YWxpZGF0aW9uIG1lc3NhZ2UuCisKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3It
MDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDA0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwNC5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0wNCAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kYTk0OThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACisgICAKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTcx
MDA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+c2V0Q3VzdG9tVmFsaWRpdHkgYW5kIGN1c3RvbUVycm9yPC90aXRsZT4KKzxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAg
IGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1
c3RvbVZhbGlkaXR5KCJDdXN0b20gdmFsaWRhdGlvbiBtZXNzYWdlIik7CisgICAgICAgICAgICBs
b2codltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Cisg
ICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZp
Y3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFy
ZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxo
cj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICAg
CitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdkMjYyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPnNl
dEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRsZT4KKzxzY3JpcHQgbGFuZ3Vh
Z2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoaSA9
IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0
eSgiQ3VzdG9tIHZhbGlkYXRpb24gbWVzc2FnZSIpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkg
PCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCIi
KTsKKyAgICAgICAgICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNT
IiA6ICJGQUlMVVJFIik7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+
Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+
PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5h
bWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1j
dXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorICAgCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitT
VUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDE2MmI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPnNldEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRs
ZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCisgICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7
CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgbG9n
KCF2W2ldLnZhbGlkaXR5LmN1c3RvbUVycm9yID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNl
dCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0
b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmlj
dGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0i
Y29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UyYTRiMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKyAgIAorU1VDQ0VTUwor
U1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VD
Q0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VT
UworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYWE4
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDA0Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5zZXRDdXN0b21WYWxpZGl0eSBhbmQgY3VzdG9tRXJyb3IgNDwvdGl0bGU+Cis8c2Ny
aXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1
bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworCisgICAg
ICAgIC8vIEJsYW5rCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7CisgICAg
ICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCk7CisgICAgICAgICAgICBsb2coIXZbaV0u
dmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOworICAgICAgICAg
ICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgib25lIiwgInR3byIsICJ0aHJlZSIpOworICAgICAg
ICAgICAgbG9nKHZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVS
RSIpOworICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eShudWxsKTsKKyAgICAgICAg
ICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJF
Iik7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7
CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KHVuZGVmaW5lZCk7CisgICAgICAg
ICAgICBsb2coIXZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVS
RSIpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3QoKSI+Cis8ZmllbGRzZXQgbmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGJ1dHRvbiBu
YW1lPSJ2aWN0aW0iPjwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0Pgor
PHRleHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0i
IC8+Cis8aHI+Cis8b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ1NDM2
ZTEuLmM3N2NjNDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMDgtMDUgIE1pY2hlbGFuZ2VsbyBEZSBT
aW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NDU1CisgICAgICAgIFN1cHBvcnQgZm9yIGEgY3VzdG9tIHZhbGlkYXRpb24gbWVzc2Fn
ZSBpbiBWYWxpZGl0eVN0YXRlIGFuZCByZWxhdGVkCisgICAgICAgIGZvcm0gY29udHJvbHMuCisg
ICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
bXVsdGlwYWdlL2Zvcm1zLmh0bWwjZG9tLWN2YS1zZXRjdXN0b212YWxpZGl0eQorCisgICAgICAg
IFRlc3Q6IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDEuaHRtbAorICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0bWwK
KyAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0w
MDQuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6IGFkZGVkIHNl
dEN1c3RvbVZhbGlkaXR5IG1ldGhvZAorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlk
aXR5KTogZGl0dG8KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDogZGl0
dG8KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAqIGh0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6c2V0Q3VzdG9tVmFsaWRpdHkpOiBkaXR0bwor
ICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRp
dHlTdGF0ZTo6Y3VzdG9tRXJyb3IpOiB2YWxpZGF0aW9uIGZsYWcKKwogMjAwOS0wOC0wNCAgQ2hy
aXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1ZyAyNzk5NCAt
IFdBSS1BUklBOiBhcmlhLXZhbHVldGV4dCBuZWVkcyB0byBiZSBpbXBsZW1lbnRlZApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9I
VE1MQnV0dG9uRWxlbWVudC5pZGwKaW5kZXggMzBhZDZmMi4uNWZkMDA3NSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuaWRsCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB0eXBlOwogICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
ICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5
KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3Ip
OwogICAgICAgICB2b2lkIGNsaWNrKCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVs
ZW1lbnQuaWRsCmluZGV4IDM3MWYzZmQuLjRkMTEzMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5pZGwKQEAgLTI5LDYgKzI5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlkaXR5OwogI2VuZGlmCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAg
ICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggZTkwYTZlMC4uMjg0OTVmZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMjYyLDYgKzI2MiwxMSBAQCBib29s
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0ZSgpIGNvbnN0CiAgICAgLy8gICAg
ICBUaGUgY29udHJvbCBpcyBub3QgYW4gb3V0cHV0IGVsZW1lbnQuCiAgICAgcmV0dXJuIGZvcm0o
KSAmJiBuYW1lKCkubGVuZ3RoKCkgJiYgIWRpc2FibGVkKCkgJiYgIWlzUmVhZE9ubHlGb3JtQ29u
dHJvbCgpOwogfQorCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlk
aXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpCit7CisgICAgdmFsaWRpdHkoKS0+c2V0Q3VzdG9tVmFs
aWRpdHkoZXJyb3IpOworfQogICAgIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNw
YXRjaEZvY3VzRXZlbnQoKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5k
ZXggZDNkZDYwZi4uYTMwZjQ2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CkBAIC03Nyw4ICs3Nyw2IEBAIHB1YmxpYzoKICAgICBib29sIHJlcXVpcmVkKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRSZXF1aXJlZChib29sKTsKIAotICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3Np
bmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotCiAgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0
eWxlKFN0eWxlQ2hhbmdlKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3Jt
Q29udHJvbE5hbWUoKSBjb25zdDsKQEAgLTEwNCw3ICsxMDIsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHdpbGxWYWxp
ZGF0ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJik7
CiAKKyAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZvaWQgZm9ybURlc3Ryb3llZCgpIHsgbV9mb3JtID0gMDsgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGUxOWIzMGUuLmUxNWM2YjUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKQEAgLTU2LDYgKzU2LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdXNl
TWFwOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9t
VmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmlu
ZyBlcnJvcik7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZWxlY3QoKTsKICAgICAgICAg
dm9pZCAgICAgICAgICAgICAgIGNsaWNrKCk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5pZGwKaW5kZXggMjZmMjY1My4uMTc3ODk1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaWRsCkBAIC00NSw2ICs0NSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRpZgogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgdm9p
ZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogCiAgICAgICAgIC8vIE1vZGlmaWVk
IGluIERPTSBMZXZlbCAyOgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTE9wdGlvbnND
b2xsZWN0aW9uIG9wdGlvbnM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKaW5kZXgg
YmE4YTA2Mi4uNWQyODUzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbApAQCAt
NDQsNiArNDQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgICAgIHNlbGVjdCgpOwog
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRl
OworICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5l
ZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAgIC8vIFdpbklF
ICYgRmlyZUZveCBleHRlbnNpb246CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nIHNl
bGVjdGlvblN0YXJ0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3Bw
IGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCmluZGV4IDg2MjI3ZDQuLmVhNWJiODkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAorKysgYi9XZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBWYWxpZGl0eVN0YXRlOjpWYWxpZGl0eVN0YXRlKEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQqIHBhcmVudCkKICAgICA6IG1fY29udHJvbChwYXJlbnQpCisgICAgLCBtX2N1c3RvbUVycm9y
TWVzc2FnZSgpCiB7CiAgICAgQVNTRVJUKHBhcmVudCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5oIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAppbmRl
eCA0YjJmMDIyLi5lODUwNGU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0
ZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKQEAgLTM4LDYgKzM4LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNv
bnRyb2woKSBjb25zdCB7IHJldHVybiBtX2NvbnRyb2w7IH0KIAorICAgICAgICB2b2lkIHNldEN1
c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZSkgeyBtX2N1c3RvbUVycm9yTWVzc2FnZSA9IGU7
IH0KKwogICAgICAgICBib29sIHZhbHVlTWlzc2luZygpIHsgcmV0dXJuIGNvbnRyb2woKS0+dmFs
dWVNaXNzaW5nKCk7IH0KICAgICAgICAgYm9vbCB0eXBlTWlzbWF0Y2goKSB7IHJldHVybiBmYWxz
ZTsgfQogICAgICAgICBib29sIHBhdHRlcm5NaXNtYXRjaCgpIHsgcmV0dXJuIGNvbnRyb2woKS0+
cGF0dGVybk1pc21hdGNoKCk7IH0KQEAgLTQ1LDEyICs0NywxMyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgcmFuZ2VVbmRlcmZsb3coKSB7IHJldHVybiBmYWxzZTsgfQogICAg
ICAgICBib29sIHJhbmdlT3ZlcmZsb3coKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29s
IHN0ZXBNaXNtYXRjaCgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIGJvb2wgY3VzdG9tRXJy
b3IoKSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICBib29sIGN1c3RvbUVycm9yKCkgeyByZXR1
cm4gIW1fY3VzdG9tRXJyb3JNZXNzYWdlLmlzRW1wdHkoKSAmJiAhbV9jdXN0b21FcnJvck1lc3Nh
Z2UuaXNOdWxsKCk7IH0KICAgICAgICAgYm9vbCB2YWxpZCgpOwogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgVmFsaWRpdHlTdGF0ZShIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kik7CiAgICAgICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqIG1fY29udHJvbDsKKyAgICAgICAgU3RyaW5nIG1fY3VzdG9t
RXJyb3JNZXNzYWdlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34195</attachid>
            <date>2009-08-05 17:21:42 -0700</date>
            <delta_ts>2009-08-05 18:30:52 -0700</delta_ts>
            <desc>Proposed patch, rev. 3a</desc>
            <filename>27455-3a.patch</filename>
            <type>text/plain</type>
            <size>14613</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMDk1M2UwLi5iNjliMTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDgt
MDUgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDU1CisgICAgICAgIFRlc3Qgc3VpdGUgZm9yIGZv
cm0gY29udHJvbHMnIGN1c3RvbSB2YWxpZGF0aW9uIG1lc3NhZ2UuCisKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3It
MDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDA0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwNC5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0wNCAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kYTk0OThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACisgICAKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTcx
MDA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+c2V0Q3VzdG9tVmFsaWRpdHkgYW5kIGN1c3RvbUVycm9yPC90aXRsZT4KKzxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAg
IGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1
c3RvbVZhbGlkaXR5KCJDdXN0b20gdmFsaWRhdGlvbiBtZXNzYWdlIik7CisgICAgICAgICAgICBs
b2codltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Cisg
ICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZp
Y3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFy
ZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxo
cj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICAg
CitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdkMjYyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPnNl
dEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRsZT4KKzxzY3JpcHQgbGFuZ3Vh
Z2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoaSA9
IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0
eSgiQ3VzdG9tIHZhbGlkYXRpb24gbWVzc2FnZSIpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkg
PCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCIi
KTsKKyAgICAgICAgICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNT
IiA6ICJGQUlMVVJFIik7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+
Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+
PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5h
bWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1j
dXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorICAgCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitT
VUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDE2MmI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPnNldEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRs
ZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCisgICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7
CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgbG9n
KCF2W2ldLnZhbGlkaXR5LmN1c3RvbUVycm9yID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNl
dCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0
b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmlj
dGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0i
Y29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UyYTRiMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKyAgIAorU1VDQ0VTUwor
U1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VD
Q0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VT
UworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYWE4
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDA0Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5zZXRDdXN0b21WYWxpZGl0eSBhbmQgY3VzdG9tRXJyb3IgNDwvdGl0bGU+Cis8c2Ny
aXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1
bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworCisgICAg
ICAgIC8vIEJsYW5rCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7CisgICAg
ICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCk7CisgICAgICAgICAgICBsb2coIXZbaV0u
dmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOworICAgICAgICAg
ICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgib25lIiwgInR3byIsICJ0aHJlZSIpOworICAgICAg
ICAgICAgbG9nKHZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVS
RSIpOworICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eShudWxsKTsKKyAgICAgICAg
ICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJF
Iik7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7
CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KHVuZGVmaW5lZCk7CisgICAgICAg
ICAgICBsb2coIXZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVS
RSIpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3QoKSI+Cis8ZmllbGRzZXQgbmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGJ1dHRvbiBu
YW1lPSJ2aWN0aW0iPjwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0Pgor
PHRleHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0i
IC8+Cis8aHI+Cis8b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ1NDM2
ZTEuLmU5NjNmZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMDgtMDUgIE1pY2hlbGFuZ2VsbyBEZSBT
aW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NDU1CisgICAgICAgIFN1cHBvcnQgZm9yIGEgY3VzdG9tIHZhbGlkYXRpb24gbWVzc2Fn
ZSBpbiBWYWxpZGl0eVN0YXRlIGFuZCByZWxhdGVkCisgICAgICAgIGZvcm0gY29udHJvbHMuCisg
ICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
bXVsdGlwYWdlL2Zvcm1zLmh0bWwjZG9tLWN2YS1zZXRjdXN0b212YWxpZGl0eQorCisgICAgICAg
IFRlc3Q6IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDEuaHRtbAorICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0bWwK
KyAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0w
MDQuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6IGFkZGVkIHNl
dEN1c3RvbVZhbGlkaXR5IG1ldGhvZAorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlk
aXR5KTogZGl0dG8KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDogZGl0
dG8KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAqIGh0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6c2V0Q3VzdG9tRXJyb3JNZXNzYWdlKTogc2V0
cyB2YWxpZGF0aW9uIG1lc3NhZ2UKKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OmN1c3RvbUVycm9yKTogdmFsaWRhdGlvbiBm
bGFnCisKIDIwMDktMDgtMDQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
IAogICAgICAgICBCdWcgMjc5OTQgLSBXQUktQVJJQTogYXJpYS12YWx1ZXRleHQgbmVlZHMgdG8g
YmUgaW1wbGVtZW50ZWQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDMwYWQ2ZjIu
LjVmZDAwNzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAtMzYsNiArMzYsNyBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAg
ICAgICAgICAgdHlwZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHZhbHVlOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAg
dm9pZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCBjbGljaygpOwogICAgIH07CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbCBiL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAppbmRleCAzNzFmM2ZkLi40ZDExMzA0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCkBAIC0yOSw2ICsyOSw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxp
ZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0Nv
bnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAg
fTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGU5MGE2
ZTAuLjA5ZDkxZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAg
LTI2Miw2ICsyNjIsMTEgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRh
dGUoKSBjb25zdAogICAgIC8vICAgICAgVGhlIGNvbnRyb2wgaXMgbm90IGFuIG91dHB1dCBlbGVt
ZW50LgogICAgIHJldHVybiBmb3JtKCkgJiYgbmFtZSgpLmxlbmd0aCgpICYmICFkaXNhYmxlZCgp
ICYmICFpc1JlYWRPbmx5Rm9ybUNvbnRyb2woKTsKIH0KKwordm9pZCBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpzZXRDdXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcmIGVycm9yKQoreworICAgIHZh
bGlkaXR5KCktPnNldEN1c3RvbUVycm9yTWVzc2FnZShlcnJvcik7Cit9CiAgICAgCiB2b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCgpCiB7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCBkM2RkNjBmLi5hMzBmNDZjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTc3LDggKzc3LDYgQEAgcHVibGljOgogICAg
IGJvb2wgcmVxdWlyZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFJlcXVpcmVkKGJvb2wpOwogCi0g
ICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UpOwogCiAgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sTmFtZSgpIGNvbnN0OwpAQCAtMTA0LDcg
KzEwMiw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRDdXN0
b21WYWxpZGl0eShjb25zdCBTdHJpbmcmKTsKIAorICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3Np
bmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYXR0ZXJuTWlz
bWF0Y2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBmb3JtRGVzdHJveWVk
KCkgeyBtX2Zvcm0gPSAwOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggZTE5YjMw
ZS4uZTE1YzZiNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNTYsNiArNTYsNyBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHZv
aWQgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9y
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCAgICAgICAg
ICAgICAgIHNlbGVjdCgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgY2xpY2soKTsKICAg
ICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAyNmYyNjUzLi4xNzc4OTVl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlk
aXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
d2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRp
dHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJv
cik7CiAKICAgICAgICAgLy8gTW9kaWZpZWQgaW4gRE9NIExldmVsIDI6CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uc0NvbGxlY3Rpb24gb3B0aW9uczsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmlkbAppbmRleCBiYThhMDYyLi41ZDI4NTNlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC00NCw2ICs0NCw3IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgdm9pZCAgICAgc2VsZWN0KCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHZvaWQgICAgIHNldEN1c3RvbVZh
bGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ZXJyb3IpOwogCiAgICAgICAgLy8gV2luSUUgJiBGaXJlRm94IGV4dGVuc2lvbjoKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2VsZWN0aW9uU3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5j
cHAKaW5kZXggODYyMjdkNC4uZWE1YmI4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlk
aXR5U3RhdGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcApAQCAtMjcs
NiArMjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5
U3RhdGUoSFRNTEZvcm1Db250cm9sRWxlbWVudCogcGFyZW50KQogICAgIDogbV9jb250cm9sKHBh
cmVudCkKKyAgICAsIG1fY3VzdG9tRXJyb3JNZXNzYWdlKCkKIHsKICAgICBBU1NFUlQocGFyZW50
KTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggYi9XZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5oCmluZGV4IDRiMmYwMjIuLjA3ZTY5ZTQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5
U3RhdGUuaApAQCAtMzgsNiArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
SFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJv
bDsgfQogCisgICAgICAgIHZvaWQgc2V0Q3VzdG9tRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYg
ZSkgeyBtX2N1c3RvbUVycm9yTWVzc2FnZSA9IGU7IH0KKwogICAgICAgICBib29sIHZhbHVlTWlz
c2luZygpIHsgcmV0dXJuIGNvbnRyb2woKS0+dmFsdWVNaXNzaW5nKCk7IH0KICAgICAgICAgYm9v
bCB0eXBlTWlzbWF0Y2goKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29sIHBhdHRlcm5N
aXNtYXRjaCgpIHsgcmV0dXJuIGNvbnRyb2woKS0+cGF0dGVybk1pc21hdGNoKCk7IH0KQEAgLTQ1
LDEyICs0NywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcmFuZ2VVbmRl
cmZsb3coKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29sIHJhbmdlT3ZlcmZsb3coKSB7
IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29sIHN0ZXBNaXNtYXRjaCgpIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgICAgIGJvb2wgY3VzdG9tRXJyb3IoKSB7IHJldHVybiBmYWxzZTsgfQorICAg
ICAgICBib29sIGN1c3RvbUVycm9yKCkgeyByZXR1cm4gIW1fY3VzdG9tRXJyb3JNZXNzYWdlLmlz
RW1wdHkoKSAmJiAhbV9jdXN0b21FcnJvck1lc3NhZ2UuaXNOdWxsKCk7IH0KICAgICAgICAgYm9v
bCB2YWxpZCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgVmFsaWRpdHlTdGF0ZShIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Kik7CiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIG1fY29u
dHJvbDsKKyAgICAgICAgU3RyaW5nIG1fY3VzdG9tRXJyb3JNZXNzYWdlOwogICAgIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="18348"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34196</attachid>
            <date>2009-08-05 18:30:52 -0700</date>
            <delta_ts>2009-08-06 12:09:21 -0700</delta_ts>
            <desc>Proposed patch, 3b</desc>
            <filename>27455-3b.patch</filename>
            <type>text/plain</type>
            <size>14226</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMDk1M2UwLi5iNjliMTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMDgt
MDUgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDU1CisgICAgICAgIFRlc3Qgc3VpdGUgZm9yIGZv
cm0gY29udHJvbHMnIGN1c3RvbSB2YWxpZGF0aW9uIG1lc3NhZ2UuCisKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3It
MDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1Zh
bGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDA0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwNC5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0wNCAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kYTk0OThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACisgICAKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTcx
MDA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0
YXRlLWN1c3RvbUVycm9yLTAwMS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8dGl0bGU+c2V0Q3VzdG9tVmFsaWRpdHkgYW5kIGN1c3RvbUVycm9yPC90aXRsZT4KKzxzY3Jp
cHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAg
IGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1
c3RvbVZhbGlkaXR5KCJDdXN0b20gdmFsaWRhdGlvbiBtZXNzYWdlIik7CisgICAgICAgICAgICBs
b2codltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7Cisg
ICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgp
Ij4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZp
Y3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFy
ZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxo
cj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICAg
CitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdkMjYyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPnNl
dEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRsZT4KKzxzY3JpcHQgbGFuZ3Vh
Z2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5p
bm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHYg
PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoaSA9
IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0
eSgiQ3VzdG9tIHZhbGlkYXRpb24gbWVzc2FnZSIpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkg
PCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCIi
KTsKKyAgICAgICAgICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNT
IiA6ICJGQUlMVVJFIik7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+
Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+
PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5h
bWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1j
dXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxp
ZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorICAgCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitT
VUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDE2MmI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4K
KzxoZWFkPgorPHRpdGxlPnNldEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRs
ZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCisgICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7
CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgbG9n
KCF2W2ldLnZhbGlkaXR5LmN1c3RvbUVycm9yID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNl
dCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0
b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmlj
dGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0i
Y29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UyYTRiMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKyAgIAorU1VDQ0VTUwor
U1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VD
Q0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VT
UworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3Rv
bUVycm9yLTAwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYWE4
ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3Rh
dGUtY3VzdG9tRXJyb3ItMDA0Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5zZXRDdXN0b21WYWxpZGl0eSBhbmQgY3VzdG9tRXJyb3IgNDwvdGl0bGU+Cis8c2Ny
aXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1
bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
ICAgICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworCisgICAg
ICAgIC8vIEJsYW5rCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7CisgICAg
ICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCk7CisgICAgICAgICAgICBsb2coIXZbaV0u
dmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOworICAgICAgICAg
ICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgib25lIiwgInR3byIsICJ0aHJlZSIpOworICAgICAg
ICAgICAgbG9nKHZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVS
RSIpOworICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eShudWxsKTsKKyAgICAgICAg
ICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJF
Iik7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7
CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KHVuZGVmaW5lZCk7CisgICAgICAg
ICAgICBsb2coIXZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVS
RSIpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InRlc3QoKSI+Cis8ZmllbGRzZXQgbmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGJ1dHRvbiBu
YW1lPSJ2aWN0aW0iPjwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0Pgor
PHRleHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0i
IC8+Cis8aHI+Cis8b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ1NDM2
ZTEuLmU5NjNmZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMDgtMDUgIE1pY2hlbGFuZ2VsbyBEZSBT
aW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3NDU1CisgICAgICAgIFN1cHBvcnQgZm9yIGEgY3VzdG9tIHZhbGlkYXRpb24gbWVzc2Fn
ZSBpbiBWYWxpZGl0eVN0YXRlIGFuZCByZWxhdGVkCisgICAgICAgIGZvcm0gY29udHJvbHMuCisg
ICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
bXVsdGlwYWdlL2Zvcm1zLmh0bWwjZG9tLWN2YS1zZXRjdXN0b212YWxpZGl0eQorCisgICAgICAg
IFRlc3Q6IGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDEuaHRtbAorICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0bWwK
KyAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5o
dG1sCisgICAgICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0w
MDQuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6IGFkZGVkIHNl
dEN1c3RvbVZhbGlkaXR5IG1ldGhvZAorICAgICAgICAqIGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVu
dC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlk
aXR5KTogZGl0dG8KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDogZGl0
dG8KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAq
IGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiBkaXR0bworICAgICAgICAqIGh0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6c2V0Q3VzdG9tRXJyb3JNZXNzYWdlKTogc2V0
cyB2YWxpZGF0aW9uIG1lc3NhZ2UKKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OmN1c3RvbUVycm9yKTogdmFsaWRhdGlvbiBm
bGFnCisKIDIwMDktMDgtMDQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4K
IAogICAgICAgICBCdWcgMjc5OTQgLSBXQUktQVJJQTogYXJpYS12YWx1ZXRleHQgbmVlZHMgdG8g
YmUgaW1wbGVtZW50ZWQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDMwYWQ2ZjIu
LjVmZDAwNzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAtMzYsNiArMzYsNyBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAg
ICAgICAgICAgdHlwZTsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyAgICAgICAgICAgIHZhbHVlOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAg
dm9pZCBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCBjbGljaygpOwogICAgIH07CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbCBiL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAppbmRleCAzNzFmM2ZkLi40ZDExMzA0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCkBAIC0yOSw2ICsyOSw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxp
ZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0Nv
bnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAg
fTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGU5MGE2
ZTAuLjA5ZDkxZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAg
LTI2Miw2ICsyNjIsMTEgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRh
dGUoKSBjb25zdAogICAgIC8vICAgICAgVGhlIGNvbnRyb2wgaXMgbm90IGFuIG91dHB1dCBlbGVt
ZW50LgogICAgIHJldHVybiBmb3JtKCkgJiYgbmFtZSgpLmxlbmd0aCgpICYmICFkaXNhYmxlZCgp
ICYmICFpc1JlYWRPbmx5Rm9ybUNvbnRyb2woKTsKIH0KKwordm9pZCBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpzZXRDdXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcmIGVycm9yKQoreworICAgIHZh
bGlkaXR5KCktPnNldEN1c3RvbUVycm9yTWVzc2FnZShlcnJvcik7Cit9CiAgICAgCiB2b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCgpCiB7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCBkM2RkNjBmLi5hMzBmNDZjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTc3LDggKzc3LDYgQEAgcHVibGljOgogICAg
IGJvb2wgcmVxdWlyZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFJlcXVpcmVkKGJvb2wpOwogCi0g
ICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UpOwogCiAgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sTmFtZSgpIGNvbnN0OwpAQCAtMTA0LDcg
KzEwMiw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7CisgICAgdm9pZCBzZXRDdXN0
b21WYWxpZGl0eShjb25zdCBTdHJpbmcmKTsKIAorICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3Np
bmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYXR0ZXJuTWlz
bWF0Y2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBmb3JtRGVzdHJveWVk
KCkgeyBtX2Zvcm0gPSAwOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggZTE5YjMw
ZS4uZTE1YzZiNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtNTYsNiArNTYsNyBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHZv
aWQgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9y
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCAgICAgICAg
ICAgICAgIHNlbGVjdCgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgY2xpY2soKTsKICAg
ICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCAyNmYyNjUzLi4xNzc4OTVl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlk
aXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
d2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRp
dHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJv
cik7CiAKICAgICAgICAgLy8gTW9kaWZpZWQgaW4gRE9NIExldmVsIDI6CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uc0NvbGxlY3Rpb24gb3B0aW9uczsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmlkbAppbmRleCBiYThhMDYyLi41ZDI4NTNlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC00NCw2ICs0NCw3IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgdm9pZCAgICAgc2VsZWN0KCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHZvaWQgICAgIHNldEN1c3RvbVZh
bGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
ZXJyb3IpOwogCiAgICAgICAgLy8gV2luSUUgJiBGaXJlRm94IGV4dGVuc2lvbjoKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGxvbmcgc2VsZWN0aW9uU3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaApp
bmRleCA0YjJmMDIyLi43OTQ4MjJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlT
dGF0ZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKQEAgLTM4LDYgKzM4LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQq
IGNvbnRyb2woKSBjb25zdCB7IHJldHVybiBtX2NvbnRyb2w7IH0KIAorICAgICAgICB2b2lkIHNl
dEN1c3RvbUVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgbV9jdXN0b21FcnJv
ck1lc3NhZ2UgPSBtZXNzYWdlOyB9CisKICAgICAgICAgYm9vbCB2YWx1ZU1pc3NpbmcoKSB7IHJl
dHVybiBjb250cm9sKCktPnZhbHVlTWlzc2luZygpOyB9CiAgICAgICAgIGJvb2wgdHlwZU1pc21h
dGNoKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgYm9vbCBwYXR0ZXJuTWlzbWF0Y2goKSB7
IHJldHVybiBjb250cm9sKCktPnBhdHRlcm5NaXNtYXRjaCgpOyB9CkBAIC00NSwxMiArNDcsMTMg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHJhbmdlVW5kZXJmbG93KCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICAgICAgYm9vbCByYW5nZU92ZXJmbG93KCkgeyByZXR1cm4gZmFs
c2U7IH0KICAgICAgICAgYm9vbCBzdGVwTWlzbWF0Y2goKSB7IHJldHVybiBmYWxzZTsgfQotICAg
ICAgICBib29sIGN1c3RvbUVycm9yKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgYm9vbCBj
dXN0b21FcnJvcigpIHsgcmV0dXJuICFtX2N1c3RvbUVycm9yTWVzc2FnZS5pc0VtcHR5KCk7IH0K
ICAgICAgICAgYm9vbCB2YWxpZCgpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgVmFsaWRpdHlT
dGF0ZShIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kik7CiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQqIG1fY29udHJvbDsKKyAgICAgICAgU3RyaW5nIG1fY3VzdG9tRXJyb3JNZXNzYWdlOwog
ICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="18349"
          type_id="1"
          status="-"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="18355"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34217</attachid>
            <date>2009-08-06 12:09:21 -0700</date>
            <delta_ts>2009-08-06 16:45:44 -0700</delta_ts>
            <desc>Proposed patch, rev. 3c</desc>
            <filename>27455-3c.patch</filename>
            <type>text/plain</type>
            <size>15665</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMmE5NzQxLi5jNjNlY2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMDgt
MDYgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NDU1CisgICAgICAgIFRlc3Qgc3VpdGUgZm9yIGZv
cm0gY29udHJvbHMnIGN1c3RvbSB2YWxpZGF0aW9uIG1lc3NhZ2UuCisKKyAgICAgICAgKiBmYXN0
L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0OiBDb3JyZWN0ZWQKKyAgICAgICAg
KiBmYXN0L2RvbS9yZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9uLmpzOiBDb3JyZWN0ZWQKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDAyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJy
b3ItMDA0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9WYWxpZGl0
eVN0YXRlLWN1c3RvbUVycm9yLTAwNC5odG1sOiBBZGRlZC4KKwogMjAwOS0wOC0wNiAgRHJldyBX
aWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlk
IExldmluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlv
bi1leHBlY3RlZC50eHQKaW5kZXggNzNkZWVhNC4uYmI5YWRmYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC00MSw3
ICs0MSw3IEBAIFBBU1MgcmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlb
Ml0uaXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMl0KIAog
W29iamVjdCBIVE1MU2VsZWN0RWxlbWVudF0KLVBBU1MgcmVzdWx0QXJyYXkubGVuZ3RoIGlzIDEz
NworUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTM4CiBQQVNTIHJlc3VsdEFycmF5WzBdLmkg
aXMgJzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0ZW0gaXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ29wdGlvbicpWzBdCiBQQVNTIHJlc3VsdEFycmF5WzFdLmkgaXMgJzEnCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9u
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5q
cwppbmRleCBjMDk4NjhmLi4zM2IyZDNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9yZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9uLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Jlc291cmNlcy9kb21MaXN0RW51bWVyYXRpb24uanMKQEAgLTE0MSw3ICsxNDEsNyBAQCBz
aG91bGRCZSgicmVzdWx0QXJyYXlbMl0uaXRlbSIsICJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnc2VsZWN0JylbMl0iKTsKIC8vIEhUTUxTZWxlY3RFbGVtZW50CiB2YXIgaHRtbFNlbGVj
dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF07CiBy
ZXN1bHRBcnJheSA9IGl0ZXJhdGVMaXN0KGh0bWxTZWxlY3RFbGVtZW50KTsKLXNob3VsZEJlKCJy
ZXN1bHRBcnJheS5sZW5ndGgiLCAiMTM3Iik7CitzaG91bGRCZSgicmVzdWx0QXJyYXkubGVuZ3Ro
IiwgIjEzOCIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7CiBzaG91bGRC
ZSgicmVzdWx0QXJyYXlbMF0uaXRlbSIsICJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
b3B0aW9uJylbMF0iKTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVsxXS5pIiwgIicxJyIpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9y
LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kYTk0OThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
IEBACisgICAKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKK1NVQ0NFU1MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJv
ci0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTcxMDA4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRl
LWN1c3RvbUVycm9yLTAwMS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8
dGl0bGU+c2V0Q3VzdG9tVmFsaWRpdHkgYW5kIGN1c3RvbUVycm9yPC90aXRsZT4KKzxzY3JpcHQg
bGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAg
ICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZv
ciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1c3Rv
bVZhbGlkaXR5KCJDdXN0b20gdmFsaWRhdGlvbiBtZXNzYWdlIik7CisgICAgICAgICAgICBsb2co
dltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7CisgICAg
ICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4K
KzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3Rp
bSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEg
bmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxocj4K
KzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9y
LTAwMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE5
NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlT
dGF0ZS1jdXN0b21FcnJvci0wMDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICAgCitT
VUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdkMjYyNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJv
ci0wMDIuaHRtbApAQCAtMCwwICsxLDMzIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPnNldEN1
c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRsZT4KKzxzY3JpcHQgbGFuZ3VhZ2U9
IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZnVuY3Rpb24gbG9nKG1l
c3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5l
ckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0
ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHYgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7CisgICAgICAgIGZvciAoaSA9IDA7
IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eSgi
Q3VzdG9tIHZhbGlkYXRpb24gbWVzc2FnZSIpOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2
Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCIiKTsK
KyAgICAgICAgICAgIGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6
ICJGQUlMVVJFIik7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNldCBuYW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8
YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0b24+Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9z
ZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGltIj48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9
InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0iY29uc29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0
b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0
eVN0YXRlLWN1c3RvbUVycm9yLTAwMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZGE5NDk4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNiBAQAorICAgCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUNDRVNTCitTVUND
RVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3Vz
dG9tRXJyb3ItMDAzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDAzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZDE2MmI5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRp
dHlTdGF0ZS1jdXN0b21FcnJvci0wMDMuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxo
ZWFkPgorPHRpdGxlPnNldEN1c3RvbVZhbGlkaXR5IGFuZCBjdXN0b21FcnJvciAyPC90aXRsZT4K
KzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cisg
ICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5pbm5lckhUTUwgKz0gIjxsaT4iK21lc3NhZ2UrIjwvbGk+IjsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiB0ZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCisgICAgICAgIHYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSgidmljdGltIik7Cisg
ICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgbG9nKCF2
W2ldLnZhbGlkaXR5LmN1c3RvbUVycm9yID8gIlNVQ0NFU1MiIDogIkZBSUxVUkUiKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmaWVsZHNldCBu
YW1lPSJ2aWN0aW0iPjwvZmllbGRzZXQ+Cis8YnV0dG9uIG5hbWU9InZpY3RpbSI+PC9idXR0b24+
Cis8c2VsZWN0IG5hbWU9InZpY3RpbSI+PC9zZWxlY3Q+Cis8dGV4dGFyZWEgbmFtZT0idmljdGlt
Ij48L3RleHRhcmVhPgorPGlucHV0IG5hbWU9InZpY3RpbSIgLz4KKzxocj4KKzxvbCBpZD0iY29u
c29sZSI+PC9vbD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwNC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UyYTRiMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21F
cnJvci0wMDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKyAgIAorU1VDQ0VTUworU1VD
Q0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VT
UworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUwor
U1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUworU1VDQ0VTUwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9y
LTAwNC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVy
cm9yLTAwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYWE4ZmIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUt
Y3VzdG9tRXJyb3ItMDA0Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0
aXRsZT5zZXRDdXN0b21WYWxpZGl0eSBhbmQgY3VzdG9tRXJyb3IgNDwvdGl0bGU+Cis8c2NyaXB0
IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGZ1bmN0
aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuaW5uZXJIVE1MICs9ICI8bGk+IittZXNzYWdlKyI8L2xpPiI7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAg
ICAgICB2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoInZpY3RpbSIpOworCisgICAgICAg
IC8vIEJsYW5rCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKSB7CisgICAg
ICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7CisgICAgICAg
ICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCk7CisgICAgICAgICAgICBsb2coIXZbaV0udmFs
aWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIpOworICAgICAgICAgICAg
dltpXS5zZXRDdXN0b21WYWxpZGl0eSgib25lIiwgInR3byIsICJ0aHJlZSIpOworICAgICAgICAg
ICAgbG9nKHZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIp
OworICAgICAgICAgICAgdltpXS5zZXRDdXN0b21WYWxpZGl0eShudWxsKTsKKyAgICAgICAgICAg
IGxvZyghdltpXS52YWxpZGl0eS5jdXN0b21FcnJvciA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIik7
CisgICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KCJDdXN0b20gc3RyaW5nIik7Cisg
ICAgICAgICAgICB2W2ldLnNldEN1c3RvbVZhbGlkaXR5KHVuZGVmaW5lZCk7CisgICAgICAgICAg
ICBsb2coIXZbaV0udmFsaWRpdHkuY3VzdG9tRXJyb3IgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSIp
OworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRl
c3QoKSI+Cis8ZmllbGRzZXQgbmFtZT0idmljdGltIj48L2ZpZWxkc2V0PgorPGJ1dHRvbiBuYW1l
PSJ2aWN0aW0iPjwvYnV0dG9uPgorPHNlbGVjdCBuYW1lPSJ2aWN0aW0iPjwvc2VsZWN0PgorPHRl
eHRhcmVhIG5hbWU9InZpY3RpbSI+PC90ZXh0YXJlYT4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIC8+
Cis8aHI+Cis8b2wgaWQ9ImNvbnNvbGUiPjwvb2w+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM5ZWQ3ZDku
LjI2YmEyY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMDktMDgtMDYgIE1pY2hlbGFuZ2VsbyBEZSBTaW1v
bmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI3NDU1CisgICAgICAgIFN1cHBvcnQgZm9yIGEgY3VzdG9tIHZhbGlkYXRpb24gbWVzc2FnZSBp
biBWYWxpZGl0eVN0YXRlIGFuZCByZWxhdGVkCisgICAgICAgIGZvcm0gY29udHJvbHMuCisgICAg
ICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL2Zvcm1zLmh0bWwjZG9tLWN2YS1zZXRjdXN0b212YWxpZGl0eQorCisgICAgICAgIFRl
c3RzOiBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3ItMDAxLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZm9ybXMvVmFsaWRpdHlTdGF0ZS1jdXN0b21FcnJvci0wMDIuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLWN1c3RvbUVycm9yLTAwMy5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtY3VzdG9tRXJyb3It
MDA0Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsOiBzZXRDdXN0
b21WYWxpZGl0eSBET00gbWV0aG9kCisgICAgICAgICogaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmlkbDogZGl0dG8KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6c2V0Q3VzdG9tVmFsaWRp
dHkpOiBkaXR0bworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6dmFsdWVNaXNzaW5nKTogbW92
ZWQgZG93bgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6IGRpdHRvCisgICAg
ICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5U3RhdGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnNldEN1c3RvbUVycm9yTWVzc2FnZSk6
IG1ldGhvZCB0byBzZXQgY3VzdG9tCisgICAgICAgIHZhbGlkYXRpb24gbWVzc2FnZQorICAgICAg
ICAoV2ViQ29yZTo6VmFsaWRpdHlTdGF0ZTo6Y3VzdG9tRXJyb3IpOiB2YWxpZGF0aW9uIGZsYWcK
KwogMjAwOS0wOC0wNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
Rml4IE1hYyBMZW9wYXJkIGRlYnVnIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwK
aW5kZXggMzBhZDZmMi4uNWZkMDA3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxCdXR0
b25FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCkBA
IC0zNiw2ICszNiw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
ICBET01TdHJpbmcgICAgICAgICAgICB0eXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgICAgd2lsbFZhbGlk
YXRlOworICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2b2lkIGNsaWNr
KCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1l
bnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCmluZGV4IDM3MWYz
ZmQuLjRkMTEzMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKQEAgLTI5LDYg
KzI5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRp
dHlTdGF0ZSAgIHZhbGlkaXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICB2b2lkICAgICBzZXRDdXN0b21W
YWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGVycm9yKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKaW5kZXggZTkwYTZlMC4uMDlkOTFkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xF
bGVtZW50LmNwcApAQCAtMjYyLDYgKzI2MiwxMSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OndpbGxWYWxpZGF0ZSgpIGNvbnN0CiAgICAgLy8gICAgICBUaGUgY29udHJvbCBpcyBub3Qg
YW4gb3V0cHV0IGVsZW1lbnQuCiAgICAgcmV0dXJuIGZvcm0oKSAmJiBuYW1lKCkubGVuZ3RoKCkg
JiYgIWRpc2FibGVkKCkgJiYgIWlzUmVhZE9ubHlGb3JtQ29udHJvbCgpOwogfQorCit2b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZXJy
b3IpCit7CisgICAgdmFsaWRpdHkoKS0+c2V0Q3VzdG9tRXJyb3JNZXNzYWdlKGVycm9yKTsKK30K
ICAgICAKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkK
IHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IGQzZGQ2MGYuLmEzMGY0
NmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtNzcsOCArNzcsNiBA
QCBwdWJsaWM6CiAgICAgYm9vbCByZXF1aXJlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UmVxdWly
ZWQoYm9vbCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KLQogICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSk7
CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xOYW1lKCkgY29u
c3Q7CkBAIC0xMDQsNyArMTAyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc2hvcnQgdGFiSW5k
ZXgoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdDsKKyAg
ICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpOwogCisgICAgdmlydHVhbCBi
b29sIHZhbHVlTWlzc2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBi
b29sIHBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lk
IGZvcm1EZXN0cm95ZWQoKSB7IG1fZm9ybSA9IDA7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bAppbmRleCBlMTliMzBlLi5lMTVjNmI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBA
IC01Niw2ICs1Niw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHVzZU1hcDsKICAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVl
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0
ZTsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252
ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAg
ICB2b2lkICAgICAgICAgICAgICAgc2VsZWN0KCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAg
ICBjbGljaygpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCmluZGV4IDI2
ZjI2NTMuLjE3Nzg5NWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbApAQCAtNDUsNiAr
NDUsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0
eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJv
b2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHZvaWQgICAgICAgICAgICAgICBz
ZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGVycm9yKTsKIAogICAgICAgICAvLyBNb2RpZmllZCBpbiBET00gTGV2ZWwgMjoK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25zQ29sbGVjdGlvbiBvcHRpb25z
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCmluZGV4IGJhOGEwNjIuLjVkMjg1M2Ug
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKQEAgLTQ0LDYgKzQ0LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgdm9pZCAg
ICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJp
bmddIERPTVN0cmluZyBlcnJvcik7CiAKICAgICAgICAvLyBXaW5JRSAmIEZpcmVGb3ggZXh0ZW5z
aW9uOgogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyBzZWxlY3Rpb25TdGFydDsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmggYi9XZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5oCmluZGV4IDRiMmYwMjIuLjc5NDgyMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9WYWxpZGl0eVN0YXRlLmgKKysrIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaApA
QCAtMzgsNiArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSFRNTEZvcm1D
b250cm9sRWxlbWVudCogY29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbDsgfQogCisg
ICAgICAgIHZvaWQgc2V0Q3VzdG9tRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkg
eyBtX2N1c3RvbUVycm9yTWVzc2FnZSA9IG1lc3NhZ2U7IH0KKwogICAgICAgICBib29sIHZhbHVl
TWlzc2luZygpIHsgcmV0dXJuIGNvbnRyb2woKS0+dmFsdWVNaXNzaW5nKCk7IH0KICAgICAgICAg
Ym9vbCB0eXBlTWlzbWF0Y2goKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29sIHBhdHRl
cm5NaXNtYXRjaCgpIHsgcmV0dXJuIGNvbnRyb2woKS0+cGF0dGVybk1pc21hdGNoKCk7IH0KQEAg
LTQ1LDEyICs0NywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcmFuZ2VV
bmRlcmZsb3coKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29sIHJhbmdlT3ZlcmZsb3co
KSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICBib29sIHN0ZXBNaXNtYXRjaCgpIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgICAgIGJvb2wgY3VzdG9tRXJyb3IoKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgICAgICBib29sIGN1c3RvbUVycm9yKCkgeyByZXR1cm4gIW1fY3VzdG9tRXJyb3JNZXNzYWdl
LmlzRW1wdHkoKTsgfQogICAgICAgICBib29sIHZhbGlkKCk7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBWYWxpZGl0eVN0YXRlKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqKTsKICAgICAgICAgSFRN
TEZvcm1Db250cm9sRWxlbWVudCogbV9jb250cm9sOworICAgICAgICBTdHJpbmcgbV9jdXN0b21F
cnJvck1lc3NhZ2U7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="commit-queue"
          id="18383"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>