<?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>7321</bug_id>
          
          <creation_ts>2006-02-16 21:48:05 -0800</creation_ts>
          <short_desc>REGRESSION: style tag in body causes two head elements to appear in the DOM</short_desc>
          <delta_ts>2006-03-07 20:29:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://software.hixie.ch/utilities/js/live-dom-viewer/?%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody%3E%3Cstyle%3E%3C/style%3E%3C/body%3E%3C/html%3E%0A</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>EasyFix, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>33091</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-16 21:48:05 -0800</bug_when>
    <thetext>Summary:

A &lt;style&gt; tag that appears in the &lt;body&gt; of an HTML document causes two &lt;head&gt; elements to appear in the DOM.

Steps to reproduce:

1. Load an HTML document with a &lt;style&gt; tag in the &lt;body&gt; and a &lt;head&gt; element.
2. View the HTML document&apos;s DOM.  Ian Hixie&apos;s Live DOM Inspector works well, too.  http://software.hixie.ch/utilities/js/live-dom-viewer/

Expected results:

The DOM should only have one HEAD element.

Actual results:

The DOM has two HEAD elements.

Regression:

This is a regression from Safari 2.0.3 (417.8) on Mac OS X 10.4.5, which only displays one HEAD element in the DOM.

Tested on WebKit nightly build r12864.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33307</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-18 16:27:39 -0800</bug_when>
    <thetext>Checking the nightly builds, this bug is as old as the first nightly, WebKit-CVS-2005-10-01 03:27:01 GMT.dmg, so it&apos;s been around a while.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33314</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-18 17:40:02 -0800</bug_when>
    <thetext>The bug is in HTMLParser::headCreateErrorCheck. That function should always return false, and when it decides to create a head element it needs to store a pointer to it in &quot;head&quot;.

See formCreateErrorCheck and mapCreateErrorCheck for similar logic. The only part I&apos;m not entirely sure about is the &quot;current-&gt;localName() == htmlTag&quot; clause. That means that you&apos;re allowed to create a second head if you&apos;re inside an &lt;html&gt; element; would be good to test that to see if it&apos;s the behavior we want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33336</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-18 21:01:58 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; The bug is in HTMLParser::headCreateErrorCheck. That function should always
&gt; return false, and when it decides to create a head element it needs to store a
&gt; pointer to it in &quot;head&quot;.

What about HTMLParser::createHead() and the duplicate head-creation code under &quot;Step 2&quot; in HTMLParser::handleError()?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33428</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-19 17:50:11 -0800</bug_when>
    <thetext>With Darin&apos;s proposed fix:

bool HTMLParser::headCreateErrorCheck(Token* t, RefPtr&lt;NodeImpl&gt;&amp; result)
{
    if (!head || current-&gt;localName() == htmlTag) {
        head = new HTMLHeadElementImpl(document);
        result = head;
    }
    return false;
}

We must make sure that no more than one &lt;title&gt; and one &lt;base&gt; tag appear in the &lt;head&gt;.  (This is not the case if only the above change is made.)  Firefox 1.5 currently prevents multiple &lt;title&gt; tags, but it doesn&apos;t prevent multiple &lt;base&gt; tags.  I haven&apos;t surveyed MSIE 6 yet.

Regarding Comment #3, there seems like there might be a lot of unused code in the handleError() method, but I don&apos;t grok the HTML parser well enough (yet) to understand when all that code may be used.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33432</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-19 19:52:46 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; bool HTMLParser::headCreateErrorCheck(Token* t, RefPtr&lt;NodeImpl&gt;&amp; result)
&gt; {
&gt;     if (!head || current-&gt;localName() == htmlTag) {
&gt;         head = new HTMLHeadElementImpl(document);
&gt;         result = head;
&gt;     }
&gt;     return false;
&gt; }

This change also causes an HTML document like this to crash WebKit:

&lt;&lt;head&gt;&lt;style&gt;&lt;/style&gt;&lt;/head&gt;

I don&apos;t think this change will be quite as easy as Darin first expected.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33492</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-20 07:49:25 -0800</bug_when>
    <thetext>This fix won&apos;t crash with the test case from Comment #5, but it fails about 375 LayoutTests.  More investigation will be needed.  (I didn&apos;t try running LayoutTests after applying the change from Comment #5, yet.)

