<?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>45866</bug_id>
          
          <creation_ts>2010-09-15 19:05:56 -0700</creation_ts>
          <short_desc>execCommand insertorderedlist creates a list inside p (violates content-model).</short_desc>
          <delta_ts>2026-03-03 13:25: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>HTML Editing</component>
          <version>525.x (Safari 3.2)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nobody">me</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ahmad.saleem792</cc>
    
    <cc>alberthilbert</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>me</cc>
    
    <cc>mjs</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>self</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>279902</commentid>
    <comment_count>0</comment_count>
    <who name="Nobody">me</who>
    <bug_when>2010-09-15 19:05:56 -0700</bug_when>
    <thetext>On selecting multiple paragraphs, using execCommand(&quot;insertorderedlist&quot;) or execCommand(&quot;insertunorderedlist&quot;) creates &lt;ol&gt; or &lt;ul&gt; element INSIDE the &lt;p&gt; element, which is invalid HTML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284572</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-24 11:29:47 -0700</bug_when>
    <thetext>Could you attach a sample HTML file that demonstrates this bug?  Or detailed reproduction steps?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284860</commentid>
    <comment_count>2</comment_count>
      <attachid>68792</attachid>
    <who name="Nobody">me</who>
    <bug_when>2010-09-24 17:12:16 -0700</bug_when>
    <thetext>Created attachment 68792
WYSIWYG editor test page

I&apos;ve cooked up a quick sample at the following URL : http://juneoh.net/lab/wysiwyg.html
To reproduce, select all of the iframe content and press insertorderedlist button,
and a inspector will show a &lt;ol&gt; created inside &lt;p&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284909</commentid>
    <comment_count>3</comment_count>
      <attachid>68800</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-24 18:45:44 -0700</bug_when>
    <thetext>Created attachment 68800
demo

New demo since the attachment 68792 loads blank.html which doesn&apos;t exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284910</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-24 18:46:36 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=68792) [details]
&gt; WYSIWYG editor test page
&gt; 
&gt; I&apos;ve cooked up a quick sample at the following URL : http://juneoh.net/lab/wysiwyg.html
&gt; To reproduce, select all of the iframe content and press insertorderedlist button,
&gt; and a inspector will show a &lt;ol&gt; created inside &lt;p&gt;.

Thanks for the demo, I have a reduction now.  I suppose we have a similar problems with indentation and format block as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284915</commentid>
    <comment_count>5</comment_count>
      <attachid>68801</attachid>
    <who name="Nobody">me</who>
    <bug_when>2010-09-24 19:00:50 -0700</bug_when>
    <thetext>Created attachment 68801
blank.html file to go with WYSIWYG demo

Oops, thanks for the notice. Here&apos;s the blank.html that I missed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323534</commentid>
    <comment_count>6</comment_count>
      <attachid>76834</attachid>
    <who name="Raffaele">alberthilbert</who>
    <bug_when>2010-12-16 17:30:12 -0800</bug_when>
    <thetext>Created attachment 76834
Proposed patch

I am a newbie in c++ and WebKit development, so maybe there is a better way to write this patch.
However, if I can improve the code and make it accepted, I will be happy to reshape the patch following your advices.
Thanks.

Raffaele</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323537</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-16 17:33:36 -0800</bug_when>
    <thetext>Attachment 76834 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/editing/execCommand/insert-list-inside-p-expected.txt&apos;, u&apos;LayoutTests/editing/execCommand/insert-list-inside-p.html&apos;, u&apos;WebCore/ChangeLog&apos;, u&apos;WebCore/editing/InsertListCommand.cpp&apos;]&quot; exit_code: 1
WebCore/editing/InsertListCommand.cpp:376:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323542</commentid>
    <comment_count>8</comment_count>
      <attachid>76834</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-16 17:44:22 -0800</bug_when>
    <thetext>Comment on attachment 76834
Proposed patch

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

Thanks for tackling this bug! I&apos;m impressed by how close you&apos;ve got in this first patch. But I think we can improve a little.

