<?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>26918</bug_id>
          
          <creation_ts>2009-07-01 22:47:24 -0700</creation_ts>
          <short_desc>XSSAuditor should prevent injection of HTML Base tag</short_desc>
          <delta_ts>2009-07-08 15:15:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>129462</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-01 22:47:24 -0700</bug_when>
    <thetext>We should prevent injections of &lt;base href=&quot;...&quot;&gt;, since this can be used to load external scripts from a malicious site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129464</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-01 23:01:40 -0700</bug_when>
    <thetext>Good catch Dan.  We should probably handle this similarly to the &lt;script&gt; tag by checking the unparsed URL against the request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129890</commentid>
    <comment_count>2</comment_count>
      <attachid>32284</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-05 19:48:30 -0700</bug_when>
    <thetext>Created attachment 32284
Patch with tests

Implements support for preventing injection of HTML Base tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>129896</commentid>
    <comment_count>3</comment_count>
      <attachid>32284</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-05 23:18:59 -0700</bug_when>
    <thetext>Comment on attachment 32284
Patch with tests

Generally looks good, but I have a couple nits and a couple questions:

&gt; +        m_hrefRaw = attr-&gt;value();

I might call this something like hrefAttrValue.  &quot;Raw&quot; is kind of a vague term.

&gt; +    KURL baseElementURL(m_frame-&gt;document()-&gt;url(), url);
&gt; +    if (findInRequest(url) &amp;&amp; m_frame-&gt;document()-&gt;url().baseAsString() != baseElementURL.baseAsString()) {

Seems like you should do the != comparison first because it will be faster than findInRequest.

&gt; --- LayoutTests/http/tests/security/xssAuditor/base-href-safe2-expected.txt	(revision 0)
&gt; +++ LayoutTests/http/tests/security/xssAuditor/base-href-safe2-expected.txt	(revision 0)
&gt; @@ -0,0 +1,2 @@
&gt; +ALERT: /XSS/

This looks like a failure.  Can we alert something friendlier here?

&gt; +ALERT: This is a safe script.

Like this ^^^^  :)

&gt; +&lt;iframe src=&quot;http://localhost:8000/security/xssAuditor/resources/echo-head-base-href.pl?q=&lt;base href=&apos;127.0.0.1:8000/security/xssAuditor/resources/base-href/&apos;&gt;&quot;&gt;

I think you mean to have a // in the beginning of this href attribute.

&gt; +&lt;iframe src=&quot;http://localhost:8000/security/xssAuditor/resources/echo-head-base-href.pl?q=&lt;base href=&apos;//127.0.0.1:8000/security/xssAuditor/resources/base-href/&apos;&gt;&quot;&gt;

What&apos;s the difference between these to test cases?  It looks like the first isn&apos;t actually testing a scheme-relative path.  It&apos;s testing a relative path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130086</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-06 18:39:24 -0700</bug_when>
    <thetext>base-href-scheme-relative2.html was just testing that the XSSAuditor can match the URL even though it is missing the scheme and &quot;://&quot;. It was not a really good test case, so I removed it.

Instead, I wrote a test case that has an embedded url-encoded null character in the base-href and discovered I was not catching this case. I modified the patch so that inside HTMLBaseElement::parseMappedAttribute, m_ hrefAttrValue = StringImpl::createStrippingNullCharacters(attr-&gt;value().characters(), attr-&gt;value().length()); that is, I remove any null-characters. 