bool HTMLParser::headCreateErrorCheck(Token* t, RefPtr&lt;NodeImpl&gt;&amp; result)
{
    createHead();
    return false;
}

NOTE: The multiple &lt;title&gt; and &lt;base&gt; tags in &lt;head&gt; issue also occurs on Safari 2.0.3 on 10.4.5, so this isn&apos;t a regression.  I will file a new bug (or bugs) for this issue.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33494</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-20 08:00:06 -0800</bug_when>
    <thetext>Darin&apos;s fix causes a crash (see Comment #5) but only fails one LayoutTest:  editing/inserting/editing-empty-divs.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33754</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-22 22:25:25 -0800</bug_when>
    <thetext>I believe I have a fix for this.  Also had to modify HTMLParser::parseToken() so that &apos;head&apos; behaved the same way as &apos;map&apos; and &apos;form&apos;.

Need a test case, though.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33764</commentid>
    <comment_count>9</comment_count>
      <attachid>6676</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-23 05:58:49 -0800</bug_when>
    <thetext>Created attachment 6676
Patch v1

Patch v1.  Maciej commented on IRC that he wanted to see my next patch, so I&apos;m giving him first dibs on the review.  :)  I assume I&apos;ll get a review- because there is no layout test, but I&apos;m looking for feedback on the patch and on how to implement a layout test.

Regarding a layout test, it seems to me that a layoutTestController.dumpDOMTree() method would be really handy for a test like this.  Is this worth implementing, or is there a preferred method (such as JavaScript DOM inspection) to test that the DOM has but a single HEAD node?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33765</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-23 06:08:54 -0800</bug_when>
    <thetext>FWIW, the crashes I found from previous attempts at patches (Comment #5 and Comment #7) were because HTMLParser::parseToken() was not modified to set &quot;head = 0&quot;.  In those cases, the new head node was never inserted into the tree and subsequently caused a double-free error later in the parsing when an attempt was made to add a child node to it.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33767</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-23 07:19:01 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=6676) [edit]
&gt; Patch v1

I should also note that this patch passes all current layout tests as of r12944 (except for the ones that have known issues like some of the new http tests--failures are nearly identical to buildbot--and the timezone issue with fast/js/date-constructor).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33768</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-23 07:35:52 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Maciej commented on IRC that he wanted to see my next patch, so I&apos;m
&gt; giving him first dibs on the review.  :)  I assume I&apos;ll get a review- because
&gt; there is no layout test, but I&apos;m looking for feedback on the patch and on how
&gt; to implement a layout test.

The patch looks perfect to me.

And I also think it&apos;s straightforward enough that it doesn&apos;t need to be Maciej who reviews it.

&gt; Regarding a layout test, it seems to me that a
&gt; layoutTestController.dumpDOMTree() method would be really handy for a test like
&gt; this.  Is this worth implementing, or is there a preferred method (such as
&gt; JavaScript DOM inspection) to test that the DOM has but a single HEAD node?

It&apos;s very easy to find out how many &lt;head&gt; elements there are.

    document.getElementsByTagName(&quot;head&quot;).length()

So I don&apos;t think you need a new layoutTestController feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33772</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-23 08:42:58 -0800</bug_when>
    <thetext>Given the other code to special-case &lt;head&gt;, I&apos;d like to see layout tests that check all the different code paths. A great way to do that is to set a breakpoint on each one and make sure every one gets tickled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33782</commentid>
    <comment_count>14</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-23 10:49:34 -0800</bug_when>
    <thetext>I didn&apos;t mean I wanted to be the one to review necessarily, I just wanted to encourage you to send more patches. :-) The patch looks good to me too, marking r- for lack of test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33936</commentid>
    <comment_count>15</comment_count>
      <attachid>6721</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-02-24 22:42:48 -0800</bug_when>
    <thetext>Created attachment 6721
Patch v2

Changes since Patch v1:

- Added a test that uses an iframe to load various HTML documents that test each code path in htmlparser.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34022</commentid>
    <comment_count>16</comment_count>
      <attachid>6721</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-25 20:44:17 -0800</bug_when>
    <thetext>Comment on attachment 6721