&gt; WebCore/editing/InsertListCommand.cpp:373
&gt; +        if (enclosingBlockFlowElement(start)-&gt;hasTagName(pTag)) {
&gt; +            // &apos;p&apos; elements can contain only &apos;phrasing content&apos;.
&gt; +            // Therefore we must move the list insertion point outside the &apos;p&apos; element.
&gt; +            Element* pElement = static_cast&lt;Element*&gt;(enclosingBlockFlowElement(start));

This bug is for p but I think there are other elements we need to avoid.  Also, p could be an ancestor of some other block flow element, right?  e.g.
&lt;p&gt;&lt;span style=&quot;display:block;&quot;&gt;hello&lt;/span&gt;&lt;/p&gt;.

Also, we don&apos;t prefix pointer by p.  And it&apos;s not ideal that we&apos;re calling enclosingBlockFlowElement twice here.  We could just define it outside the if statement.

&gt; WebCore/editing/InsertListCommand.cpp:377
&gt; +            if (!pElement-&gt;parentNode()-&gt;isContentEditable())
&gt; +                //If &apos;p&apos; is the root editable element, don&apos;t create the list at all.
&gt; +                return 0;

Mn... I&apos;m not sure not listifying is the correct behavior here but I don&apos;t have an alternative to offer.

&gt; WebCore/editing/InsertListCommand.cpp:384
&gt; +                splitElement(pElement, insertionPos.anchorNode());
&gt; +                removeNode(insertionPos.anchorNode());

For the reason I stated above, this should probably be splitting the tree, not just the element.

&gt; LayoutTests/editing/execCommand/insert-list-inside-p-expected.txt:2
&gt; +Dump of markup 1:

We should add some description here so that the correct output is obvious.

&gt; LayoutTests/editing/execCommand/insert-list-inside-p.html:2
&gt; +&lt;p&gt;This test execute &apos;InsertList&apos; with the caret inside a &apos;p&apos; paragraph. You should see the list replacing the p element.&lt;/p&gt;

Please put this in Markup.description as in:
Markup.description(&quot;This test execute...&quot;);

Of course, you can add it to the script element below.  No need to insert a new script element here.

&gt; LayoutTests/editing/execCommand/insert-list-inside-p.html:15
&gt; +Markup.dump(&quot;test1&quot;);

You can add the description as to what each test is doing by:
Markup.dump(&quot;test1&quot;, &quot;description&quot;);

&gt; LayoutTests/editing/execCommand/insert-list-inside-p.html:29
&gt; +range.setStart(p.firstChild.nextSibling.nextSibling, 3);
&gt; +range.setEnd(p.lastChild.previousSibling.previousSibling, 4)

Why don&apos;t you just use p.childNodes[2] and p.childNodes[3] instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326215</commentid>
    <comment_count>9</comment_count>
      <attachid>76834</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-23 12:27:55 -0800</bug_when>
    <thetext>Comment on attachment 76834
Proposed patch

Please address the above points I made.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331602</commentid>
    <comment_count>10</comment_count>
    <who name="Raffaele">alberthilbert</who>
    <bug_when>2011-01-10 06:38:00 -0800</bug_when>
    <thetext>Sorry for not replying sooner.

&gt; Also, p could be an ancestor of some other block flow element, right?

You are perfectly right of course. I guess the correct behavior, here, is to select the nearest ancestor that isn&apos;t a phrasing element (http://www.w3.org/TR/html5/content-models.html#phrasing-content).
I can add a new function to htmlediting.cpp, something like:
 
bool isPhrasingElement(const Node* node)

and then use it together with &quot;enclosingNodeOfType&quot; to select the ancestor.
Is this the right approach?

Thanks

Raffaele</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331666</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-10 09:55:24 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; You are perfectly right of course. I guess the correct behavior, here, is to select the nearest ancestor that isn&apos;t a phrasing element (http://www.w3.org/TR/html5/content-models.html#phrasing-content).
&gt; I can add a new function to htmlediting.cpp, something like:
&gt; 
&gt; bool isPhrasingElement(const Node* node)
&gt; 
&gt; and then use it together with &quot;enclosingNodeOfType&quot; to select the ancestor.
&gt; Is this the right approach?

That sounds right.  You may be interested in looking at isBlock function.  It&apos;s called at various places in the place of !isPhrasingElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332413</commentid>
    <comment_count>12</comment_count>
    <who name="Raffaele">alberthilbert</who>
    <bug_when>2011-01-11 09:55:39 -0800</bug_when>
    <thetext>&gt; You may be interested in looking at isBlock function.  It&apos;s called at various places in the place of !isPhrasingElement.

But &apos;isBlock&apos; returns &apos;true&apos; for phrasing element with the display style property set to &apos;block&apos;. It&apos;s for that reason I wanted to add the new function &apos;isPhrasingElemenet&apos;.

Raffeale</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334490</commentid>
    <comment_count>13</comment_count>
    <who name="Raffaele">alberthilbert</who>
    <bug_when>2011-01-14 12:06:59 -0800</bug_when>
    <thetext>I&apos;m thinking of adding a new public virtual method to the HTMLElement class:

virtual bool isPhrasingContent() const    { return false; }

and reimplementing it within HTMLElement subclasses as appropriate.
I guess such a method can be useful even beyond the necessities of my patch.
Can I follow this &quot;path&quot;?

Raffaele</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334543</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-14 13:16:05 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; I&apos;m thinking of adding a new public virtual method to the HTMLElement class:
&gt; 
&gt; virtual bool isPhrasingContent() const    { return false; }

I like the idea of it but adding a new member function to Node will require careful consideration. +darin, eseidel, othermaciej, &amp; weinig because they might have something to say about such a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334575</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-14 13:47:11 -0800</bug_when>
    <thetext>The parser might already know which tag names are phrasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1894645</commentid>
    <comment_count>16</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-08-29 14:47:54 -0700</bug_when>
    <thetext>Sharing updated test result based on &quot;demo&quot;:

*** Safari Technology Preview 152 &amp; Chrome Canary 107 ***

&lt;p&gt;&lt;ol&gt;&lt;li&gt;hello&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt; &lt;p&gt;world&lt;/p&gt;

*** Firefox Nightly 107 ***

&lt;ol&gt;&lt;li&gt; &lt;br&gt;&lt;/li&gt;&lt;li&gt;hello&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;world&lt;/p&gt; 

______

Just wanted to share updated test results. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2186692</commentid>
    <comment_count>17</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-03-03 13:25:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/171656271&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>68792</attachid>
            <date>2010-09-24 17:12:16 -0700</date>
            <delta_ts>2010-09-24 18:45:44 -0700</delta_ts>
            <desc>WYSIWYG editor test page</desc>
            <filename>wysiwyg.html</filename>
            <type>text/html</type>
            <size>465</size>
            <attacher name="Nobody">me</attacher>
            
              <data encoding="base64">PGh0bWw+Cgk8aGVhZD4KCQk8dGl0bGU+IFVzaW5nIGV4ZWNDb21tYW5kIHRvIGJvbGQgdGV4dCA8
L3RpdGxlPgoJCTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgoJCQlmdW5jdGlvbiBJbml0
KCkgewoJCQkJaVZpZXcuZG9jdW1lbnQuZGVzaWduTW9kZSA9ICdPbic7CgkJCX0KCQkJZnVuY3Rp
b24gaW5zZXJ0TGlzdCgpIHsKCQkJCWlWaWV3LmRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRv
cmRlcmVkbGlzdCcpOwoJCQl9CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keSBvbkxvYWQ9Iklu
aXQoKSI+CgkJPGlmcmFtZSBpZD0iaVZpZXciIHN0eWxlPSJ3aWR0aDogMjAwcHg7IGhlaWdodDox
MjBweCIgc3JjPSJibGFuay5odG1sIj48L2lmcmFtZT4KCQk8aW5wdXQgdHlwZT0iYnV0dG9uIiBv
bkNsaWNrPSJpbnNlcnRMaXN0KCkiIHZhbHVlPSJpbnNlcnRvcmRlcmVkbGlzdCI+Cgk8L2JvZHk+
CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>68800</attachid>
            <date>2010-09-24 18:45:44 -0700</date>
            <delta_ts>2010-09-24 18:45:44 -0700</delta_ts>
            <desc>demo</desc>
            <filename>insert-ordered-list.html</filename>
            <type>text/html</type>
            <size>383</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PGh0bWw+CjxkaXYgaWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT4KPHA+aGVsbG88L3A+CjxwPndv
cmxkPC9wPgo8L2Rpdj4KPHNjcmlwdD4KCnZhciB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QnKTsKd2luZG93LmdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHRlc3QuZmlyc3RD
aGlsZCwgMCk7CndpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcsICdmb3J3YXJk
JywgJ3dvcmQnKTsKZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydE9yZGVyZWRMaXN0JywgZmFs
c2UsIG51bGwpOwpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHRlc3QuaW5uZXJIVE1MKSk7Cgo8L3NjcmlwdD4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>68801</attachid>
            <date>2010-09-24 19:00:50 -0700</date>
            <delta_ts>2010-09-24 19:00:50 -0700</delta_ts>
            <desc>blank.html file to go with WYSIWYG demo</desc>
            <filename>blank.html</filename>
            <type>text/html</type>
            <size>128</size>
            <attacher name="Nobody">me</attacher>
            
              <data encoding="base64">PGh0bWw+Cgk8aGVhZD4KCQk8dGl0bGU+Ymxhbms8L3RpdGxlPgoJPC9oZWFkPgoJPGJvZHk+CgkJ
PHA+bGluZSBvbmU8L3A+CgkJPHA+bGluZSB0d288L3A+CgkJPHA+bGluZSB0aHJlZTwvcD4KCTwv
Ym9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76834</attachid>
            <date>2010-12-16 17:30:12 -0800</date>
            <delta_ts>2010-12-23 12:27:55 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>InsertListPatch.txt</filename>
            <type>text/plain</type>
            <size>7772</size>
            <attacher name="Raffaele">alberthilbert</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NDIxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTItMTYgIFJhZmZhZWxlIERlIEZlbyAgPGFsYmVydGhpbGJl
cnRAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGV4ZWNDb21tYW5kIGluc2VydG9yZGVyZWRsaXN0IGNyZWF0ZXMgYSBsaXN0IGluc2lk
ZSBwICh2aW9sYXRlcyBjb250ZW50LW1vZGVsKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1ODY2CisKKyAgICAgICAgVGVzdDogZWRpdGluZy9leGVj
Q29tbWFuZC9pbnNlcnQtbGlzdC1pbnNpZGUtcC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0lu
c2VydExpc3RDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydExpc3RDb21tYW5k
OjpsaXN0aWZ5UGFyYWdyYXBoKToKKworICAgICAgICBJZiAnc3RhcnQnIGlzIHdpdGhpbiBhICdw
JyBlbGVtZW50IGRvIHRoZSBmb2xsb3dpbmc6CisgICAgICAgICAgICAtIGlmICdwJyBpcyByb290
IGVkaXRhYmxlIGVsZW1lbnQsIGRvbid0IGNyZWF0ZSB0aGUgbGlzdAorICAgICAgICAgICAgLSBp
ZiAncCcgaGFzIG5vIHBhcmFncmFwaHMgKGEgdGV4dCBub2RlIGZvbGxvd2VkIGJ5IGEgJ2JyJyBl
bGVtZW50KSBvciAnc3RhcnQnCisgICAgICAgICAgICAgIGlzIHdpdGhpbiB0aGUgZmlyc3QgcGFy
YWdyYXBoIG9mIGEgJ3AnIGVsZW1lbnQsIGluc2VydCB0aGUgbGlzdCByaWdodCBiZWZvcmUgJ3An
CisgICAgICAgICAgICAtIGluIHRoZSBvdGhlciBjYXNlcywgc3BsaXQgdGhlICdwJyBlbGVtZW50
IHJpZ2h0IGJlZm9yZSB0aGUgcGFyYWdyYXBoIGNvbnRhaW5pbmcKKyAgICAgICAgICAgICAgJ3N0
YXJ0JyBhbmQgaW5zZXJ0IHRoZSBsaXN0IGJldHdlZW4gdGhlIHR3byAncCcgZWxlbWVudHMuCisK
IDIwMTAtMTItMTYgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgogCiAgICAgICAgIEZv
cm1hdHRpbmcgZml4OyB1bi1pbmRlbnQgb25lIGxldmVsIGFsbCBsaW5lcyBpbiBbMjc5MywgMjgw
OF0gKHdpdGggcmVzcGVjdCB0byByNzQyMTcpCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvSW5zZXJ0
TGlzdENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0
Q29tbWFuZC5jcHAJKHJldmlzaW9uIDc0MTMzKQorKysgV2ViQ29yZS9lZGl0aW5nL0luc2VydExp
c3RDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY2LDYgKzM2NiwyNyBAQCBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBJbnNlcnRMaXN0Q29tbWFuCiAgICAgICAgIC8vIGlubGluZSBhbmNl
c3RvcnMgb2Ygc3RhcnQsIHNpbmNlIGl0IGlzIGVhc2llciBmb3IgZWRpdGluZyB0byBwcm9kdWNl
IAogICAgICAgICAvLyBjbGVhbiBtYXJrdXAgd2hlbiBpbmxpbmUgZWxlbWVudHMgYXJlIHB1c2hl
ZCBkb3duIGFzIGZhciBhcyBwb3NzaWJsZS4KICAgICAgICAgUG9zaXRpb24gaW5zZXJ0aW9uUG9z
KHN0YXJ0LmRlZXBFcXVpdmFsZW50KCkudXBzdHJlYW0oKSk7CisKKyAgICAgICAgaWYgKGVuY2xv
c2luZ0Jsb2NrRmxvd0VsZW1lbnQoc3RhcnQpLT5oYXNUYWdOYW1lKHBUYWcpKSB7CisgICAgICAg
ICAgICAvLyAncCcgZWxlbWVudHMgY2FuIGNvbnRhaW4gb25seSAncGhyYXNpbmcgY29udGVudCcu
CisgICAgICAgICAgICAvLyBUaGVyZWZvcmUgd2UgbXVzdCBtb3ZlIHRoZSBsaXN0IGluc2VydGlv
biBwb2ludCBvdXRzaWRlIHRoZSAncCcgZWxlbWVudC4KKyAgICAgICAgICAgIEVsZW1lbnQqIHBF
bGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGVuY2xvc2luZ0Jsb2NrRmxvd0VsZW1lbnQo
c3RhcnQpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFwRWxlbWVudC0+cGFyZW50
Tm9kZSgpLT5pc0NvbnRlbnRFZGl0YWJsZSgpKQorICAgICAgICAgICAgICAgIC8vSWYgJ3AnIGlz
IHRoZSByb290IGVkaXRhYmxlIGVsZW1lbnQsIGRvbid0IGNyZWF0ZSB0aGUgbGlzdCBhdCBhbGwu
CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAoIWlzU3RhcnRPZkJsb2NrKHN0YXJ0KSkgeworICAgICAgICAgICAgICAgIC8vIElmICdz
dGFydCcgaXMgbm90IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJsb2NrLCBzcGxpdCB0aGUgYmxv
Y2suCisgICAgICAgICAgICAgICAgLy8gU28gdGhlIHBhcmFncmFwaHMgdGhhdCBtdXN0IG5vdCBi
ZSBtb3ZlZCB3aXRoaW4gdGhlIGxpc3QsIHdpbGwgc3RpbGwgbGllCisgICAgICAgICAgICAgICAg
Ly8gaW5zaWRlIGEgJ3AnIGJsb2NrIGFib3ZlIHRoZSBsaXN0LgorICAgICAgICAgICAgICAgIHNw
bGl0RWxlbWVudChwRWxlbWVudCwgaW5zZXJ0aW9uUG9zLmFuY2hvck5vZGUoKSk7CisgICAgICAg
ICAgICAgICAgcmVtb3ZlTm9kZShpbnNlcnRpb25Qb3MuYW5jaG9yTm9kZSgpKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaW5zZXJ0aW9uUG9zID0gcG9zaXRpb25JblBhcmVudEJlZm9y
ZU5vZGUocEVsZW1lbnQpOworICAgICAgICB9CisKICAgICAgICAgLy8gQWxzbyBhdm9pZCB0aGUg
Y29udGFpbmluZyBsaXN0IGl0ZW0uCiAgICAgICAgIE5vZGUqIGxpc3RDaGlsZCA9IGVuY2xvc2lu
Z0xpc3RDaGlsZChpbnNlcnRpb25Qb3Mubm9kZSgpKTsKICAgICAgICAgaWYgKGxpc3RDaGlsZCAm
JiBsaXN0Q2hpbGQtPmhhc1RhZ05hbWUobGlUYWcpKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzQyMTgp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAxMC0xMi0xNiAgUmFmZmFlbGUgRGUgRmVvICA8YWxiZXJ0aGlsYmVydEBnbWFpbC5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZXhlY0Nv
bW1hbmQgaW5zZXJ0b3JkZXJlZGxpc3QgY3JlYXRlcyBhIGxpc3QgaW5zaWRlIHAgKHZpb2xhdGVz
IGNvbnRlbnQtbW9kZWwpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU4NjYKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJlIHRoYXQgIklu
c2VydExpc3QiIGRvZXNuJ3QgY3JlYXRlIGxpc3RzIGluc2lkZSBwIGVsZW1lbnRzLgorCisgICAg
ICAgICogZWRpdGluZy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdC1pbnNpZGUtcC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3QtaW5z
aWRlLXAuaHRtbDogQWRkZWQuCisKIDIwMTAtMTItMTYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIGZhc3QvZG9tL2djLTExLmh0bWwgZmFpbHMgaW4gNjRi
aXQgZGVidWcgYm90CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luc2Vy
dC1saXN0LWluc2lkZS1wLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0LWluc2lkZS1wLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvaW5zZXJ0LWxpc3Qt
aW5zaWRlLXAtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisKK0R1
bXAgb2YgbWFya3VwIDE6Cit8IDx1bD4KK3wgICA8bGk+Cit8ICAgICAiVGhpPCNzZWxlY3Rpb24t
Y2FyZXQ+cyBpcyBhICdwJyBwYXJhZ3JhcGgiCisKK0R1bXAgb2YgbWFya3VwIDI6Cit8IDx1bD4K
K3wgICA8bGk+Cit8ICAgICAiVGhlPCNzZWxlY3Rpb24tYW5jaG9yPnNlIGFyZSIKK3wgICA8bGk+
Cit8ICAgICAiZm91ciBwYXJhZ3JhcGhzIgorfCAgIDxsaT4KK3wgICAgICJpbnNpPCNzZWxlY3Rp
b24tZm9jdXM+ZGUiCit8IDxwPgorfCAgIGlkPSJ0ZXN0Mi1wIgorfCAgICJhICdwJyBlbGVtZW50
LiIKKworRHVtcCBvZiBtYXJrdXAgMzoKK3wgPHA+Cit8ICAgaWQ9InRlc3QzLXAiCit8ICAgIlRo
ZXNlIGFyZSIKK3wgPHVsPgorfCAgIDxsaT4KK3wgICAgICJmb3U8I3NlbGVjdGlvbi1hbmNob3I+
ciBwYXJhZ3JhcGhzIgorfCAgIDxsaT4KK3wgICAgICJpbnNpPCNzZWxlY3Rpb24tZm9jdXM+ZGUi
Cit8IDxwPgorfCAgICJhICdwJyBlbGVtZW50LiIKKworRHVtcCBvZiBtYXJrdXAgNDoKK3wgPHA+
Cit8ICAgaWQ9InRlc3Q0LXAiCit8ICAgIlRoZXNlIGFyZSIKK3wgPHVsPgorfCAgIDxsaT4KK3wg
ICAgICJmb3U8I3NlbGVjdGlvbi1hbmNob3I+ciBwYXJhZ3JhcGhzIgorfCAgIDxsaT4KK3wgICAg
ICJpbnNpZGUiCit8ICAgPGxpPgorfCAgICAgImEgJ3A8I3NlbGVjdGlvbi1mb2N1cz4nIGVsZW1l
bnQuIgorCitEdW1wIG9mIG1hcmt1cCA1OgorfCA8dWw+Cit8ICAgPGxpPgorfCAgICAgIlRoZTwj
c2VsZWN0aW9uLWFuY2hvcj5zZSBhcmUiCit8ICAgPGxpPgorfCAgICAgImZvdXIgcGFyYWdyYXBo
cyIKK3wgICA8bGk+Cit8ICAgICAiaW5zaWRlIgorfCAgIDxsaT4KK3wgICAgICJhICdwPCNzZWxl
Y3Rpb24tZm9jdXM+JyBlbGVtZW50LiIKKworRHVtcCBvZiBtYXJrdXAgNjoKK3wgPHA+Cit8ICAg
Y29udGVudGVkaXRhYmxlPSJ0cnVlIgorfCAgIGlkPSJ0ZXN0Ni1wIgorfCAgICJUaGk8I3NlbGVj
dGlvbi1jYXJldD5zICdwJyBwYXJhZ3JhcGggaXMgYSByb290IGVkaXRhYmxlIGVsZW1lbnQiCklu
ZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2luc2VydC1saXN0LWluc2lkZS1w
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9pbnNl
cnQtbGlzdC1pbnNpZGUtcC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy9leGVjQ29tbWFuZC9pbnNlcnQtbGlzdC1pbnNpZGUtcC5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDU3IEBACis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3Vw
LmpzIj48L3NjcmlwdD4KKzxwPlRoaXMgdGVzdCBleGVjdXRlICdJbnNlcnRMaXN0JyB3aXRoIHRo
ZSBjYXJldCBpbnNpZGUgYSAncCcgcGFyYWdyYXBoLiBZb3Ugc2hvdWxkIHNlZSB0aGUgbGlzdCBy
ZXBsYWNpbmcgdGhlIHAgZWxlbWVudC48L3A+Cis8ZGl2IGlkPSJ0ZXN0MSIgY29udGVudGVkaXRh
YmxlPSJ0cnVlIj48cCBpZD0idGVzdDEtcCI+VGhpcyBpcyBhICdwJyBwYXJhZ3JhcGg8L3A+PC9k
aXY+Cis8ZGl2IGlkPSJ0ZXN0MiIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48cCBpZD0idGVzdDIt
cCI+VGhlc2UgYXJlPGJyPmZvdXIgcGFyYWdyYXBoczxicj5pbnNpZGU8YnI+YSAncCcgZWxlbWVu
dC48L3A+PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0MyIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48cCBp
ZD0idGVzdDMtcCI+VGhlc2UgYXJlPGJyPmZvdXIgcGFyYWdyYXBoczxicj5pbnNpZGU8YnI+YSAn
cCcgZWxlbWVudC48L3A+PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0NCIgY29udGVudGVkaXRhYmxlPSJ0
cnVlIj48cCBpZD0idGVzdDQtcCI+VGhlc2UgYXJlPGJyPmZvdXIgcGFyYWdyYXBoczxicj5pbnNp
ZGU8YnI+YSAncCcgZWxlbWVudC48L3A+PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0NSIgY29udGVudGVk
aXRhYmxlPSJ0cnVlIj48cCBpZD0idGVzdDUtcCI+VGhlc2UgYXJlPGJyPmZvdXIgcGFyYWdyYXBo
czxicj5pbnNpZGU8YnI+YSAncCcgZWxlbWVudC48L3A+PC9kaXY+Cis8ZGl2IGlkPSJ0ZXN0NiI+
PHAgaWQ9InRlc3Q2LXAiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+VGhpcyAncCcgcGFyYWdyYXBo
IGlzIGEgcm9vdCBlZGl0YWJsZSBlbGVtZW50PC9wPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBzZWwg
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKK3ZhciBwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRlc3QxLXAiKTsKK3NlbC5zZXRQb3NpdGlvbihwLmZpcnN0Q2hpbGQsIDMpOworZG9jdW1l
bnQuZXhlY0NvbW1hbmQoIkluc2VydFVub3JkZXJlZExpc3QiKTsKK01hcmt1cC5kdW1wKCJ0ZXN0
MSIpOworCit2YXIgcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Mi1wIik7Cit2YXIg
cmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworcmFuZ2Uuc2V0U3RhcnQocC5maXJzdENo
aWxkLCAzKTsKK3JhbmdlLnNldEVuZChwLmxhc3RDaGlsZC5wcmV2aW91c1NpYmxpbmcucHJldmlv
dXNTaWJsaW5nLCA0KQorc2VsLnJlbW92ZUFsbFJhbmdlcygpOworc2VsLmFkZFJhbmdlKHJhbmdl
KTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRVbm9yZGVyZWRMaXN0Iik7CitNYXJrdXAu
ZHVtcCgidGVzdDIiKTsKKwordmFyIHAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDMt
cCIpOwordmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3JhbmdlLnNldFN0YXJ0
KHAuZmlyc3RDaGlsZC5uZXh0U2libGluZy5uZXh0U2libGluZywgMyk7CityYW5nZS5zZXRFbmQo
cC5sYXN0Q2hpbGQucHJldmlvdXNTaWJsaW5nLnByZXZpb3VzU2libGluZywgNCkKK3NlbC5yZW1v
dmVBbGxSYW5nZXMoKTsKK3NlbC5hZGRSYW5nZShyYW5nZSk7Citkb2N1bWVudC5leGVjQ29tbWFu
ZCgiSW5zZXJ0VW5vcmRlcmVkTGlzdCIpOworTWFya3VwLmR1bXAoInRlc3QzIik7CisKK3ZhciBw
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Q0LXAiKTsKK3ZhciByYW5nZSA9IGRvY3Vt
ZW50LmNyZWF0ZVJhbmdlKCk7CityYW5nZS5zZXRTdGFydChwLmZpcnN0Q2hpbGQubmV4dFNpYmxp
bmcubmV4dFNpYmxpbmcsIDMpOworcmFuZ2Uuc2V0RW5kKHAubGFzdENoaWxkLCA0KQorc2VsLnJl
bW92ZUFsbFJhbmdlcygpOworc2VsLmFkZFJhbmdlKHJhbmdlKTsKK2RvY3VtZW50LmV4ZWNDb21t
YW5kKCJJbnNlcnRVbm9yZGVyZWRMaXN0Iik7CitNYXJrdXAuZHVtcCgidGVzdDQiKTsKKwordmFy
IHAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDUtcCIpOwordmFyIHJhbmdlID0gZG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKTsKK3JhbmdlLnNldFN0YXJ0KHAuZmlyc3RDaGlsZCwgMyk7City
YW5nZS5zZXRFbmQocC5sYXN0Q2hpbGQsIDQpCitzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CitzZWwu
YWRkUmFuZ2UocmFuZ2UpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydFVub3JkZXJlZExp
c3QiKTsKK01hcmt1cC5kdW1wKCJ0ZXN0NSIpOworCit2YXIgcCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0Ni1wIik7CitzZWwuc2V0UG9zaXRpb24ocC5maXJzdENoaWxkLCAzKTsKK2Rv
Y3VtZW50LmV4ZWNDb21tYW5kKCJJbnNlcnRVbm9yZGVyZWRMaXN0Iik7CitNYXJrdXAuZHVtcCgi
dGVzdDYiKTsKKzwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="67843"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>