<?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>130386</bug_id>
          
          <creation_ts>2014-03-17 23:39:33 -0700</creation_ts>
          <short_desc>AX: Bug in AccessibilityNodeObject::helpText</short_desc>
          <delta_ts>2014-04-10 10:09:55 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="James Craig">jcraig</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991561</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2014-03-17 23:39:33 -0700</bug_when>
    <thetext>Discovered by ch.dumez@samsung.com in Blink (Chromium) code: https://code.google.com/p/chromium/issues/detail?id=352771
The bug was introduced here: https://bugs.webkit.org/show_bug.cgi?id=99502

In this snippet, getAttribute should be curr-&gt;getAttribute.

1403    for (Node* curr = node(); curr; curr = curr-&gt;parentNode()) {
1404	        const AtomicString&amp; summary = getAttribute(summaryAttr);
1405	        if (!summary.isEmpty())
1406	            textOrder.append(AccessibilityText(summary, SummaryText));
1407	       
1408	        // The title attribute should be used as help text unless it is already being used as descriptive text.
1409	        const AtomicString&amp; title = getAttribute(titleAttr);
1410	        if (!title.isEmpty())
1411	            textOrder.append(AccessibilityText(title, TitleTagText));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991562</commentid>
    <comment_count>1</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-03-17 23:40:46 -0700</bug_when>
    <thetext>good catch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991798</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-03-18 12:41:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/16357555&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995797</commentid>
    <comment_count>3</comment_count>
      <attachid>228161</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-03-31 02:40:45 -0700</bug_when>
    <thetext>Created attachment 228161
patch

Might need some better examples in the test, and/or commented in the source. I can&apos;t really determine why we&apos;re ever getting helpText from the parentNode, so I&apos;m not sure this is an effective test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996333</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-04-01 10:06:08 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Discovered by ch.dumez@samsung.com in Blink (Chromium) code: https://code.google.com/p/chromium/issues/detail?id=352771
&gt; The bug was introduced here: https://bugs.webkit.org/show_bug.cgi?id=99502
&gt; 
&gt; In this snippet, getAttribute should be curr-&gt;getAttribute.
&gt; 
&gt; 1403    for (Node* curr = node(); curr; curr = curr-&gt;parentNode()) {
&gt; 1404            const AtomicString&amp; summary = getAttribute(summaryAttr);
&gt; 1405            if (!summary.isEmpty())
&gt; 1406                textOrder.append(AccessibilityText(summary, SummaryText));
&gt; 1407           
&gt; 1408            // The title attribute should be used as help text unless it is already being used as descriptive text.
&gt; 1409            const AtomicString&amp; title = getAttribute(titleAttr);
&gt; 1410            if (!title.isEmpty())
&gt; 1411                textOrder.append(AccessibilityText(title, TitleTagText));

(In reply to comment #3)
&gt; Created an attachment (id=228161) [details]
&gt; patch
&gt; 
&gt; Might need some better examples in the test, and/or commented in the source. I can&apos;t really determine why we&apos;re ever getting helpText from the parentNode, so I&apos;m not sure this is an effective test.

One thing that&apos;s held me up on this patch is whether we actually want to do this behavior. I am not completely sure we do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996560</commentid>
    <comment_count>5</comment_count>
      <attachid>228353</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-04-01 18:19:02 -0700</bug_when>
    <thetext>Created attachment 228353
patch

Okay, given that this clearly never worked and we don&apos;t know why it ever should, I&apos;m pulling out the loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996831</commentid>
    <comment_count>6</comment_count>
      <attachid>228353</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-04-02 13:49:56 -0700</bug_when>
    <thetext>Comment on attachment 228353
patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1397
&gt; +    Node* node = this-&gt;node();

I don&apos;t think you even need to get node anymore. i don&apos;t see it being used</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996927</commentid>
    <comment_count>7</comment_count>
      <attachid>228353</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-04-02 17:12:42 -0700</bug_when>
    <thetext>Comment on attachment 228353
patch

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

&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1397
&gt;&gt; +    Node* node = this-&gt;node();
&gt; 
&gt; I don&apos;t think you even need to get node anymore. i don&apos;t see it being used

It&apos;s used on the next few lines.

 1399    if (!node)
 1399        return;
 1400    if (node-&gt;isElementNode()) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996928</commentid>
    <comment_count>8</comment_count>
      <attachid>228353</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-04-02 17:13:44 -0700</bug_when>
    <thetext>Comment on attachment 228353
patch

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

&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1397
&gt;&gt;&gt; +    Node* node = this-&gt;node();
&gt;&gt; 
&gt;&gt; I don&apos;t think you even need to get node anymore. i don&apos;t see it being used
&gt; 
&gt; It&apos;s used on the next few lines.
&gt; 
&gt;  1399    if (!node)
&gt;  1399        return;
&gt;  1400    if (node-&gt;isElementNode()) {

but it doesn&apos;t seem like we need it after that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996934</commentid>
    <comment_count>9</comment_count>
      <attachid>228353</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-04-02 17:18:18 -0700</bug_when>
    <thetext>Comment on attachment 228353
patch

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

&gt;&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1397
&gt;&gt;&gt;&gt; +    Node* node = this-&gt;node();
&gt;&gt;&gt; 
&gt;&gt;&gt; I don&apos;t think you even need to get node anymore. i don&apos;t see it being used
&gt;&gt; 
&gt;&gt; It&apos;s used on the next few lines.
&gt;&gt; 
&gt;&gt;  1399    if (!node)
&gt;&gt;  1399        return;
&gt;&gt;  1400    if (node-&gt;isElementNode()) {
&gt; 
&gt; but it doesn&apos;t seem like we need it after that

I need it for the conditional. What change are you suggesting? Combining it all on one line like this?

if (this-&gt;() &amp;&amp; this-&gt;node-&gt;isElementNode()) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996935</commentid>
    <comment_count>10</comment_count>
      <attachid>228353</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-04-02 17:18:55 -0700</bug_when>
    <thetext>Comment on attachment 228353
patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1397
&gt;&gt;&gt;&gt;&gt; +    Node* node = this-&gt;node();
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; I don&apos;t think you even need to get node anymore. i don&apos;t see it being used
&gt;&gt;&gt; 
&gt;&gt;&gt; It&apos;s used on the next few lines.
&gt;&gt;&gt; 
&gt;&gt;&gt;  1399    if (!node)
&gt;&gt;&gt;  1399        return;
&gt;&gt;&gt;  1400    if (node-&gt;isElementNode()) {
&gt;&gt; 
&gt;&gt; but it doesn&apos;t seem like we need it after that
&gt; 
&gt; I need it for the conditional. What change are you suggesting? Combining it all on one line like this?
&gt; 
&gt; if (this-&gt;() &amp;&amp; this-&gt;node-&gt;isElementNode()) {

if (this-&gt;node() &amp;&amp; this-&gt;node()-&gt;isElementNode()) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998170</commentid>
    <comment_count>11</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-04-07 10:08:45 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 228353 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228353&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1397
&gt; &gt;&gt;&gt;&gt;&gt; +    Node* node = this-&gt;node();
&gt; &gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt; I don&apos;t think you even need to get node anymore. i don&apos;t see it being used
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; It&apos;s used on the next few lines.
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt;  1399    if (!node)
&gt; &gt;&gt;&gt;  1399        return;
&gt; &gt;&gt;&gt;  1400    if (node-&gt;isElementNode()) {
&gt; &gt;&gt; 
&gt; &gt;&gt; but it doesn&apos;t seem like we need it after that
&gt; &gt; 
&gt; &gt; I need it for the conditional. What change are you suggesting? Combining it all on one line like this?
&gt; &gt; 
&gt; &gt; if (this-&gt;() &amp;&amp; this-&gt;node-&gt;isElementNode()) {
&gt; 
&gt; if (this-&gt;node() &amp;&amp; this-&gt;node()-&gt;isElementNode()) {

Yea it looks like we don&apos;t need  this anymore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998350</commentid>
    <comment_count>12</comment_count>
      <attachid>228353</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-04-07 18:34:10 -0700</bug_when>
    <thetext>Comment on attachment 228353
patch

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

&gt;&gt;&gt;&gt;&gt;&gt;&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:1397
&gt;&gt;&gt;&gt;&gt;&gt;&gt; +    Node* node = this-&gt;node();
&gt;&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt;&gt; I don&apos;t think you even need to get node anymore. i don&apos;t see it being used
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt; It&apos;s used on the next few lines.
&gt;&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt;&gt;  1399    if (!node)
&gt;&gt;&gt;&gt;&gt;  1399        return;
&gt;&gt;&gt;&gt;&gt;  1400    if (node-&gt;isElementNode()) {
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; but it doesn&apos;t seem like we need it after that
&gt;&gt;&gt; 
&gt;&gt;&gt; I need it for the conditional. What change are you suggesting? Combining it all on one line like this?
&gt;&gt;&gt; 
&gt;&gt;&gt; if (this-&gt;() &amp;&amp; this-&gt;node-&gt;isElementNode()) {
&gt;&gt; 
&gt;&gt; if (this-&gt;node() &amp;&amp; this-&gt;node()-&gt;isElementNode()) {
&gt; 
&gt; Yea it looks like we don&apos;t need  this anymore

Don&apos;t we want to ensure the node exists and is an element node before attempting to to call these attribute methods on it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999112</commentid>
    <comment_count>13</comment_count>
      <attachid>228945</attachid>
    <who name="James Craig">jcraig</who>
    <bug_when>2014-04-08 23:35:08 -0700</bug_when>
    <thetext>Created attachment 228945
patch with review feedback

Stylistic change based on review feedback. Avoids extra conditional here (and simplifies code) for the element case even if it causes slightly more execution (conditionals embedded in getAttribute, etc) in the less common, non-element case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999353</commentid>
    <comment_count>14</comment_count>
      <attachid>228945</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-04-09 16:48:37 -0700</bug_when>
    <thetext>Comment on attachment 228945
patch with review feedback

thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999363</commentid>
    <comment_count>15</comment_count>
      <attachid>228945</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-09 17:19:16 -0700</bug_when>
    <thetext>Comment on attachment 228945
patch with review feedback

Clearing flags on attachment: 228945

Committed r167054: &lt;http://trac.webkit.org/changeset/167054&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999364</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-09 17:19:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999554</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-04-10 10:05:21 -0700</bug_when>
    <thetext>The test accessibility/help-text.html introduced here by r167054 is failing on platform GTK ( see bug #131496 )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999556</commentid>
    <comment_count>18</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-04-10 10:09:55 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; The test accessibility/help-text.html introduced here by r167054 is failing on platform GTK ( see bug #131496 )

Maybe we need a GTK expectation file for differences?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228161</attachid>
            <date>2014-03-31 02:40:45 -0700</date>
            <delta_ts>2014-04-01 18:19:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>webkit130386.diff</filename>
            <type>text/plain</type>
            <size>7212</size>
            <attacher name="James Craig">jcraig</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjQ4OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE0LTAzLTMxICBKYW1lcyBD
cmFpZyAgPGpjcmFpZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEJ1ZyBpbiBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aGVscFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMDM4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwKKworICAg
ICAgICBBbmNlc3RvciBsb29wIHdhcyBhbHdheXMgY2hlY2tpbmcgYXR0cmlidXRlIG9mIG9yaWdp
bmFsIG5vZGUgcmF0aGVyIHRoYW4gY3VycmVudCBub2RlLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aGVscFRleHQpOgorCiAyMDE0LTAzLTI4ICBTZXJnaW8gVmls
bGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlcGxhY2UgREVQUkVD
QVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMIGJ5IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUPiBpbiBs
b2FkZXIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCShyZXZpc2lvbiAxNjY0ODIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQwNCwxMiArMTQwNCwxMiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0OjpoZWxwVGV4dChWCiAgICAgCiAgICAgLy8gQWRkIGhlbHAgdHlwZSB0ZXh0IHRoYXQgaXMg
ZGVyaXZlZCBmcm9tIGFuY2VzdG9ycy4KICAgICBmb3IgKE5vZGUqIGN1cnIgPSBub2RlKCk7IGN1
cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnROb2RlKCkpIHsKLSAgICAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBzdW1tYXJ5ID0gZ2V0QXR0cmlidXRlKHN1bW1hcnlBdHRyKTsKKyAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBzdW1tYXJ5ID0gY3Vyci0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50
KGN1cnIpLT5nZXRBdHRyaWJ1dGUoc3VtbWFyeUF0dHIpIDogbnVsbEF0b207CiAgICAgICAgIGlm
ICghc3VtbWFyeS5pc0VtcHR5KCkpCiAgICAgICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFjY2Vz
c2liaWxpdHlUZXh0KHN1bW1hcnksIFN1bW1hcnlUZXh0KSk7CiAgICAgICAgIAogICAgICAgICAv
LyBUaGUgdGl0bGUgYXR0cmlidXRlIHNob3VsZCBiZSB1c2VkIGFzIGhlbHAgdGV4dCB1bmxlc3Mg
aXQgaXMgYWxyZWFkeSBiZWluZyB1c2VkIGFzIGRlc2NyaXB0aXZlIHRleHQuCi0gICAgICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgdGl0bGUgPSBnZXRBdHRyaWJ1dGUodGl0bGVBdHRyKTsKKyAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiB0aXRsZSA9IGN1cnItPmlzRWxlbWVudE5vZGUoKSA/IHRv
RWxlbWVudChjdXJyKS0+Z2V0QXR0cmlidXRlKHRpdGxlQXR0cikgOiBudWxsQXRvbTsKICAgICAg
ICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFj
Y2Vzc2liaWxpdHlUZXh0KHRpdGxlLCBUaXRsZVRhZ1RleHQpKTsKICAgICAgICAgCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjY0ODgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMy0zMSAgSmFtZXMgQ3JhaWcgIDxqY3JhaWdAYXBw
bGUuY29tPgorCisgICAgICAgIEFYOiBCdWcgaW4gQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omhl
bHBUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzAzODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0cyBhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBpbiBhIHZhcmlldHkgb2YgZXhhbXBsZXMuCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWw6IEFkZGVkLgorCiAyMDE0LTAz
LTMwICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAg
TW92ZSB0ZXN0IGNhc2VzIG9mIG5hdmlnYXRvciBjb250ZW50IHV0aWxzIGluIG93biBkaXJlY3Rv
cnkKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hlbHAt
dGV4dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorVGVzdHMg
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgaW4gYSB2YXJpZXR5IG9mIGV4YW1wbGVzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUzogSGVscCB0ZXh0IGZvciA8YT4gaXMgIiIK
K1BBU1M6IEhlbHAgdGV4dCBmb3IgPGE+IGlzICJiYXIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxh
PiBpcyAiYmF6IgorUEFTUzogSGVscCB0ZXh0IGZvciA8YT4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4
dCBmb3IgPGgxPiBpcyAiYmFyIgorUEFTUzogSGVscCB0ZXh0IGZvciA8YT4gaXMgIiIKK1BBU1M6
IEhlbHAgdGV4dCBmb3IgPGJ1dHRvbj4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGJ1dHRv
bj4gaXMgImJhciIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGJ1dHRvbj4gaXMgImJheiIKK1BBU1M6
IEhlbHAgdGV4dCBmb3IgPGJ1dHRvbj4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPHRhYmxl
PiBpcyAidGFibGUgc3VtbWFyeSIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGlucHV0PiBpcyAiIgor
UEFTUzogSGVscCB0ZXh0IGZvciA8ZGl2PiBpcyAiIgorUEFTUzogSGVscCB0ZXh0IGZvciA8bWFp
bj4gaXMgImJhciIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGJ1dHRvbj4gaXMgIiIKK1BBU1M6IEhl
bHAgdGV4dCBmb3IgPG1haW4+IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxkaXY+IGlzICIi
CitQQVNTOiBIZWxwIHRleHQgZm9yIDxhPiBpcyAiYmFyIgorUEFTUzogSGVscCB0ZXh0IGZvciA8
ZGl2PiBpcyAiIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oZWxwLXRleHQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorCis8ZGl2IGlkPSJleGFtcGxlcyI+CisKKyAgICA8YSBjbGFzcz0iZXgiIGhyZWY9IiMiIGRh
dGEtZXhwZWN0ZWQ9IiI+Zm9vPC9hPgorICAgIDxhIGNsYXNzPSJleCIgaHJlZj0iIyIgdGl0bGU9
ImJhciIgZGF0YS1leHBlY3RlZD0iYmFyIj5mb288L2E+CisgICAgPGEgY2xhc3M9ImV4IiBocmVm
PSIjIiB0aXRsZT0iYmFyIiBhcmlhLWhlbHA9ImJheiIgZGF0YS1leHBlY3RlZD0iYmF6Ij5mb288
L2E+CisgICAgPGEgY2xhc3M9ImV4IiBocmVmPSIjIiB0aXRsZT0iZm9vIiBkYXRhLWV4cGVjdGVk
PSIiPjwhLS0gbm8gY29udGVudHMsIHNvIEB0aXRsZSB1c2VkIGFzIGxhYmVsLCBub3QgaGVscCAt
LT48L2E+CisgICAgCisgICAgPGgxIGNsYXNzPSJleCIgdGl0bGU9ImJhciIgZGF0YS1leHBlY3Rl
ZD0iYmFyIj48YSBjbGFzcz0iZXgiIGhyZWY9IiMiIGRhdGEtZXhwZWN0ZWQ9IiI+Zm9vPC9hPjwv
aDE+CisKKyAgICA8YnV0dG9uIGNsYXNzPSJleCIgZGF0YS1leHBlY3RlZD0iIj5mb288L2J1dHRv
bj4KKyAgICA8YnV0dG9uIGNsYXNzPSJleCIgdGl0bGU9ImJhciIgZGF0YS1leHBlY3RlZD0iYmFy
Ij5mb288L2J1dHRvbj4KKyAgICA8YnV0dG9uIGNsYXNzPSJleCIgdGl0bGU9ImJhciIgYXJpYS1o
ZWxwPSJiYXoiIGRhdGEtZXhwZWN0ZWQ9ImJheiI+Zm9vPC9idXR0b24+CisgICAgPGJ1dHRvbiBj
bGFzcz0iZXgiIHRpdGxlPSJmb28iIGRhdGEtZXhwZWN0ZWQ9IiI+PCEtLSBubyBjb250ZW50cywg
c28gQHRpdGxlIHVzZWQgYXMgbGFiZWwsIG5vdCBoZWxwIC0tPjwvYnV0dG9uPgorCisgICAgPHRh
YmxlIGNsYXNzPSJleCIgc3VtbWFyeT0idGFibGUgc3VtbWFyeSIgZGF0YS1leHBlY3RlZD0idGFi
bGUgc3VtbWFyeSI+CisgICAgICAgIDxjYXB0aW9uIGNsYXNzPSJleCIgZGF0YS1leHBlY3RlZD0i
Ij5jYXB0aW9uPC9jYXB0aW9uPgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQ+CisgICAg
ICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJleCIgdHlwZT0iY2hlY2tib3giIGRhdGEtZXhwZWN0
ZWQ9IiI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9InRleHQiIGRhdGEt
ZXhwZWN0ZWQ9IiI+dGV4dDwvZGl2PgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4K
KyAgICA8L3RhYmxlPgorCisgICAgPG1haW4gY2xhc3M9ImV4IiBhcmlhLWhlbHA9ImJhciIgZGF0
YS1leHBlY3RlZD0iYmFyIj4KKyAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZXgiIGRhdGEtZXhwZWN0
ZWQ9IiI+Zm9vPC9idXR0b24+CisgICAgPC9tYWluPgorCisgICAgPG1haW4gY2xhc3M9ImV4IiBy
b2xlPSJncm91cCIgdGl0bGU9ImJhciIgZGF0YS1leHBlY3RlZD0iIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iZXgiIHJvbGU9Imdyb3VwIiBkYXRhLWV4cGVjdGVkPSIiPmZvbzwvZGl2PgorICAgIDwv
bWFpbj4KKworICAgIDxhIGhyZWY9IiIgY2xhc3M9ImV4IiB0aXRsZT0iYmFyIiBkYXRhLWV4cGVj
dGVkPSJiYXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJleCIgZGF0YS1leHBlY3RlZD0iIj5mb288
L2Rpdj4KKyAgICA8L2E+CisKKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisgICAgICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyBhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBpbiBhIHZhcmlldHkgb2Yg
ZXhhbXBsZXMuIik7CisKKyAgICAgICAgdmFyIGV4YW1wbGVzID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiI2V4YW1wbGVzIC5leCIpOworICAgICAgICBmb3IgKHZhciBpID0gMCwgYyA9IGV4
YW1wbGVzLmxlbmd0aDsgaSA8IGM7IGkrKykgeworICAgICAgICAgICAgdmFyIGVsID0gZXhhbXBs
ZXNbaV07CisgICAgICAgICAgICBpZiAoIWVsKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgdmFyIGV4cGVjdGF0aW9uID0gZWwuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVj
dGVkIik7CisgICAgICAgICAgICB2YXIgaWQgPSBlbC5pZDsKKyAgICAgICAgICAgIHZhciB0YWcg
PSBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICBpZiAoIWlkKQorICAgICAg
ICAgICAgICAgIGVsLmlkID0gaWQgPSAiZ2VuZXJhdGVkSWRfIiArIGk7CisgICAgICAgICAgICB2
YXIgYXggPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoaWQp
OworICAgICAgICAgICAgaWYgKCFheCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgIHZhciBvdXRwdXQgPSBheC5oZWxwVGV4dC5yZXBsYWNlKCJBWEhlbHA6ICIsICIiKTsK
KyAgICAgICAgICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpOworICAgICAgICAgICAgaWYgKGV4cGVjdGF0aW9uID09PSBvdXRwdXQpCisgICAgICAgICAg
ICAgICAgcmVzdWx0LnRleHRDb250ZW50ICs9ICJQQVNTOiBIZWxwIHRleHQgZm9yIDwiICsgdGFn
ICsiPiBpcyBcIiIgKyBvdXRwdXQgKyAiXCJcbiI7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ICs9ICJGQUlMOiBIZWxwIHRleHQgZm9yIDwiICsg
dGFnICsiPiBpcyBcIiIgKyBvdXRwdXQgKyAiXCIgYnV0IGV4cGVjdGVkIFwiIiArIGV4cGVjdGF0
aW9uICsgIlwiXG4iOworICAgICAgICB9CisKKyAgICAgICAgLy8gT25jZSB0ZXN0cyBhcmUgY29t
cGxldGUsIGhpZGUgYWxsIHRoZSBleGFtcGxlIG1hcmt1cC4KKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImV4YW1wbGVzIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKworICAgIH0K
KworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228353</attachid>
            <date>2014-04-01 18:19:02 -0700</date>
            <delta_ts>2014-04-08 23:35:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>webkit130386.diff</filename>
            <type>text/plain</type>
            <size>8289</size>
            <attacher name="James Craig">jcraig</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NjU1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE0LTA0LTAxICBKYW1lcyBD
cmFpZyAgPGpjcmFpZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEJ1ZyBpbiBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aGVscFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMDM4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwKKworICAg
ICAgICBBbmNlc3RvciBsb29wIHdhcyBhbHdheXMgY2hlY2tpbmcgYXR0cmlidXRlIG9mIG9yaWdp
bmFsIG5vZGUgcmF0aGVyIHRoYW4gY3VycmVudCBub2RlLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aGVscFRleHQpOgorCiAyMDE0LTAzLTMxICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoZXMgaW4gUGFnZUNvbnNv
bGU6OmFkZE1lc3NhZ2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCShyZXZpc2lvbiAxNjY1NTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTM5NCwzNCArMTM5NCwyNyBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0Ojp2aXNpYmxlVGV4CiAKIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmhlbHBUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcmRlcikgY29uc3QKIHsK
LSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyaWFIZWxwID0gZ2V0QXR0cmlidXRlKGFyaWFfaGVs
cEF0dHIpOwotICAgIGlmICghYXJpYUhlbHAuaXNFbXB0eSgpKQotICAgICAgICB0ZXh0T3JkZXIu
YXBwZW5kKEFjY2Vzc2liaWxpdHlUZXh0KGFyaWFIZWxwLCBIZWxwVGV4dCkpOwotICAgIAotICAg
IFN0cmluZyBkZXNjcmliZWRCeSA9IGFyaWFEZXNjcmliZWRCeUF0dHJpYnV0ZSgpOwotICAgIGlm
ICghZGVzY3JpYmVkQnkuaXNFbXB0eSgpKQotICAgICAgICB0ZXh0T3JkZXIuYXBwZW5kKEFjY2Vz
c2liaWxpdHlUZXh0KGRlc2NyaWJlZEJ5LCBTdW1tYXJ5VGV4dCkpOwotICAgIAotICAgIC8vIEFk
ZCBoZWxwIHR5cGUgdGV4dCB0aGF0IGlzIGRlcml2ZWQgZnJvbSBhbmNlc3RvcnMuCi0gICAgZm9y
IChOb2RlKiBjdXJyID0gbm9kZSgpOyBjdXJyOyBjdXJyID0gY3Vyci0+cGFyZW50Tm9kZSgpKSB7
CisgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgYXJpYUhlbHAgPSBnZXRBdHRyaWJ1dGUoYXJpYV9oZWxwQXR0cik7Cisg
ICAgICAgIGlmICghYXJpYUhlbHAuaXNFbXB0eSgpKQorICAgICAgICAgICAgdGV4dE9yZGVyLmFw
cGVuZChBY2Nlc3NpYmlsaXR5VGV4dChhcmlhSGVscCwgSGVscFRleHQpKTsKKworICAgICAgICBT
dHJpbmcgZGVzY3JpYmVkQnkgPSBhcmlhRGVzY3JpYmVkQnlBdHRyaWJ1dGUoKTsKKyAgICAgICAg
aWYgKCFkZXNjcmliZWRCeS5pc0VtcHR5KCkpCisgICAgICAgICAgICB0ZXh0T3JkZXIuYXBwZW5k
KEFjY2Vzc2liaWxpdHlUZXh0KGRlc2NyaWJlZEJ5LCBTdW1tYXJ5VGV4dCkpOworCisgICAgICAg
IC8vIFN1bW1hcnkgYXR0cmlidXRlIHVzZWQgYXMgaGVscCB0ZXh0IG9uIHRhYmxlcy4KICAgICAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBzdW1tYXJ5ID0gZ2V0QXR0cmlidXRlKHN1bW1hcnlBdHRy
KTsKICAgICAgICAgaWYgKCFzdW1tYXJ5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIHRleHRPcmRl
ci5hcHBlbmQoQWNjZXNzaWJpbGl0eVRleHQoc3VtbWFyeSwgU3VtbWFyeVRleHQpKTsKLSAgICAg
ICAgCisKICAgICAgICAgLy8gVGhlIHRpdGxlIGF0dHJpYnV0ZSBzaG91bGQgYmUgdXNlZCBhcyBo
ZWxwIHRleHQgdW5sZXNzIGl0IGlzIGFscmVhZHkgYmVpbmcgdXNlZCBhcyBkZXNjcmlwdGl2ZSB0
ZXh0LgogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHRpdGxlID0gZ2V0QXR0cmlidXRlKHRp
dGxlQXR0cik7CiAgICAgICAgIGlmICghdGl0bGUuaXNFbXB0eSgpKQogICAgICAgICAgICAgdGV4
dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4dCh0aXRsZSwgVGl0bGVUYWdUZXh0KSk7Ci0g
ICAgICAgIAotICAgICAgICAvLyBPbmx5IHRha2UgaGVscCB0ZXh0IGZyb20gYW4gYW5jZXN0b3Ig
ZWxlbWVudCBpZiBpdHMgYSBncm91cCBvciBhbiB1bmtub3duIHJvbGUuIElmIGhlbHAgd2FzCi0g
ICAgICAgIC8vIGFkZGVkIHRvIHRob3NlIGtpbmRzIG9mIGVsZW1lbnRzLCBpdCBpcyBsaWtlbHkg
aXQgd2FzIG1lYW50IGZvciBhIGNoaWxkIGVsZW1lbnQuCi0gICAgICAgIEFjY2Vzc2liaWxpdHlP
YmplY3QqIGF4T2JqID0gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShjdXJyKTsKLSAgICAg
ICAgaWYgKCFheE9iaikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIEFj
Y2Vzc2liaWxpdHlSb2xlIHJvbGUgPSBheE9iai0+cm9sZVZhbHVlKCk7Ci0gICAgICAgIGlmIChy
b2xlICE9IEdyb3VwUm9sZSAmJiByb2xlICE9IFVua25vd25Sb2xlKQotICAgICAgICAgICAgYnJl
YWs7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjY1NTcpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wNC0wMSAg
SmFtZXMgQ3JhaWcgIDxqY3JhaWdAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBCdWcgaW4gQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmhlbHBUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAzODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBpbiBh
IHZhcmlldHkgb2YgZXhhbXBsZXMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2hlbHAtdGV4
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaGVscC10ZXh0
Lmh0bWw6IEFkZGVkLgorCiAyMDE0LTAzLTMxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIENyYXNoZXMgaW4gUGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2UKSW5k
ZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorVGVzdHMgYWNjZXNz
aWJpbGl0eSBoZWxwIHRleHQgaW4gYSB2YXJpZXR5IG9mIGV4YW1wbGVzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUzogSGVscCB0ZXh0IGZvciA8YT4gaXMgIiIKK1BBU1M6
IEhlbHAgdGV4dCBmb3IgPGE+IGlzICJiYXIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxhPiBpcyAi
YmF6IgorUEFTUzogSGVscCB0ZXh0IGZvciA8YT4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3Ig
PGgxPiBpcyAiYmFyIgorUEFTUzogSGVscCB0ZXh0IGZvciA8YT4gaXMgIiIKK1BBU1M6IEhlbHAg
dGV4dCBmb3IgPGJ1dHRvbj4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGJ1dHRvbj4gaXMg
ImJhciIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGJ1dHRvbj4gaXMgImJheiIKK1BBU1M6IEhlbHAg
dGV4dCBmb3IgPGJ1dHRvbj4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPHRhYmxlPiBpcyAi
dGFibGUgc3VtbWFyeSIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGlucHV0PiBpcyAiIgorUEFTUzog
SGVscCB0ZXh0IGZvciA8ZGl2PiBpcyAiIgorUEFTUzogSGVscCB0ZXh0IGZvciA8bWFpbj4gaXMg
ImJhciIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGJ1dHRvbj4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4
dCBmb3IgPG1haW4+IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxkaXY+IGlzICIiCitQQVNT
OiBIZWxwIHRleHQgZm9yIDxhPiBpcyAiYmFyIgorUEFTUzogSGVscCB0ZXh0IGZvciA8ZGl2PiBp
cyAiIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oZWxwLXRleHQuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw4NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8
ZGl2IGlkPSJleGFtcGxlcyI+CisKKyAgICA8YSBjbGFzcz0iZXgiIGhyZWY9IiMiIGRhdGEtZXhw
ZWN0ZWQ9IiI+Zm9vPC9hPgorICAgIDxhIGNsYXNzPSJleCIgaHJlZj0iIyIgdGl0bGU9ImJhciIg
ZGF0YS1leHBlY3RlZD0iYmFyIj5mb288L2E+CisgICAgPGEgY2xhc3M9ImV4IiBocmVmPSIjIiB0
aXRsZT0iYmFyIiBhcmlhLWhlbHA9ImJheiIgZGF0YS1leHBlY3RlZD0iYmF6Ij5mb288L2E+Cisg
ICAgPGEgY2xhc3M9ImV4IiBocmVmPSIjIiB0aXRsZT0iZm9vIiBkYXRhLWV4cGVjdGVkPSIiPjwh
LS0gbm8gY29udGVudHMsIHNvIEB0aXRsZSB1c2VkIGFzIGxhYmVsLCBub3QgaGVscCAtLT48L2E+
CisgICAgCisgICAgPGgxIGNsYXNzPSJleCIgdGl0bGU9ImJhciIgZGF0YS1leHBlY3RlZD0iYmFy
Ij48YSBjbGFzcz0iZXgiIGhyZWY9IiMiIGRhdGEtZXhwZWN0ZWQ9IiI+Zm9vPC9hPjwvaDE+CisK
KyAgICA8YnV0dG9uIGNsYXNzPSJleCIgZGF0YS1leHBlY3RlZD0iIj5mb288L2J1dHRvbj4KKyAg
ICA8YnV0dG9uIGNsYXNzPSJleCIgdGl0bGU9ImJhciIgZGF0YS1leHBlY3RlZD0iYmFyIj5mb288
L2J1dHRvbj4KKyAgICA8YnV0dG9uIGNsYXNzPSJleCIgdGl0bGU9ImJhciIgYXJpYS1oZWxwPSJi
YXoiIGRhdGEtZXhwZWN0ZWQ9ImJheiI+Zm9vPC9idXR0b24+CisgICAgPGJ1dHRvbiBjbGFzcz0i
ZXgiIHRpdGxlPSJmb28iIGRhdGEtZXhwZWN0ZWQ9IiI+PCEtLSBubyBjb250ZW50cywgc28gQHRp
dGxlIHVzZWQgYXMgbGFiZWwsIG5vdCBoZWxwIC0tPjwvYnV0dG9uPgorCisgICAgPHRhYmxlIGNs
YXNzPSJleCIgc3VtbWFyeT0idGFibGUgc3VtbWFyeSIgZGF0YS1leHBlY3RlZD0idGFibGUgc3Vt
bWFyeSI+CisgICAgICAgIDxjYXB0aW9uIGNsYXNzPSJleCIgZGF0YS1leHBlY3RlZD0iIj5jYXB0
aW9uPC9jYXB0aW9uPgorICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQ+CisgICAgICAgICAg
ICAgICAgPGlucHV0IGNsYXNzPSJleCIgdHlwZT0iY2hlY2tib3giIGRhdGEtZXhwZWN0ZWQ9IiI+
CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9InRleHQiIGRhdGEtZXhwZWN0
ZWQ9IiI+dGV4dDwvZGl2PgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICA8
L3RhYmxlPgorCisgICAgPG1haW4gY2xhc3M9ImV4IiBhcmlhLWhlbHA9ImJhciIgZGF0YS1leHBl
Y3RlZD0iYmFyIj4KKyAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZXgiIGRhdGEtZXhwZWN0ZWQ9IiI+
Zm9vPC9idXR0b24+CisgICAgPC9tYWluPgorCisgICAgPG1haW4gY2xhc3M9ImV4IiByb2xlPSJn
cm91cCIgdGl0bGU9ImJhciIgZGF0YS1leHBlY3RlZD0iIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
ZXgiIHJvbGU9Imdyb3VwIiBkYXRhLWV4cGVjdGVkPSIiPmZvbzwvZGl2PgorICAgIDwvbWFpbj4K
KworICAgIDxhIGhyZWY9IiIgY2xhc3M9ImV4IiB0aXRsZT0iYmFyIiBkYXRhLWV4cGVjdGVkPSJi
YXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJleCIgZGF0YS1leHBlY3RlZD0iIj5mb288L2Rpdj4K
KyAgICA8L2E+CisKKzwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisgICAgICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyBhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBpbiBhIHZhcmlldHkgb2YgZXhhbXBs
ZXMuIik7CisKKyAgICAgICAgdmFyIGV4YW1wbGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiI2V4YW1wbGVzIC5leCIpOworICAgICAgICBmb3IgKHZhciBpID0gMCwgYyA9IGV4YW1wbGVz
Lmxlbmd0aDsgaSA8IGM7IGkrKykgeworICAgICAgICAgICAgdmFyIGVsID0gZXhhbXBsZXNbaV07
CisgICAgICAgICAgICBpZiAoIWVsKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgdmFyIGV4cGVjdGF0aW9uID0gZWwuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkIik7
CisgICAgICAgICAgICB2YXIgaWQgPSBlbC5pZDsKKyAgICAgICAgICAgIHZhciB0YWcgPSBlbC50
YWdOYW1lLnRvTG93ZXJDYXNlKCk7CisgICAgICAgICAgICBpZiAoIWlkKQorICAgICAgICAgICAg
ICAgIGVsLmlkID0gaWQgPSAiZ2VuZXJhdGVkSWRfIiArIGk7CisgICAgICAgICAgICB2YXIgYXgg
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoaWQpOworICAg
ICAgICAgICAgaWYgKCFheCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IHZhciBvdXRwdXQgPSBheC5oZWxwVGV4dC5yZXBsYWNlKCJBWEhlbHA6ICIsICIiKTsKKyAgICAg
ICAgICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOwor
ICAgICAgICAgICAgaWYgKGV4cGVjdGF0aW9uID09PSBvdXRwdXQpCisgICAgICAgICAgICAgICAg
cmVzdWx0LnRleHRDb250ZW50ICs9ICJQQVNTOiBIZWxwIHRleHQgZm9yIDwiICsgdGFnICsiPiBp
cyBcIiIgKyBvdXRwdXQgKyAiXCJcbiI7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgcmVzdWx0LnRleHRDb250ZW50ICs9ICJGQUlMOiBIZWxwIHRleHQgZm9yIDwiICsgdGFnICsi
PiBpcyBcIiIgKyBvdXRwdXQgKyAiXCIgYnV0IGV4cGVjdGVkIFwiIiArIGV4cGVjdGF0aW9uICsg
IlwiXG4iOworICAgICAgICB9CisKKyAgICAgICAgLy8gT25jZSB0ZXN0cyBhcmUgY29tcGxldGUs
IGhpZGUgYWxsIHRoZSBleGFtcGxlIG1hcmt1cC4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImV4YW1wbGVzIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKworICAgIH0KKworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="252641"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
    <flag name="commit-queue"
          id="252642"
          type_id="3"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228945</attachid>
            <date>2014-04-08 23:35:08 -0700</date>
            <delta_ts>2014-04-09 17:19:16 -0700</delta_ts>
            <desc>patch with review feedback</desc>
            <filename>webkit130386.diff</filename>
            <type>text/plain</type>
            <size>8101</size>
            <attacher name="James Craig">jcraig</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Njk3NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE0LTA0LTA4ICBKYW1lcyBD
cmFpZyAgPGpjcmFpZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEJ1ZyBpbiBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aGVscFRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMDM4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwKKworICAg
ICAgICBBbmNlc3RvciBsb29wIHdhcyBhbHdheXMgY2hlY2tpbmcgYXR0cmlidXRlIG9mIG9yaWdp
bmFsIG5vZGUgcmF0aGVyIHRoYW4gY3VycmVudCBub2RlLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aGVscFRleHQpOgorCiAyMDE0LTA0LTA4ICBFbnJpY2EgQ2Fz
dWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBpT1MgYnVpbGQg
Zml4LgpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAJKHJldmlzaW9uIDE2Njk3NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDAxLDI4ICsxNDAxLDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmhlbHBUZXh0KFYKICAgICBTdHJpbmcgZGVzY3JpYmVkQnkgPSBhcmlhRGVzY3JpYmVkQnlB
dHRyaWJ1dGUoKTsKICAgICBpZiAoIWRlc2NyaWJlZEJ5LmlzRW1wdHkoKSkKICAgICAgICAgdGV4
dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4dChkZXNjcmliZWRCeSwgU3VtbWFyeVRleHQp
KTsKLSAgICAKLSAgICAvLyBBZGQgaGVscCB0eXBlIHRleHQgdGhhdCBpcyBkZXJpdmVkIGZyb20g
YW5jZXN0b3JzLgotICAgIGZvciAoTm9kZSogY3VyciA9IG5vZGUoKTsgY3VycjsgY3VyciA9IGN1
cnItPnBhcmVudE5vZGUoKSkgewotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN1bW1hcnkg
PSBnZXRBdHRyaWJ1dGUoc3VtbWFyeUF0dHIpOwotICAgICAgICBpZiAoIXN1bW1hcnkuaXNFbXB0
eSgpKQotICAgICAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4dChzdW1t
YXJ5LCBTdW1tYXJ5VGV4dCkpOwotICAgICAgICAKLSAgICAgICAgLy8gVGhlIHRpdGxlIGF0dHJp
YnV0ZSBzaG91bGQgYmUgdXNlZCBhcyBoZWxwIHRleHQgdW5sZXNzIGl0IGlzIGFscmVhZHkgYmVp
bmcgdXNlZCBhcyBkZXNjcmlwdGl2ZSB0ZXh0LgotICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcm
IHRpdGxlID0gZ2V0QXR0cmlidXRlKHRpdGxlQXR0cik7Ci0gICAgICAgIGlmICghdGl0bGUuaXNF
bXB0eSgpKQotICAgICAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4dCh0
aXRsZSwgVGl0bGVUYWdUZXh0KSk7Ci0gICAgICAgIAotICAgICAgICAvLyBPbmx5IHRha2UgaGVs
cCB0ZXh0IGZyb20gYW4gYW5jZXN0b3IgZWxlbWVudCBpZiBpdHMgYSBncm91cCBvciBhbiB1bmtu
b3duIHJvbGUuIElmIGhlbHAgd2FzCi0gICAgICAgIC8vIGFkZGVkIHRvIHRob3NlIGtpbmRzIG9m
IGVsZW1lbnRzLCBpdCBpcyBsaWtlbHkgaXQgd2FzIG1lYW50IGZvciBhIGNoaWxkIGVsZW1lbnQu
Ci0gICAgICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4T2JqID0gYXhPYmplY3RDYWNoZSgpLT5n
ZXRPckNyZWF0ZShjdXJyKTsKLSAgICAgICAgaWYgKCFheE9iaikKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgCi0gICAgICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSBheE9iai0+cm9s
ZVZhbHVlKCk7Ci0gICAgICAgIGlmIChyb2xlICE9IEdyb3VwUm9sZSAmJiByb2xlICE9IFVua25v
d25Sb2xlKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQorCisgICAgLy8gU3VtbWFyeSBhdHRy
aWJ1dGUgdXNlZCBhcyBoZWxwIHRleHQgb24gdGFibGVzLgorICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc3VtbWFyeSA9IGdldEF0dHJpYnV0ZShzdW1tYXJ5QXR0cik7CisgICAgaWYgKCFzdW1tYXJ5
LmlzRW1wdHkoKSkKKyAgICAgICAgdGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4dChz
dW1tYXJ5LCBTdW1tYXJ5VGV4dCkpOworCisgICAgLy8gVGhlIHRpdGxlIGF0dHJpYnV0ZSBzaG91
bGQgYmUgdXNlZCBhcyBoZWxwIHRleHQgdW5sZXNzIGl0IGlzIGFscmVhZHkgYmVpbmcgdXNlZCBh
cyBkZXNjcmlwdGl2ZSB0ZXh0LgorICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdGl0bGUgPSBnZXRB
dHRyaWJ1dGUodGl0bGVBdHRyKTsKKyAgICBpZiAoIXRpdGxlLmlzRW1wdHkoKSkKKyAgICAgICAg
dGV4dE9yZGVyLmFwcGVuZChBY2Nlc3NpYmlsaXR5VGV4dCh0aXRsZSwgVGl0bGVUYWdUZXh0KSk7
CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmFjY2Vzc2liaWxpdHlUZXh0KFZl
Y3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mIHRleHRPcmRlcikKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2
Njk3NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDE0LTA0LTA4ICBKYW1lcyBDcmFpZyAgPGpjcmFpZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQVg6IEJ1ZyBpbiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aGVscFRleHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDM4NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGFjY2Vzc2li
aWxpdHkgaGVscCB0ZXh0IGluIGEgdmFyaWV0eSBvZiBleGFtcGxlcy4KKworICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvaGVscC10ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9oZWxwLXRleHQuaHRtbDogQWRkZWQuCisKIDIwMTQtMDQtMDggIEFkZW5pbHNv
biBDYXZhbGNhbnRpICA8Y2F2YWxjYW50aWlAZ21haWwuY29tPgogCiAgICAgICAgIFtTVkddIEZp
eCBDU1MgdHJhbnNmb3JtIGhhbmRsaW5nIHdoZW4gem9vbWVkCkluZGV4OiBMYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9oZWxwLXRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9oZWxwLXRleHQtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjggQEAKK1Rlc3RzIGFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGluIGEgdmFyaWV0eSBvZiBleGFtcGxlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGE+IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxh
PiBpcyAiYmFyIgorUEFTUzogSGVscCB0ZXh0IGZvciA8YT4gaXMgImJheiIKK1BBU1M6IEhlbHAg
dGV4dCBmb3IgPGE+IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxoMT4gaXMgImJhciIKK1BB
U1M6IEhlbHAgdGV4dCBmb3IgPGE+IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxidXR0b24+
IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxidXR0b24+IGlzICJiYXIiCitQQVNTOiBIZWxw
IHRleHQgZm9yIDxidXR0b24+IGlzICJiYXoiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxidXR0b24+
IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDx0YWJsZT4gaXMgInRhYmxlIHN1bW1hcnkiCitQ
QVNTOiBIZWxwIHRleHQgZm9yIDxpbnB1dD4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGRp
dj4gaXMgIiIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPG1haW4+IGlzICJiYXIiCitQQVNTOiBIZWxw
IHRleHQgZm9yIDxidXR0b24+IGlzICIiCitQQVNTOiBIZWxwIHRleHQgZm9yIDxtYWluPiBpcyAi
IgorUEFTUzogSGVscCB0ZXh0IGZvciA8ZGl2PiBpcyAiIgorUEFTUzogSGVscCB0ZXh0IGZvciA8
YT4gaXMgImJhciIKK1BBU1M6IEhlbHAgdGV4dCBmb3IgPGRpdj4gaXMgIiIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaGVscC10ZXh0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2hlbHAtdGV4dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
ODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiBpZD0iZXhhbXBsZXMi
PgorCisgICAgPGEgY2xhc3M9ImV4IiBocmVmPSIjIiBkYXRhLWV4cGVjdGVkPSIiPmZvbzwvYT4K
KyAgICA8YSBjbGFzcz0iZXgiIGhyZWY9IiMiIHRpdGxlPSJiYXIiIGRhdGEtZXhwZWN0ZWQ9ImJh
ciI+Zm9vPC9hPgorICAgIDxhIGNsYXNzPSJleCIgaHJlZj0iIyIgdGl0bGU9ImJhciIgYXJpYS1o
ZWxwPSJiYXoiIGRhdGEtZXhwZWN0ZWQ9ImJheiI+Zm9vPC9hPgorICAgIDxhIGNsYXNzPSJleCIg
aHJlZj0iIyIgdGl0bGU9ImZvbyIgZGF0YS1leHBlY3RlZD0iIj48IS0tIG5vIGNvbnRlbnRzLCBz
byBAdGl0bGUgdXNlZCBhcyBsYWJlbCwgbm90IGhlbHAgLS0+PC9hPgorICAgIAorICAgIDxoMSBj
bGFzcz0iZXgiIHRpdGxlPSJiYXIiIGRhdGEtZXhwZWN0ZWQ9ImJhciI+PGEgY2xhc3M9ImV4IiBo
cmVmPSIjIiBkYXRhLWV4cGVjdGVkPSIiPmZvbzwvYT48L2gxPgorCisgICAgPGJ1dHRvbiBjbGFz
cz0iZXgiIGRhdGEtZXhwZWN0ZWQ9IiI+Zm9vPC9idXR0b24+CisgICAgPGJ1dHRvbiBjbGFzcz0i
ZXgiIHRpdGxlPSJiYXIiIGRhdGEtZXhwZWN0ZWQ9ImJhciI+Zm9vPC9idXR0b24+CisgICAgPGJ1
dHRvbiBjbGFzcz0iZXgiIHRpdGxlPSJiYXIiIGFyaWEtaGVscD0iYmF6IiBkYXRhLWV4cGVjdGVk
PSJiYXoiPmZvbzwvYnV0dG9uPgorICAgIDxidXR0b24gY2xhc3M9ImV4IiB0aXRsZT0iZm9vIiBk
YXRhLWV4cGVjdGVkPSIiPjwhLS0gbm8gY29udGVudHMsIHNvIEB0aXRsZSB1c2VkIGFzIGxhYmVs
LCBub3QgaGVscCAtLT48L2J1dHRvbj4KKworICAgIDx0YWJsZSBjbGFzcz0iZXgiIHN1bW1hcnk9
InRhYmxlIHN1bW1hcnkiIGRhdGEtZXhwZWN0ZWQ9InRhYmxlIHN1bW1hcnkiPgorICAgICAgICA8
Y2FwdGlvbiBjbGFzcz0iZXgiIGRhdGEtZXhwZWN0ZWQ9IiI+Y2FwdGlvbjwvY2FwdGlvbj4KKyAg
ICAgICAgPHRyPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFz
cz0iZXgiIHR5cGU9ImNoZWNrYm94IiBkYXRhLWV4cGVjdGVkPSIiPgorICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImV4IiByb2xlPSJ0ZXh0IiBkYXRhLWV4cGVjdGVkPSIiPnRleHQ8L2Rpdj4K
KyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKworICAgIDxt
YWluIGNsYXNzPSJleCIgYXJpYS1oZWxwPSJiYXIiIGRhdGEtZXhwZWN0ZWQ9ImJhciI+CisgICAg
ICAgIDxidXR0b24gY2xhc3M9ImV4IiBkYXRhLWV4cGVjdGVkPSIiPmZvbzwvYnV0dG9uPgorICAg
IDwvbWFpbj4KKworICAgIDxtYWluIGNsYXNzPSJleCIgcm9sZT0iZ3JvdXAiIHRpdGxlPSJiYXIi
IGRhdGEtZXhwZWN0ZWQ9IiI+CisgICAgICAgIDxkaXYgY2xhc3M9ImV4IiByb2xlPSJncm91cCIg
ZGF0YS1leHBlY3RlZD0iIj5mb288L2Rpdj4KKyAgICA8L21haW4+CisKKyAgICA8YSBocmVmPSIi
IGNsYXNzPSJleCIgdGl0bGU9ImJhciIgZGF0YS1leHBlY3RlZD0iYmFyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iZXgiIGRhdGEtZXhwZWN0ZWQ9IiI+Zm9vPC9kaXY+CisgICAgPC9hPgorCis8L2Rp
dj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KworPHNjcmlwdD4KKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIpIHsKKworICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgYWNjZXNz
aWJpbGl0eSBoZWxwIHRleHQgaW4gYSB2YXJpZXR5IG9mIGV4YW1wbGVzLiIpOworCisgICAgICAg
IHZhciBleGFtcGxlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNleGFtcGxlcyAuZXgi
KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGMgPSBleGFtcGxlcy5sZW5ndGg7IGkgPCBjOyBp
KyspIHsKKyAgICAgICAgICAgIHZhciBlbCA9IGV4YW1wbGVzW2ldOworICAgICAgICAgICAgaWYg
KCFlbCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHZhciBleHBlY3Rh
dGlvbiA9IGVsLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZCIpOworICAgICAgICAgICAgdmFy
IGlkID0gZWwuaWQ7CisgICAgICAgICAgICB2YXIgdGFnID0gZWwudGFnTmFtZS50b0xvd2VyQ2Fz
ZSgpOworICAgICAgICAgICAgaWYgKCFpZCkKKyAgICAgICAgICAgICAgICBlbC5pZCA9IGlkID0g
ImdlbmVyYXRlZElkXyIgKyBpOworICAgICAgICAgICAgdmFyIGF4ID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgICAgIGlmICghYXgp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB2YXIgb3V0cHV0ID0gYXgu
aGVscFRleHQucmVwbGFjZSgiQVhIZWxwOiAiLCAiIik7CisgICAgICAgICAgICB2YXIgcmVzdWx0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGlmIChl
eHBlY3RhdGlvbiA9PT0gb3V0cHV0KQorICAgICAgICAgICAgICAgIHJlc3VsdC50ZXh0Q29udGVu
dCArPSAiUEFTUzogSGVscCB0ZXh0IGZvciA8IiArIHRhZyArIj4gaXMgXCIiICsgb3V0cHV0ICsg
IlwiXG4iOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdC50ZXh0Q29u
dGVudCArPSAiRkFJTDogSGVscCB0ZXh0IGZvciA8IiArIHRhZyArIj4gaXMgXCIiICsgb3V0cHV0
ICsgIlwiIGJ1dCBleHBlY3RlZCBcIiIgKyBleHBlY3RhdGlvbiArICJcIlxuIjsKKyAgICAgICAg
fQorCisgICAgICAgIC8vIE9uY2UgdGVzdHMgYXJlIGNvbXBsZXRlLCBoaWRlIGFsbCB0aGUgZXhh
bXBsZSBtYXJrdXAuCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJleGFtcGxlcyIp
LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisKKyAgICB9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>