Patch v2

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35479</commentid>
    <comment_count>17</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-03-07 20:29:59 -0800</bug_when>
    <thetext>Verified fixed as of r13202 (locally built).
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6676</attachid>
            <date>2006-02-23 05:58:49 -0800</date>
            <delta_ts>2006-02-24 22:42:48 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-7321-v1.diff</filename>
            <type>text/plain</type>
            <size>3002</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2VkaXRpbmctZW1wdHktZGl2cy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcv
ZWRpdGluZy1lbXB0eS1kaXZzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTI5NDQpCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9lZGl0aW5nLWVtcHR5LWRpdnMtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC04MCw0ICs4MCw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgN3gxOAogICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzogImMiCiAgICAgICAgIFJlbmRlckJs
b2NrIHtQfSBhdCAoMSwzNSkgc2l6ZSA3MDV4MAotY2FyZXQ6IHBvc2l0aW9uIDEgb2YgY2hpbGQg
MCB7VEVYVH0gb2YgY2hpbGQgMjEge0RJVn0gb2YgY2hpbGQgMyB7Qk9EWX0gb2YgY2hpbGQgMCB7
SFRNTH0gb2YgZG9jdW1lbnQKK2NhcmV0OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDAge1RFWFR9IG9m
IGNoaWxkIDIxIHtESVZ9IG9mIGNoaWxkIDIge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRv
Y3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjk0NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDA2LTAyLTIzICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBraWx6ZXIubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIC0gVGVzdCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4u
b3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxCisgICAgICAgIFJFR1JFU1NJT046IHN0eWxlIHRhZyBp
biBib2R5IGNhdXNlcyB0d28gaGVhZCBlbGVtZW50cyB0byBhcHBlYXIgaW4gdGhlIERPTQorCisg
ICAgICAgIEZJWE1FIChPT1BTISk6IE5lZWQgYSBsYXlvdXQgdGVzdCBmb3IgdGhpcyBidWcuCisK
KyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy9lZGl0aW5nLWVtcHR5LWRpdnMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICBDb3JyZWN0ZWQgPGh0bWw+IGNoaWxkIGluZGV4IGZvciA8Ym9keT4gc2lu
Y2UgdGhlIGRvY3VtZW50IHByZXZpb3VzbHkgaGFkCisgICAgICAgIHR3byA8aGVhZD4gbm9kZXMu
CisKIDIwMDYtMDItMjIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBueXBvcC5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9raHRtbC9odG1sL2h0bWxwYXJzZXIuY3Bw
CShyZXZpc2lvbiAxMjk0NCkKKysrIFdlYkNvcmUva2h0bWwvaHRtbC9odG1scGFyc2VyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjMxLDcgKzIzMSwxMCBAQCBQYXNzUmVmUHRyPE5vZGVJbXBsPiBI
VE1MUGFyc2VyOjpwYXJzZVRvCiAKICAgICAgICAgaWYgKGZvcm0gPT0gbikKICAgICAgICAgICAg
IGZvcm0gPSAwOwotICAgICAgICAKKworICAgICAgICBpZiAoaGVhZCA9PSBuKQorICAgICAgICAg
ICAgaGVhZCA9IDA7CisKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIHJldHVybiBuOwpA
QCAtNjA3LDcgKzYxMCwxMSBAQCBib29sIEhUTUxQYXJzZXI6OmNvbW1lbnRDcmVhdGVFcnJvckNo
ZWNrCiAKIGJvb2wgSFRNTFBhcnNlcjo6aGVhZENyZWF0ZUVycm9yQ2hlY2soVG9rZW4qIHQsIFJl
ZlB0cjxOb2RlSW1wbD4mIHJlc3VsdCkKIHsKLSAgICByZXR1cm4gKCFoZWFkIHx8IGN1cnJlbnQt
PmxvY2FsTmFtZSgpID09IGh0bWxUYWcpOworICAgIGlmICghaGVhZCB8fCBjdXJyZW50LT5sb2Nh
bE5hbWUoKSA9PSBodG1sVGFnKSB7CisgICAgICAgIGhlYWQgPSBuZXcgSFRNTEhlYWRFbGVtZW50
SW1wbChkb2N1bWVudCk7CisgICAgICAgIHJlc3VsdCA9IGhlYWQ7CisgICAgfQorICAgIHJldHVy
biBmYWxzZTsKIH0KIAogYm9vbCBIVE1MUGFyc2VyOjpib2R5Q3JlYXRlRXJyb3JDaGVjayhUb2tl
biogdCwgUmVmUHRyPE5vZGVJbXBsPiYgcmVzdWx0KQpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyOTQ0KQorKysgV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwNi0wMi0y
MyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAa2lsemVyLm5ldD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIEZpeCBmb3IgaHR0cDovL2J1Z3ppbGxh
Lm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxCisgICAgICAgIFJFR1JFU1NJT046
IHN0eWxlIHRhZyBpbiBib2R5IGNhdXNlcyB0d28gaGVhZCBlbGVtZW50cyB0byBhcHBlYXIgaW4g
dGhlIERPTQorCisgICAgICAgICoga2h0bWwvaHRtbC9odG1scGFyc2VyLmNwcDogSGFuZGxlIGhl
YWQgbm9kZSBsaWtlIGZvcm0gYW5kIG1hcCBub2Rlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
YXJzZXI6OnBhcnNlVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlcjo6aGVhZENy
ZWF0ZUVycm9yQ2hlY2spOgorCiAyMDA2LTAyLTIyICBFcmljIFNlaWRlbCAgPGVzZWlkZWxAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IGRhcmluLgo=
</data>
<flag name="review"
          id="1684"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6721</attachid>
            <date>2006-02-24 22:42:48 -0800</date>
            <delta_ts>2006-02-25 20:44:17 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-7321-v2.diff</filename>
            <type>text/plain</type>
            <size>8919</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2VkaXRpbmctZW1wdHktZGl2cy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcv
ZWRpdGluZy1lbXB0eS1kaXZzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTI5ODgpCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9lZGl0aW5nLWVtcHR5LWRpdnMtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC04MCw0ICs4MCw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAogICAgICAgICAgIFJlbmRlclRleHQge1RFWFR9IGF0ICgwLDApIHNpemUgN3gxOAogICAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNzogImMiCiAgICAgICAgIFJlbmRlckJs
b2NrIHtQfSBhdCAoMSwzNSkgc2l6ZSA3MDV4MAotY2FyZXQ6IHBvc2l0aW9uIDEgb2YgY2hpbGQg
MCB7VEVYVH0gb2YgY2hpbGQgMjEge0RJVn0gb2YgY2hpbGQgMyB7Qk9EWX0gb2YgY2hpbGQgMCB7
SFRNTH0gb2YgZG9jdW1lbnQKK2NhcmV0OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDAge1RFWFR9IG9m
IGNoaWxkIDIxIHtESVZ9IG9mIGNoaWxkIDIge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRv
Y3VtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjk4OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDA2LTAyLTI1ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBraWx6ZXIubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIC0gVGVzdHMgZm9yIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2lu
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMQorICAgICAgICBSRUdSRVNTSU9OOiBzdHlsZSB0YWcg
aW4gYm9keSBjYXVzZXMgdHdvIGhlYWQgZWxlbWVudHMgdG8gYXBwZWFyIGluIHRoZSBET00KKwor
ICAgICAgICBUaGUgaGVhZC1jaGVjay5odG1sIGRvY3VtZW50IHVzZXMgYW4gaWZyYW1lIGFzIGEg
bGFib3JhdG9yeSBmb3IgbG9hZGluZyBlYWNoCisgICAgICAgIGhlYWQtY2hlY2stTi5odG1sIGZp
bGUgYW5kIGNoZWNraW5nIGl0cyBET00sIHdpdGggaW5zcGlyYXRpb24gZnJvbSBJYW4gSGl4aWUn
cworICAgICAgICBMaXZlIERPTSBWaWV3ZXI6ICBodHRwOi8vc29mdHdhcmUuaGl4aWUuY2gvdXRp
bGl0aWVzL2pzL2xpdmUtZG9tLXZpZXdlci8KKworICAgICAgICBFYWNoIG9mIHRoZSBmb3VyIGhl
YWQtY2hlY2stTi5odG1sIGZpbGVzIHRlc3RzIGEgZGlmZmVyZW50IGNvZGUgcGF0aCBmb3IKKyAg
ICAgICAgY3JlYXRpbmcgYSBkb2N1bWVudCdzIGhlYWQgZWxlbWVudCBpbiBXZWJDb3JlL2todG1s
L2h0bWwvaHRtbHBhcnNlci5jcHAuCisKKyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy9lZGl0
aW5nLWVtcHR5LWRpdnMtZXhwZWN0ZWQudHh0OiBDb3JyZWN0ZWQgPGh0bWw+IGNoaWxkCisgICAg
ICAgIGluZGV4IGZvciA8Ym9keT4gc2luY2UgdGhlIGRvY3VtZW50IHByZXZpb3VzbHkgaGFkIHR3
byA8aGVhZD4gbm9kZXMuCisgICAgICAgICogZmFzdC9kb20vSFRNTEhlYWRFbGVtZW50OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MSGVhZEVsZW1lbnQvaGVhZC1jaGVjay1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9oZWFkLWNo
ZWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNv
dXJjZXM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNvdXJj
ZXMvaGVhZC1jaGVjay0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxIZWFk
RWxlbWVudC9yZXNvdXJjZXMvaGVhZC1jaGVjay0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNvdXJjZXMvaGVhZC1jaGVjay0zLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNvdXJjZXMvaGVhZC1jaGVj
ay00Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNv
dXJjZXMvaGVhZC1jaGVjay5qczogQWRkZWQuCisKIDIwMDYtMDItMjQgIEFudHRpIEtvaXZpc3Rv
ICA8a29pdmlzdG9AaWtpLmZpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEh5YXR0LgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEhlYWRFbGVtZW50L2hlYWQtY2hlY2suaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSGVhZEVsZW1lbnQvaGVhZC1jaGVj
ay5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEhlYWRFbGVt
ZW50L2hlYWQtY2hlY2suaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9oZWFkLWNoZWNrLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj4KK1RoaXMgdGVzdCBj
aGVja3Mgd2hldGhlciBvbmUgKGFuZCBvbmx5IG9uZSkgSEVBRCBlbGVtZW50IGlzIGNyZWF0ZWQg
Zm9yIHZhcmlvdXMgSFRNTCBkb2N1bWVudHMuCitTZWUgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxh
Lm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIxIj5CdWcgNzMyMTwvYT4KK1JFR1JF
U1NJT046IHN0eWxlIHRhZyBpbiBib2R5IGNhdXNlcyB0d28gaGVhZCBlbGVtZW50cyB0byBhcHBl
YXIgaW4gdGhlIERPTS4KKzwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlmcmFtZSBp
ZD0iaWZyYW1lIiBzcmM9ImRhdGE6dGV4dC9odG1sLCIgb25sb2FkPSJ0ZXN0QW5kTG9hZE5leHQo
KSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MSGVhZEVsZW1lbnQvaGVhZC1jaGVjay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEhlYWRFbGVtZW50L2hlYWQtY2hlY2stZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEhlYWRFbGVtZW50
L2hlYWQtY2hlY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACitU
aGlzIHRlc3QgY2hlY2tzIHdoZXRoZXIgb25lIChhbmQgb25seSBvbmUpIEhFQUQgZWxlbWVudCBp
cyBjcmVhdGVkIGZvciB2YXJpb3VzIEhUTUwgZG9jdW1lbnRzLiBTZWUgQnVnIDczMjEgUkVHUkVT
U0lPTjogc3R5bGUgdGFnIGluIGJvZHkgY2F1c2VzIHR3byBoZWFkIGVsZW1lbnRzIHRvIGFwcGVh
ciBpbiB0aGUgRE9NLgorCitUZXN0aW5nOiBoZWFkLWNoZWNrLTEuaHRtbAorUEFTUyBpZnJhbWUu
Y29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpLmxlbmd0
aCBpcyAxCitQQVNTIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmZpcnN0Q2hpbGQuZmly
c3RDaGlsZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIGlzICdoZWFkJworCitUZXN0aW5nOiBoZWFk
LWNoZWNrLTIuaHRtbAorUEFTUyBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgnaGVhZCcpLmxlbmd0aCBpcyAxCitQQVNTIGlmcmFtZS5jb250ZW50V2lu
ZG93LmRvY3VtZW50LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgp
IGlzICdoZWFkJworCitUZXN0aW5nOiBoZWFkLWNoZWNrLTMuaHRtbAorUEFTUyBpZnJhbWUuY29u
dGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpLmxlbmd0aCBp
cyAxCitQQVNTIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmZpcnN0Q2hpbGQuZmlyc3RD
aGlsZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIGlzICdoZWFkJworCitUZXN0aW5nOiBoZWFkLWNo
ZWNrLTQuaHRtbAorUEFTUyBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnaGVhZCcpLmxlbmd0aCBpcyAxCitQQVNTIGlmcmFtZS5jb250ZW50V2luZG93
LmRvY3VtZW50LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIGlz
ICdoZWFkJworCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxIZWFkRWxlbWVudC9yZXNvdXJjZXMvaGVhZC1jaGVjay0zLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEhlYWRFbGVtZW50L3Jlc291cmNlcy9oZWFkLWNoZWNr
LTMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxIZWFkRWxl
bWVudC9yZXNvdXJjZXMvaGVhZC1jaGVjay0zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEg
QEAKKzxodG1sPjxtZXRhPjwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxI
ZWFkRWxlbWVudC9yZXNvdXJjZXMvaGVhZC1jaGVjay00Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEhlYWRFbGVtZW50L3Jlc291cmNlcy9oZWFkLWNoZWNrLTQu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxIZWFkRWxlbWVu
dC9yZXNvdXJjZXMvaGVhZC1jaGVjay00Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAK
KzxodG1sPjxvYmplY3Q+PC9vYmplY3Q+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEhlYWRFbGVtZW50L3Jlc291cmNlcy9oZWFkLWNoZWNrLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNvdXJjZXMvaGVhZC1jaGVj
ay5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxIZWFkRWxlbWVu
dC9yZXNvdXJjZXMvaGVhZC1jaGVjay5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAor
dmFyIG1heFRlc3RzID0gNDsKK3ZhciBjdXJyZW50VGVzdCA9IDE7Cit2YXIgaWZyYW1lOworCitp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gdGVzdEFuZExvYWROZXh0
KCkgeworICAgIGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZnJhbWUiKTsKKyAg
ICBpZiAoaWZyYW1lLnNyYy5zdWJzdHJpbmcoMCwgNSkgPT0gImRhdGE6IikgeworICAgICAgICBp
ZnJhbWUuc3JjID0gInJlc291cmNlcy9oZWFkLWNoZWNrLSIgKyBjdXJyZW50VGVzdCArICIuaHRt
bCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZGVidWcoIlRlc3Rpbmc6ICIgKyBpZnJh
bWUuc3JjLnN1YnN0cmluZyhpZnJhbWUuc3JjLmxhc3RJbmRleE9mKCIvIikgKyAxKSk7CisgICAg
c2hvdWxkQmUoImlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdoZWFkJykubGVuZ3RoIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiaWZyYW1lLmNvbnRlbnRX
aW5kb3cuZG9jdW1lbnQuZmlyc3RDaGlsZC5maXJzdENoaWxkLm5vZGVOYW1lLnRvTG93ZXJDYXNl
KCkiLCAiJ2hlYWQnIik7CisgICAgZGVidWcoIiIpOworICAgIGlmIChjdXJyZW50VGVzdCA8IG1h
eFRlc3RzKSB7CisgICAgICAgIGN1cnJlbnRUZXN0Kys7CisgICAgICAgIGlmcmFtZS5zcmMgPSAi
ZGF0YTp0ZXh0L2h0bWwsIjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlmcmFtZS5zdHls
ZS5kaXNwbGF5ID0gIm5vbmUiOworICAgICAgICBkZWJ1ZygnPHNwYW4gY2xhc3M9InBhc3MiPlRF
U1QgQ09NUExFVEU8L3NwYW4+Jyk7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MSGVhZEVsZW1lbnQvcmVzb3VyY2VzL2hlYWQtY2hlY2stMS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNvdXJjZXMvaGVhZC1jaGVj
ay0xLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSGVhZEVs
ZW1lbnQvcmVzb3VyY2VzL2hlYWQtY2hlY2stMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
IEBACis8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PHN0eWxlPjwvc3R5bGU+PC9ib2R5PjwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNvdXJjZXMv
aGVhZC1jaGVjay0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEhlYWRFbGVtZW50L3Jlc291cmNlcy9oZWFkLWNoZWNrLTIuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxIZWFkRWxlbWVudC9yZXNvdXJjZXMvaGVhZC1jaGVj
ay0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKKzxodG1sPjxzdHlsZT48L3N0eWxl
PjwvaHRtbD4KSW5kZXg6IFdlYkNvcmUva2h0bWwvaHRtbC9odG1scGFyc2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2todG1sL2h0bWwvaHRtbHBhcnNlci5jcHAJKHJldmlzaW9uIDEyOTg4
KQorKysgV2ViQ29yZS9raHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMzEsNyArMjMxLDEwIEBAIFBhc3NSZWZQdHI8Tm9kZUltcGw+IEhUTUxQYXJzZXI6OnBhcnNl
VG8KIAogICAgICAgICBpZiAoZm9ybSA9PSBuKQogICAgICAgICAgICAgZm9ybSA9IDA7Ci0gICAg
ICAgIAorCisgICAgICAgIGlmIChoZWFkID09IG4pCisgICAgICAgICAgICBoZWFkID0gMDsKKwog
ICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcmV0dXJuIG47CkBAIC02MDcsNyArNjEwLDEx
IEBAIGJvb2wgSFRNTFBhcnNlcjo6Y29tbWVudENyZWF0ZUVycm9yQ2hlY2sKIAogYm9vbCBIVE1M
UGFyc2VyOjpoZWFkQ3JlYXRlRXJyb3JDaGVjayhUb2tlbiogdCwgUmVmUHRyPE5vZGVJbXBsPiYg
cmVzdWx0KQogewotICAgIHJldHVybiAoIWhlYWQgfHwgY3VycmVudC0+bG9jYWxOYW1lKCkgPT0g
aHRtbFRhZyk7CisgICAgaWYgKCFoZWFkIHx8IGN1cnJlbnQtPmxvY2FsTmFtZSgpID09IGh0bWxU
YWcpIHsKKyAgICAgICAgaGVhZCA9IG5ldyBIVE1MSGVhZEVsZW1lbnRJbXBsKGRvY3VtZW50KTsK
KyAgICAgICAgcmVzdWx0ID0gaGVhZDsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBi
b29sIEhUTUxQYXJzZXI6OmJvZHlDcmVhdGVFcnJvckNoZWNrKFRva2VuKiB0LCBSZWZQdHI8Tm9k
ZUltcGw+JiByZXN1bHQpCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI5ODgpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA2LTAyLTI1ICBEYXZpZCBLaWx6ZXIg
IDxkZGtpbHplckBraWx6ZXIubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gRml4IGZvciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcv
c2hvd19idWcuY2dpP2lkPTczMjEKKyAgICAgICAgUkVHUkVTU0lPTjogc3R5bGUgdGFnIGluIGJv
ZHkgY2F1c2VzIHR3byBoZWFkIGVsZW1lbnRzIHRvIGFwcGVhciBpbiB0aGUgRE9NCisKKyAgICAg
ICAgKiBraHRtbC9odG1sL2h0bWxwYXJzZXIuY3BwOiBIYW5kbGUgdGhlIGhlYWQgbm9kZSBsaWtl
IGZvcm0gYW5kIG1hcCBub2Rlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQYXJzZXI6OnBhcnNl
VG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBhcnNlcjo6aGVhZENyZWF0ZUVycm9yQ2hl
Y2spOgorCiAyMDA2LTAyLTI0ICBBbnR0aSBLb2l2aXN0byAgPGtvaXZpc3RvQGlraS5maT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4K
</data>
<flag name="review"
          id="1702"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>