(In reply to comment #3)
&gt; (From update of attachment 32284 [details])
&gt; Generally looks good, but I have a couple nits and a couple questions:
&gt; 
&gt; &gt; +        m_hrefRaw = attr-&gt;value();
&gt; 
&gt; I might call this something like hrefAttrValue.  &quot;Raw&quot; is kind of a vague term.
&gt; 
&gt; &gt; +    KURL baseElementURL(m_frame-&gt;document()-&gt;url(), url);
&gt; &gt; +    if (findInRequest(url) &amp;&amp; m_frame-&gt;document()-&gt;url().baseAsString() != baseElementURL.baseAsString()) {
&gt; 
&gt; Seems like you should do the != comparison first because it will be faster than
&gt; findInRequest.
&gt; 
&gt; &gt; --- LayoutTests/http/tests/security/xssAuditor/base-href-safe2-expected.txt	(revision 0)
&gt; &gt; +++ LayoutTests/http/tests/security/xssAuditor/base-href-safe2-expected.txt	(revision 0)
&gt; &gt; @@ -0,0 +1,2 @@
&gt; &gt; +ALERT: /XSS/
&gt; 
&gt; This looks like a failure.  Can we alert something friendlier here?
&gt; 
&gt; &gt; +ALERT: This is a safe script.
&gt; 
&gt; Like this ^^^^  :)
&gt; 
&gt; &gt; +&lt;iframe src=&quot;http://localhost:8000/security/xssAuditor/resources/echo-head-base-href.pl?q=&lt;base href=&apos;127.0.0.1:8000/security/xssAuditor/resources/base-href/&apos;&gt;&quot;&gt;
&gt; 
&gt; I think you mean to have a // in the beginning of this href attribute.
&gt; 
&gt; &gt; +&lt;iframe src=&quot;http://localhost:8000/security/xssAuditor/resources/echo-head-base-href.pl?q=&lt;base href=&apos;//127.0.0.1:8000/security/xssAuditor/resources/base-href/&apos;&gt;&quot;&gt;
&gt; 
&gt; What&apos;s the difference between these to test cases?  It looks like the first
&gt; isn&apos;t actually testing a scheme-relative path.  It&apos;s testing a relative path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130088</commentid>
    <comment_count>5</comment_count>
      <attachid>32348</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-06 18:40:16 -0700</bug_when>
    <thetext>Created attachment 32348
Patch with tests

Cleaned up patch.

Removed test base-href-scheme-relative2.html. Added test base-href-with-null-char.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130258</commentid>
    <comment_count>6</comment_count>
      <attachid>32348</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-07 13:10:01 -0700</bug_when>
    <thetext>Comment on attachment 32348
Patch with tests

This looks pretty good.  Only one detail to change. 

&gt; +        m_hrefAttrValue = StringImpl::createStrippingNullCharacters(attr-&gt;value().characters(), attr-&gt;value().length());

It doesn&apos;t seem right to do the null stripping here.  m_hrefAttrValue should hold the value of the href attr, nulls and all.

&gt; +bool XSSAuditor::canSetBaseElementURL(const String&amp; url) const

We can either do the null stripping here or find a way to tell findInRequest not to strip nulls.

Do we have this same null issue with &lt;script src=&quot;...&quot;&gt; or canLoadObject?  If so, we should fix that in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130529</commentid>
    <comment_count>7</comment_count>
      <attachid>32475</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-08 14:59:05 -0700</bug_when>
    <thetext>Created attachment 32475
Patch with tests

Cleaned up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130534</commentid>
    <comment_count>8</comment_count>
      <attachid>32475</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-08 15:08:03 -0700</bug_when>
    <thetext>Comment on attachment 32475
Patch with tests

Great.  This got much cleaner now that you&apos;ve done the null / control char thing for the other APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130540</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-08 15:15:02 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-control-char-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-control-char.html
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-null-char-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-null-char.html
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-safe-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-safe.html
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-safe2-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-safe2.html
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-scheme-relative-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/base-href-scheme-relative.html
Adding         LayoutTests/http/tests/security/xssAuditor/base-href.html
Adding         LayoutTests/http/tests/security/xssAuditor/resources/base-href
Adding         LayoutTests/http/tests/security/xssAuditor/resources/base-href/base-href-safe2.html
Adding         LayoutTests/http/tests/security/xssAuditor/resources/base-href/really-safe-script.js
Adding         LayoutTests/http/tests/security/xssAuditor/resources/base-href/safe-script.js
Adding         LayoutTests/http/tests/security/xssAuditor/resources/echo-head-base-href.pl
Adding         LayoutTests/http/tests/security/xssAuditor/resources/safe-script.js
Sending        WebCore/ChangeLog
Sending        WebCore/html/HTMLBaseElement.cpp
Sending        WebCore/html/HTMLBaseElement.h
Sending        WebCore/page/XSSAuditor.cpp
Sending        WebCore/page/XSSAuditor.h
Transmitting file data .......................
Committed revision 45642.
http://trac.webkit.org/changeset/45642</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32284</attachid>
            <date>2009-07-05 19:48:30 -0700</date>
            <delta_ts>2009-07-06 18:40:16 -0700</delta_ts>
            <desc>Patch with tests</desc>
            <filename>Bug26918_2.patch</filename>
            <type>text/plain</type>
            <size>14220</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTU1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMDctMDUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5MTgKKyAg
ICAgICAgCisgICAgICAgIFByZXZlbnRzIGluamVjdGlvbiBvZiBIVE1MIEJhc2UgdGFnLgorCisg
ICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNh
ZmUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jh
c2UtaHJlZi1zYWZlMi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZTIu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2Ut
aHJlZi5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQmFzZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxCYXNlRWxlbWVudDo6cHJvY2Vzcyk6IE1vZGlmaWVkIHRvIGNhbGwg
WFNTQXVkaXRvcjo6Y2FuU2V0QmFzZUVsZW1lbnRVUkwKKyAgICAgICAgdG8gZGV0ZXJtaW5lIGlm
IGl0IGlzIHNhZmUgdG8gdXNlIGJhc2UgZWxlbWVudCBVUkwuCisgICAgICAgICogaHRtbC9IVE1M
QmFzZUVsZW1lbnQuaDogQWRkZWQgZmllbGQgbV9ocmVmUmF3IHRvIHN0b3JlIHVucGFyc2VkIGJh
c2UgZWxlbWVudCBVUkwuCisgICAgICAgICogcGFnZS9YU1NBdWRpdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhblNldEJhc2VFbGVtZW50VVJMKToKKyAgICAgICAgKiBw
YWdlL1hTU0F1ZGl0b3IuaDoKKwogMjAwOS0wNy0wNSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxCYXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ1MzQyKQorKysgV2ViQ29yZS9odG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiTWFwcGVkQXR0
cmlidXRlLmgiCisjaW5jbHVkZSAiWFNTQXVkaXRvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQ4LDYgKzQ5LDcgQEAgSFRNTEJhc2VFbGVtZW50Ojp+SFRNTEJhc2VFbGVtZW50KCkK
IHZvaWQgSFRNTEJhc2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1
dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBocmVmQXR0cikgeworICAgICAg
ICBtX2hyZWZSYXcgPSBhdHRyLT52YWx1ZSgpOwogICAgICAgICBtX2hyZWYgPSBwYXJzZVVSTChh
dHRyLT52YWx1ZSgpKTsKICAgICAgICAgcHJvY2VzcygpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+
bmFtZSgpID09IHRhcmdldEF0dHIpIHsKQEAgLTc4LDcgKzgwLDcgQEAgdm9pZCBIVE1MQmFzZUVs
ZW1lbnQ6OnByb2Nlc3MoKQogICAgIGlmICghaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoIW1faHJlZi5pc0VtcHR5KCkpCisgICAgaWYgKCFtX2hyZWYuaXNFbXB0eSgp
ICYmICghZG9jdW1lbnQoKS0+ZnJhbWUoKSB8fCBkb2N1bWVudCgpLT5mcmFtZSgpLT5zY3JpcHQo
KS0+eHNzQXVkaXRvcigpLT5jYW5TZXRCYXNlRWxlbWVudFVSTChtX2hyZWZSYXcpKSkKICAgICAg
ICAgZG9jdW1lbnQoKS0+c2V0QmFzZUVsZW1lbnRVUkwoS1VSTChkb2N1bWVudCgpLT51cmwoKSwg
bV9ocmVmKSk7CiAKICAgICBpZiAoIW1fdGFyZ2V0LmlzRW1wdHkoKSkKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MQmFzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJh
c2VFbGVtZW50LmgJKHJldmlzaW9uIDQ1MzQyKQorKysgV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFRhcmdldChjb25zdCBTdHJpbmcmKTsKIAogcHJvdGVjdGVkOgorICAgIFN0cmluZyBtX2hy
ZWZSYXc7CiAgICAgU3RyaW5nIG1faHJlZjsKICAgICBTdHJpbmcgbV90YXJnZXQ7CiB9OwpJbmRl
eDogV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFn
ZS9YU1NBdWRpdG9yLmNwcAkocmV2aXNpb24gNDU0NjMpCisrKyBXZWJDb3JlL3BhZ2UvWFNTQXVk
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsMjEgQEAgYm9vbCBYU1NBdWRp
dG9yOjpjYW5Mb2FkT2JqZWN0KGNvbnN0IFN0cgogICAgIHJldHVybiB0cnVlOwogfQogCitib29s
IFhTU0F1ZGl0b3I6OmNhblNldEJhc2VFbGVtZW50VVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25z
dAoreworICAgIGlmICghaXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAor
ICAgIEtVUkwgYmFzZUVsZW1lbnRVUkwobV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHVybCk7
CisgICAgaWYgKGZpbmRJblJlcXVlc3QodXJsKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwo
KS5iYXNlQXNTdHJpbmcoKSAhPSBiYXNlRWxlbWVudFVSTC5iYXNlQXNTdHJpbmcoKSkgeworICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsICgiUmVmdXNl
ZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBm
b3VuZCB3aXRoaW4gcmVxdWVzdCIpKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNv
bnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBj
b25zb2xlTWVzc2FnZSwgMSwgU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICAgIHJldHVybiB0cnVlOworICAgIAorfQorCiBTdHJpbmcgWFNTQXVkaXRvcjo6ZGVjb2Rl
VVJMKGNvbnN0IFN0cmluZyYgc3RyLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nLCBib29s
IGFsbG93TnVsbENoYXJhY3RlcnMpCiB7CiAgICAgU3RyaW5nIHJlc3VsdDsKSW5kZXg6IFdlYkNv
cmUvcGFnZS9YU1NBdWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1hTU0F1ZGl0
b3IuaAkocmV2aXNpb24gNDU0NjMpCisrKyBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC04Nyw2ICs4NywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IC8vCiAgICAgICAgIC8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSBGcmFtZUxvYWRlcjo6cmVx
dWVzdE9iamVjdC4KICAgICAgICAgYm9vbCBjYW5Mb2FkT2JqZWN0KGNvbnN0IFN0cmluZyYgdXJs
KSBjb25zdDsKKyAgICAgICAgCisgICAgICAgIC8vIERldGVybWluZXMgd2hldGhlciB0aGUgYmFz
ZSBVUkwgc2hvdWxkIGJlIGNoYW5nZWQgYmFzZWQgb24gdGhlIGNvbnRlbnQKKyAgICAgICAgLy8g
b2YgYW55IHVzZXItc3VibWl0dGVkIGRhdGEuCisgICAgICAgIC8vCisgICAgICAgIC8vIFRoaXMg
bWV0aG9kIGlzIGNhbGxlZCBieSBIVE1MQmFzZUVsZW1lbnQ6OnByb2Nlc3MuCisgICAgICAgIGJv
b2wgY2FuU2V0QmFzZUVsZW1lbnRVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0OwogCiAgICAg
cHJpdmF0ZToKICAgICAgICAgc3RhdGljIFN0cmluZyBkZWNvZGVVUkwoY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcgPSBVVEY4RW5jb2RpbmcoKSwgYm9vbCBh
bGxvd051bGxDaGFyYWN0ZXJzID0gZmFsc2UpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDU1NTYpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNyBAQAor
MjAwOS0wNy0wNSAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQGludHVkYXRhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjkxOAorICAgICAgICAKKyAgICAgICAg
VGVzdHMgcHJldmVudGlvbiBvZiBpbmplY3RlZCBIVE1MIEJhc2UgdGFnLgorCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYt
c2FmZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1z
YWZlMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2NoZW1lLXJlbGF0
aXZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9iYXNlLWhyZWYtc2NoZW1lLXJlbGF0aXZlMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2NoZW1lLXJlbGF0
aXZlMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvYmFzZS1ocmVmLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi9iYXNlLWhyZWYtc2Fm
ZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9iYXNlLWhyZWYvc2FmZS1zY3JpcHQuanM6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJl
Zi5wbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9zYWZlLXNjcmlwdC5qczogQWRkZWQuCisKIDIwMDktMDctMDUgIENocmlzIE1hcnJp
biAgPGNtYXJyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNl
LWhyZWYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2Ug
Y29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QKK0FMRVJUOiBUaGlzIGlzIGEgc2Fm
ZSBzY3JpcHQuCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9iYXNlLWhyZWYtc2FmZTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZTItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL2Jhc2UtaHJlZi1zYWZlMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMiBAQAorQUxFUlQ6IC9YU1MvCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZTIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUy
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvYmFzZS1o
cmVmLXNhZmUyLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBUaGlzIGlz
IGEgc2FmZSBzY3JpcHQuCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZS5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jh
c2UtaHJlZi1zYWZlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3Njcmlw
dD4KKzxiYXNlIGhyZWY9J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy8nPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2FmZS1zY3JpcHQu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUyLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZTItZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2Ut
aHJlZi1zY2hlbWUtcmVsYXRpdmUyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2
YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVz
dAorQUxFUlQ6IFRoaXMgaXMgYSBzYWZlIHNjcmlwdC4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1y
ZWxhdGl2ZTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYucGw/cT08YmFzZSBo
cmVmPScxMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhy
ZWYvJz4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jh
c2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBK
YXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1
ZXN0CitBTEVSVDogVGhpcyBpcyBhIHNhZmUgc2NyaXB0LgorCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9iYXNlLWhyZWYtc2NoZW1lLXJlbGF0aXZlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1y
ZWxhdGl2ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbD9xPTxiYXNlIGhy
ZWY9Jy8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1o
cmVmLyc+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9iYXNlLWhyZWYuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYucGw/
cT08YmFzZSBocmVmPSdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvYmFzZS1ocmVmLyc+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9l
Y2hvLWhlYWQtYmFzZS1ocmVmLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNyBAQAorIyEvdXNyL2Jpbi9wZXJsIC13VAordXNlIHN0cmljdDsKK3VzZSBDR0k7CisKK215
ICRjZ2kgPSBuZXcgQ0dJOworCitwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLThcblxuIjsKKworcHJpbnQgIjwhRE9DVFlQRSBodG1sPlxuIjsKK3ByaW50ICI8aHRt
bD5cbiI7CitwcmludCAiPGhlYWQ+XG4iOworcHJpbnQgJGNnaS0+cGFyYW0oJ3EnKTsKK3ByaW50
ICI8L2hlYWQ+XG4iOworcHJpbnQgIjxib2R5PlxuIjsKK3ByaW50ICI8c2NyaXB0IHNyYz0nc2Fm
ZS1zY3JpcHQuanMnPjwvc2NyaXB0PlxuIjsKK3ByaW50ICI8L2JvZHk+XG4iOworcHJpbnQgIjwv
aHRtbD5cbiI7CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYucGwKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3NhZmUtc2NyaXB0LmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvc2FmZS1zY3JpcHQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3NhZmUtc2NyaXB0LmpzCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxIEBACithbGVydCgnVGhpcyBpcyBhIHNhZmUgc2NyaXB0LicpOwpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL2Jhc2UtaHJlZi1zYWZlMi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvYmFzZS1ocmVmL2Jhc2UtaHJlZi1zYWZlMi5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9i
YXNlLWhyZWYvYmFzZS1ocmVmLXNhZmUyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7
Cit9Cis8L3NjcmlwdD4KKzxiYXNlIGhyZWY9J2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0
eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvJz4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9InNhZmUtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMv
YmFzZS1ocmVmL3NhZmUtc2NyaXB0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL3NhZmUtc2NyaXB0
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvc2FmZS1zY3JpcHQuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEgQEAKK2FsZXJ0KC9YU1MvKTsK
</data>
<flag name="review"
          id="16752"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32348</attachid>
            <date>2009-07-06 18:40:16 -0700</date>
            <delta_ts>2009-07-08 14:59:05 -0700</delta_ts>
            <desc>Patch with tests</desc>
            <filename>Bug26918_3.patch</filename>
            <type>text/plain</type>
            <size>14816</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTU1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDktMDctMDUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5MTgKKyAg
ICAgICAgCisgICAgICAgIFByZXZlbnRzIGluamVjdGlvbiBvZiBIVE1MIEJhc2UgdGFnLgorCisg
ICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNh
ZmUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jh
c2UtaHJlZi1zYWZlMi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXdpdGgtbnVsbC1jaGFyLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhy
ZWYuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MQmFzZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEJhc2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQmFzZUVsZW1lbnQ6OnByb2Nlc3MpOiBNb2RpZmllZCB0byBjYWxsIFhT
U0F1ZGl0b3I6OmNhblNldEJhc2VFbGVtZW50VVJMCisgICAgICAgIHRvIGRldGVybWluZSBpZiBp
dCBpcyBzYWZlIHRvIHVzZSBiYXNlIGVsZW1lbnQgVVJMLgorICAgICAgICAqIGh0bWwvSFRNTEJh
c2VFbGVtZW50Lmg6IEFkZGVkIGZpZWxkIG1faHJlZkF0dHJWYWx1ZSB0byBzdG9yZSB1bnBhcnNl
ZCBiYXNlIGVsZW1lbnQgVVJMLgorICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpjYW5TZXRCYXNlRWxlbWVudFVSTCk6CisgICAgICAg
ICogcGFnZS9YU1NBdWRpdG9yLmg6CisKIDIwMDktMDctMDUgIENocmlzIE1hcnJpbiAgPGNtYXJy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MQmFzZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA0NTM0MikKKysrIFdlYkNvcmUvaHRt
bC9IVE1MQmFzZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk1hcHBl
ZEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIlhTU0F1ZGl0b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00OCw2ICs0OSw3IEBAIEhUTUxCYXNlRWxlbWVudDo6fkhUTUxCYXNlRWxlbWVu
dCgpCiB2b2lkIEhUTUxCYXNlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0
cmlidXRlKiBhdHRyKQogewogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gaHJlZkF0dHIpIHsKKyAg
ICAgICAgbV9ocmVmQXR0clZhbHVlID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3RyaXBwaW5nTnVsbENo
YXJhY3RlcnMoYXR0ci0+dmFsdWUoKS5jaGFyYWN0ZXJzKCksIGF0dHItPnZhbHVlKCkubGVuZ3Ro
KCkpOwogICAgICAgICBtX2hyZWYgPSBwYXJzZVVSTChhdHRyLT52YWx1ZSgpKTsKICAgICAgICAg
cHJvY2VzcygpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHRhcmdldEF0dHIpIHsK
QEAgLTc4LDcgKzgwLDcgQEAgdm9pZCBIVE1MQmFzZUVsZW1lbnQ6OnByb2Nlc3MoKQogICAgIGlm
ICghaW5Eb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1faHJlZi5pc0Vt
cHR5KCkpCisgICAgaWYgKCFtX2hyZWYuaXNFbXB0eSgpICYmICghZG9jdW1lbnQoKS0+ZnJhbWUo
KSB8fCBkb2N1bWVudCgpLT5mcmFtZSgpLT5zY3JpcHQoKS0+eHNzQXVkaXRvcigpLT5jYW5TZXRC
YXNlRWxlbWVudFVSTChtX2hyZWZBdHRyVmFsdWUpKSkKICAgICAgICAgZG9jdW1lbnQoKS0+c2V0
QmFzZUVsZW1lbnRVUkwoS1VSTChkb2N1bWVudCgpLT51cmwoKSwgbV9ocmVmKSk7CiAKICAgICBp
ZiAoIW1fdGFyZ2V0LmlzRW1wdHkoKSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgJKHJldmlz
aW9uIDQ1MzQyKQorKysgV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRhcmdldChjb25zdCBT
dHJpbmcmKTsKIAogcHJvdGVjdGVkOgorICAgIFN0cmluZyBtX2hyZWZBdHRyVmFsdWU7CiAgICAg
U3RyaW5nIG1faHJlZjsKICAgICBTdHJpbmcgbV90YXJnZXQ7CiB9OwpJbmRleDogV2ViQ29yZS9w
YWdlL1hTU0F1ZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9y
LmNwcAkocmV2aXNpb24gNDU0NjMpCisrKyBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsMjEgQEAgYm9vbCBYU1NBdWRpdG9yOjpjYW5Mb2Fk
T2JqZWN0KGNvbnN0IFN0cgogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFhTU0F1ZGl0b3I6
OmNhblNldEJhc2VFbGVtZW50VVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAoreworICAgIGlm
ICghaXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAorICAgIEtVUkwgYmFz
ZUVsZW1lbnRVUkwobV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHVybCk7CisgICAgaWYgKG1f
ZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLmJhc2VBc1N0cmluZygpICE9IGJhc2VFbGVtZW50VVJM
LmJhc2VBc1N0cmluZygpICYmIGZpbmRJblJlcXVlc3QodXJsKSkgeworICAgICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRl
IGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4g
cmVxdWVzdCIpKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRk
TWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2Fn
ZSwgMSwgU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVy
biB0cnVlOworICAgIAorfQorCiBTdHJpbmcgWFNTQXVkaXRvcjo6ZGVjb2RlVVJMKGNvbnN0IFN0
cmluZyYgc3RyLCBjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nLCBib29sIGFsbG93TnVsbENo
YXJhY3RlcnMpCiB7CiAgICAgU3RyaW5nIHJlc3VsdDsKSW5kZXg6IFdlYkNvcmUvcGFnZS9YU1NB
dWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAkocmV2aXNp
b24gNDU0NjMpCisrKyBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC04Nyw2ICs4NywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vCiAgICAgICAg
IC8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSBGcmFtZUxvYWRlcjo6cmVxdWVzdE9iamVjdC4K
ICAgICAgICAgYm9vbCBjYW5Mb2FkT2JqZWN0KGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdDsKKyAg
ICAgICAgCisgICAgICAgIC8vIERldGVybWluZXMgd2hldGhlciB0aGUgYmFzZSBVUkwgc2hvdWxk
IGJlIGNoYW5nZWQgYmFzZWQgb24gdGhlIGNvbnRlbnQKKyAgICAgICAgLy8gb2YgYW55IHVzZXIt
c3VibWl0dGVkIGRhdGEuCisgICAgICAgIC8vCisgICAgICAgIC8vIFRoaXMgbWV0aG9kIGlzIGNh
bGxlZCBieSBIVE1MQmFzZUVsZW1lbnQ6OnByb2Nlc3MuCisgICAgICAgIGJvb2wgY2FuU2V0QmFz
ZUVsZW1lbnRVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgc3RhdGljIFN0cmluZyBkZWNvZGVVUkwoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFRl
eHRFbmNvZGluZyYgZW5jb2RpbmcgPSBVVEY4RW5jb2RpbmcoKSwgYm9vbCBhbGxvd051bGxDaGFy
YWN0ZXJzID0gZmFsc2UpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDU1NTYpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0wNy0wNSAg
RGFuaWVsIEJhdGVzICA8ZGJhdGVzQGludHVkYXRhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNjkxOAorICAgICAgICAKKyAgICAgICAgVGVzdHMgcHJldmVu
dGlvbiBvZiBpbmplY3RlZCBIVE1MIEJhc2UgdGFnLgorCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9i
YXNlLWhyZWYtc2FmZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zYWZlMi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVm
LXNjaGVtZS1yZWxhdGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2NoZW1lLXJlbGF0aXZlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYt
d2l0aC1udWxsLWNoYXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXdpdGgtbnVsbC1jaGFyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy9iYXNlLWhyZWY6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL2Jhc2UtaHJlZi1zYWZlMi5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2Ut
aHJlZi9zYWZlLXNjcmlwdC5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvcmVhbGx5LXNhZmUtc2NyaXB0LmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2Vz
L2VjaG8taGVhZC1iYXNlLWhyZWYucGw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvc2FmZS1zY3JpcHQuanM6IEFkZGVkLgorCiAyMDA5
LTA3LTA1ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9iYXNlLWhyZWYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2Ny
aXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0CitB
TEVSVDogVGhpcyBpcyBhIHNhZmUgc2NyaXB0LgorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFz
ZS1ocmVmLXNhZmUyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZTItZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBUaGlzIGlzIGEgc2FmZSBzY3Jp
cHQuCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9i
YXNlLWhyZWYtc2FmZTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUyLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNh
ZmUyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvYmFzZS1ocmVmLXNhZmUyLmh0bWwiPgorPC9p
ZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYt
c2FmZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiBUaGlzIGlzIGEgc2FmZSBzY3JpcHQuCisKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYt
c2FmZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zYWZlLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzxiYXNlIGhyZWY9J2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy8nPgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2FmZS1zY3JpcHQuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2No
ZW1lLXJlbGF0aXZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2NoZW1lLXJlbGF0aXZlLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBj
b2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdAorQUxFUlQ6IFRoaXMgaXMgYSBzYWZl
IHNjcmlwdC4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxh
dGl2ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9y
RW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Vj
aG8taGVhZC1iYXNlLWhyZWYucGw/cT08YmFzZSBocmVmPScvLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi8nPiI+Cis8L2lmcmFtZT4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9iYXNlLWhyZWYtd2l0aC1udWxsLWNoYXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtd2l0
aC1udWxsLWNoYXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi13aXRoLW51bGwtY2hhci1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29k
ZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QKK0FMRVJUOiBUaGlzIGlzIGEgc2FmZSBz
Y3JpcHQuCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9iYXNlLWhyZWYtd2l0aC1udWxsLWNoYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXdpdGgtbnVsbC1jaGFy
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvYmFzZS1ocmVmLXdpdGgtbnVsbC1jaGFyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJs
ZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhl
YWQtYmFzZS1ocmVmLnBsP3E9PGJhc2UgaHJlZj0naHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlYyUw
MHVyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi8nPiI+Cis8L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9iYXNlLWhyZWYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsP3E9PGJhc2UgaHJlZj0naHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi8nPiI+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYucGwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1i
YXNlLWhyZWYucGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKKyMhL3Vzci9iaW4vcGVy
bCAtd1QKK3VzZSBzdHJpY3Q7Cit1c2UgQ0dJOworCitteSAkY2dpID0gbmV3IENHSTsKKworcHJp
bnQgIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04XG5cbiI7CisKK3ByaW50
ICI8IURPQ1RZUEUgaHRtbD5cbiI7CitwcmludCAiPGh0bWw+XG4iOworcHJpbnQgIjxoZWFkPlxu
IjsKK3ByaW50ICRjZ2ktPnBhcmFtKCdxJyk7CitwcmludCAiPC9oZWFkPlxuIjsKK3ByaW50ICI8
Ym9keT5cbiI7CitwcmludCAiPHNjcmlwdCBzcmM9J3NhZmUtc2NyaXB0LmpzJz48L3NjcmlwdD5c
biI7CitwcmludCAiPC9ib2R5PlxuIjsKK3ByaW50ICI8L2h0bWw+XG4iOwoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFi
bGUKICAgKyAqCgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy9zYWZlLXNjcmlwdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3NhZmUtc2NyaXB0LmpzCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9zYWZlLXNjcmlwdC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorYWxl
cnQoJ1RoaXMgaXMgYSBzYWZlIHNjcmlwdC4nKTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL2Jhc2UtaHJlZi1zYWZl
Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL2Jhc2UtaHJlZi1zYWZlMi5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy9iYXNlLWhyZWYvYmFzZS1ocmVmLXNhZmUyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQo
dHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzxiYXNlIGhyZWY9J2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
ZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvJz4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9InJlYWxseS1zYWZlLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi9yZWFsbHktc2FmZS1zY3JpcHQuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9i
YXNlLWhyZWYvcmVhbGx5LXNhZmUtc2NyaXB0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvcmVh
bGx5LXNhZmUtc2NyaXB0LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACithbGVydCgnVGhp
cyBpcyBhIHNhZmUgc2NyaXB0LicpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvc2FmZS1zY3JpcHQuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy9iYXNlLWhyZWYvc2FmZS1zY3JpcHQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi9zYWZl
LXNjcmlwdC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorYWxlcnQoL1hTUy8pOwo=
</data>
<flag name="review"
          id="16806"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32475</attachid>
            <date>2009-07-08 14:59:05 -0700</date>
            <delta_ts>2009-07-08 15:08:02 -0700</delta_ts>
            <desc>Patch with tests</desc>
            <filename>Bug26918_4.patch</filename>
            <type>text/plain</type>
            <size>16275</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTY0MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDktMDctMDggIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY5MTgKKyAg
ICAgICAgCisgICAgICAgIFByZXZlbnRzIGluamVjdGlvbiBvZiBIVE1MIEJhc2UgdGFnLgorCisg
ICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLWNv
bnRyb2wtY2hhci5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvYmFzZS1ocmVmLW51bGwtY2hhci5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUuaHRtbAorICAgICAgICAgICAgICAg
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zYWZlMi5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVt
ZS1yZWxhdGl2ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvYmFzZS1ocmVmLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEJhc2VFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxCYXNlRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJhc2VFbGVtZW50Ojpwcm9jZXNzKTogTW9kaWZp
ZWQgdG8gY2FsbCBYU1NBdWRpdG9yOjpjYW5TZXRCYXNlRWxlbWVudFVSTAorICAgICAgICB0byBk
ZXRlcm1pbmUgaWYgaXQgaXMgc2FmZSB0byB1c2UgYmFzZSBlbGVtZW50IFVSTC4KKyAgICAgICAg
KiBodG1sL0hUTUxCYXNlRWxlbWVudC5oOiBBZGRlZCBmaWVsZCBtX2hyZWZBdHRyVmFsdWUgdG8g
c3RvcmUgdW5wYXJzZWQgYmFzZSBlbGVtZW50IFVSTC4KKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6Y2FuU2V0QmFzZUVsZW1lbnRV
UkwpOgorICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5oOgorCiAyMDA5LTA3LTA4ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRy
aSBHbGF6a292LgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ1NjM5
KQorKysgV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJLVVJMLmgi
CiAjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiWFNTQXVkaXRvci5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDYgKzQ5LDcgQEAgSFRNTEJhc2VFbGVtZW50
Ojp+SFRNTEJhc2VFbGVtZW50KCkKIHZvaWQgSFRNTEJhc2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9
PSBocmVmQXR0cikgeworICAgICAgICBtX2hyZWZBdHRyVmFsdWUgPSBhdHRyLT52YWx1ZSgpOwog
ICAgICAgICBtX2hyZWYgPSBwYXJzZVVSTChhdHRyLT52YWx1ZSgpKTsKICAgICAgICAgcHJvY2Vz
cygpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHRhcmdldEF0dHIpIHsKQEAgLTc4
LDcgKzgwLDcgQEAgdm9pZCBIVE1MQmFzZUVsZW1lbnQ6OnByb2Nlc3MoKQogICAgIGlmICghaW5E
b2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1faHJlZi5pc0VtcHR5KCkp
CisgICAgaWYgKCFtX2hyZWYuaXNFbXB0eSgpICYmICghZG9jdW1lbnQoKS0+ZnJhbWUoKSB8fCBk
b2N1bWVudCgpLT5mcmFtZSgpLT5zY3JpcHQoKS0+eHNzQXVkaXRvcigpLT5jYW5TZXRCYXNlRWxl
bWVudFVSTChtX2hyZWZBdHRyVmFsdWUpKSkKICAgICAgICAgZG9jdW1lbnQoKS0+c2V0QmFzZUVs
ZW1lbnRVUkwoS1VSTChkb2N1bWVudCgpLT51cmwoKSwgbV9ocmVmKSk7CiAKICAgICBpZiAoIW1f
dGFyZ2V0LmlzRW1wdHkoKSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmgJKHJldmlzaW9uIDQ1
NjM5KQorKysgV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRhcmdldChjb25zdCBTdHJpbmcm
KTsKIAogcHJvdGVjdGVkOgorICAgIFN0cmluZyBtX2hyZWZBdHRyVmFsdWU7CiAgICAgU3RyaW5n
IG1faHJlZjsKICAgICBTdHJpbmcgbV90YXJnZXQ7CiB9OwpJbmRleDogV2ViQ29yZS9wYWdlL1hT
U0F1ZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAko
cmV2aXNpb24gNDU2MzkpCisrKyBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExNiw2ICsxMTYsMjAgQEAgYm9vbCBYU1NBdWRpdG9yOjpjYW5Mb2FkT2JqZWN0
KGNvbnN0IFN0cgogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFhTU0F1ZGl0b3I6OmNhblNl
dEJhc2VFbGVtZW50VVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAoreworICAgIGlmICghaXNF
bmFibGVkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAorICAgIEtVUkwgYmFzZUVsZW1l
bnRVUkwobV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHVybCk7CisgICAgaWYgKG1fZnJhbWUt
PmRvY3VtZW50KCktPnVybCgpLmJhc2VBc1N0cmluZygpICE9IGJhc2VFbGVtZW50VVJMLmJhc2VB
c1N0cmluZygpICYmIGZpbmRJblJlcXVlc3QodXJsKSkgeworICAgICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsICgiUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2
YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVz
dCIpKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwgMSwg
U3RyaW5nKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVl
OworfQorCiBTdHJpbmcgWFNTQXVkaXRvcjo6ZGVjb2RlVVJMKGNvbnN0IFN0cmluZyYgc3RyLCBj
b25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nLCBib29sIGFsbG93TnVsbENoYXJhY3RlcnMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYWxsb3dOb25OdWxsQ29udHJvbENoYXJh
Y3RlcnMpCiB7CkluZGV4OiBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgJKHJldmlzaW9uIDQ1NjM5KQorKysgV2ViQ29yZS9w
YWdlL1hTU0F1ZGl0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsMTIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgRnJhbWVM
b2FkZXI6OnJlcXVlc3RPYmplY3QuCiAgICAgICAgIGJvb2wgY2FuTG9hZE9iamVjdChjb25zdCBT
dHJpbmcmIHVybCkgY29uc3Q7CiAKKyAgICAgICAgLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBi
YXNlIFVSTCBzaG91bGQgYmUgY2hhbmdlZCBiYXNlZCBvbiB0aGUgY29udGVudAorICAgICAgICAv
LyBvZiBhbnkgdXNlci1zdWJtaXR0ZWQgZGF0YS4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gVGhp
cyBtZXRob2QgaXMgY2FsbGVkIGJ5IEhUTUxCYXNlRWxlbWVudDo6cHJvY2Vzcy4KKyAgICAgICAg
Ym9vbCBjYW5TZXRCYXNlRWxlbWVudFVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3Q7CisKICAg
ICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgU3RyaW5nIGRlY29kZVVSTChjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgVGV4dEVuY29kaW5nJiBlbmNvZGluZyA9IFVURjhFbmNvZGluZygpLCBib29s
IGFsbG93TnVsbENoYXJhY3RlcnMgPSBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9vbCBhbGxvd05vbk51bGxDb250cm9sQ2hhcmFjdGVycyA9IHRydWUpOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gNDU2NDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzMCBAQAorMjAwOS0wNy0wOCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQGlu
dHVkYXRhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjkx
OAorICAgICAgICAKKyAgICAgICAgVGVzdHMgcHJldmVudGlvbiBvZiBpbmplY3RlZCBIVE1MIEJh
c2UgdGFnLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2Ut
aHJlZi1jb250cm9sLWNoYXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLWNvbnRyb2wtY2hhci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Jhc2UtaHJlZi1udWxsLWNoYXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLW51bGwtY2hhci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVm
LXNhZmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zYWZlMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYt
c2FmZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxh
dGl2ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvYmFzZS1ocmVmLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi9iYXNlLWhyZWYtc2Fm
ZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9iYXNlLWhyZWYvcmVhbGx5LXNhZmUtc2NyaXB0LmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi9z
YWZlLXNjcmlwdC5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3NhZmUtc2NyaXB0Lmpz
OiBBZGRlZC4KKwogMjAwOS0wNy0wOCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQGludHVkYXRhLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1jb250cm9sLWNoYXItZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9iYXNlLWhyZWYtY29udHJvbC1jaGFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhy
ZWYtY29udHJvbC1jaGFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBA
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlw
dCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdAorQUxF
UlQ6IFRoaXMgaXMgYSBzYWZlIHNjcmlwdC4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1jb250cm9sLWNoYXIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1o
cmVmLWNvbnRyb2wtY2hhci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1jb250cm9sLWNoYXIuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRY
U1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aWZyYW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVz
b3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYucGw/cT08YmFzZSBocmVmPSdodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjJTAxdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmLyc+Ij4K
KzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEg
SmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVx
dWVzdAorQUxFUlQ6IFRoaXMgaXMgYSBzYWZlIHNjcmlwdC4KKwpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1udWxsLWNoYXItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9iYXNlLWhyZWYtbnVsbC1jaGFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtbnVs
bC1jaGFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQu
IFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdAorQUxFUlQ6IFRoaXMg
aXMgYSBzYWZlIHNjcmlwdC4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1udWxsLWNoYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLW51bGwtY2hh
ci5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL2Jhc2UtaHJlZi1udWxsLWNoYXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0
cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1i
YXNlLWhyZWYucGw/cT08YmFzZSBocmVmPSdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjJTAwdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmLyc+Ij4KKzwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Jhc2UtaHJlZi1zYWZlMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zYWZlMi1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyIEBACitBTEVSVDogVGhpcyBpcyBhIHNhZmUgc2NyaXB0LgorCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUyLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Jhc2UtaHJlZi1zYWZlMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zYWZlMi5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0
b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUg
c3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMv
YmFzZS1ocmVmL2Jhc2UtaHJlZi1zYWZlMi5odG1sIj4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jh
c2UtaHJlZi1zYWZlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Jhc2UtaHJlZi1zYWZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBA
CitBTEVSVDogVGhpcyBpcyBhIHNhZmUgc2NyaXB0LgorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNhZmUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVm
LXNhZmUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2FmZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRy
dWUpOworfQorPC9zY3JpcHQ+Cis8YmFzZSBocmVmPSdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2Vj
dXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvJz4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InNhZmUtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2NoZW1l
LXJlbGF0aXZlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvYmFzZS1ocmVmLXNjaGVtZS1yZWxhdGl2ZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8g
ZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQg
d2l0aGluIHJlcXVlc3QKK0FMRVJUOiBUaGlzIGlzIGEgc2FmZSBzY3JpcHQuCisKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYtc2NoZW1l
LXJlbGF0aXZlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi1zY2hlbWUtcmVsYXRpdmUuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhy
ZWYtc2NoZW1lLXJlbGF0aXZlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBs
P3E9PGJhc2UgaHJlZj0nLy8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy9iYXNlLWhyZWYvJz4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Jhc2UtaHJlZi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRy
dWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJh
c2UtaHJlZi5wbD9xPTxiYXNlIGhyZWY9J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvJz4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYucGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFz
ZS1ocmVmLnBsCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE3IEBACisjIS91c3IvYmluL3BlcmwgLXdUCit1c2Ugc3RyaWN0OwordXNl
IENHSTsKKworbXkgJGNnaSA9IG5ldyBDR0k7CisKK3ByaW50ICJDb250ZW50LVR5cGU6IHRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOworCitwcmludCAiPCFET0NUWVBFIGh0bWw+XG4iOwor
cHJpbnQgIjxodG1sPlxuIjsKK3ByaW50ICI8aGVhZD5cbiI7CitwcmludCAkY2dpLT5wYXJhbSgn
cScpOworcHJpbnQgIjwvaGVhZD5cbiI7CitwcmludCAiPGJvZHk+XG4iOworcHJpbnQgIjxzY3Jp
cHQgc3JjPSdzYWZlLXNjcmlwdC5qcyc+PC9zY3JpcHQ+XG4iOworcHJpbnQgIjwvYm9keT5cbiI7
CitwcmludCAiPC9odG1sPlxuIjsKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJl
Zi5wbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvc2FmZS1zY3Jp
cHQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9zYWZlLXNjcmlwdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvc2FmZS1zY3JpcHQu
anMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK2FsZXJ0KCdUaGlzIGlzIGEgc2FmZSBzY3Jp
cHQuJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2Jhc2UtaHJlZi9iYXNlLWhyZWYtc2FmZTIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2Ut
aHJlZi9iYXNlLWhyZWYtc2FmZTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL2Jhc2UtaHJl
Zi1zYWZlMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8
YmFzZSBocmVmPSdodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvYmFzZS1ocmVmLyc+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZWFsbHkt
c2FmZS1zY3JpcHQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYv
cmVhbGx5LXNhZmUtc2NyaXB0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL3JlYWxseS1zYWZlLXNj
cmlwdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL3JlYWxseS1zYWZlLXNjcmlwdC5qcwkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSBAQAorYWxlcnQoJ1RoaXMgaXMgYSBzYWZlIHNjcmlwdC4nKTsK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJj
ZXMvYmFzZS1ocmVmL3NhZmUtc2NyaXB0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmL3NhZmUtc2Ny
aXB0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNlLWhyZWYvc2FmZS1zY3JpcHQuanMJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEgQEAKK2FsZXJ0KC9YU1MvKTsK
</data>
<flag name="review"
          id="16905"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>