<?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>45449</bug_id>
          
          <creation_ts>2010-09-09 03:01:09 -0700</creation_ts>
          <short_desc>Extract the code to find special ancestors in createMarkup into a function</short_desc>
          <delta_ts>2010-09-10 00:32:08 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>34564</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>276386</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-09 03:01:09 -0700</bug_when>
    <thetext>In order to fix the bug 34564, we must isolate the code to find the special common ancestor into a function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276387</commentid>
    <comment_count>1</comment_count>
      <attachid>67014</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-09 03:09:00 -0700</bug_when>
    <thetext>Created attachment 67014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276622</commentid>
    <comment_count>2</comment_count>
      <attachid>67014</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-09 11:27:41 -0700</bug_when>
    <thetext>Comment on attachment 67014
Patch

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

&gt; WebCore/editing/markup.cpp:961
&gt; +    Node* specialCommonAncestor = 0;
&gt; +    if (shouldAnnotate == AnnotateForInterchange) {
&gt; +        specialCommonAncestor = ancestorToRetainStructureAndAppearance(commonAncestor);
Nit: You may want to copy the comment that was around here about which ancestor you want to include.  It&apos;s not obvious why we might want the specialCommonAncestor (ie., what makes it special).  Maybe the comment should just go above this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277047</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-10 00:07:43 -0700</bug_when>
    <thetext>Thanks for the review.  Sorry about a delayed commit.  I had to push regression fix first.

(In reply to comment #2)
&gt; (From update of attachment 67014 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67014&amp;action=prettypatch
&gt; 
&gt; &gt; WebCore/editing/markup.cpp:961
&gt; &gt; +    Node* specialCommonAncestor = 0;
&gt; &gt; +    if (shouldAnnotate == AnnotateForInterchange) {
&gt; &gt; +        specialCommonAncestor = ancestorToRetainStructureAndAppearance(commonAncestor);
&gt; Nit: You may want to copy the comment that was around here about which ancestor you want to include.  It&apos;s not obvious why we might want the specialCommonAncestor (ie., what makes it special).  Maybe the comment should just go above this function.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277049</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-10 00:13:47 -0700</bug_when>
    <thetext>Committed r67176: &lt;http://trac.webkit.org/changeset/67176&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277055</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-10 00:32:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67176 might have broken Qt Linux Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67014</attachid>
            <date>2010-09-09 03:09:00 -0700</date>
            <delta_ts>2010-09-09 11:27:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45449-20100909030856.patch</filename>
            <type>text/plain</type>
            <size>13024</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzA3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDktMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXh0
cmFjdCB0aGUgY29kZSB0byBmaW5kIHNwZWNpYWwgYW5jZXN0b3JzIGluIGNyZWF0ZU1hcmt1cCBp
bnRvIGEgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1NDQ5CisKKyAgICAgICAgRXh0cmFjdGVkIHRoZSBjb2RlIHRvIGZpbmQgc3BlY2lh
bCBjb21tb24gYW5jZXN0b3JzIGluIGNyZWF0ZU1hcmt1cCBhcyBoaWdoZXN0QW5jZXN0b3JUb1dy
YXBNYXJrdXAuCisgICAgICAgIEFsc28gaXNvbGF0ZWQgdGhlIGNvZGUgdG8gZmluZCBhbmNlc3Rv
cnMgcmVxdWlyZWQgdG8gcmV0YWluIHN0cnVjdHVyZSBhbmQgYXBwZWFyYW5jZSBpbnRvCisgICAg
ICAgIGFuY2VzdG9yVG9SZXRhaW5TdHJ1Y3R1cmVBbmRBcHBlYXJhbmNlLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyBhcmUgYWRkZWQgc2luY2UgdGhpcyBpcyBhIGNsZWFudXAuCisKKyAgICAgICAg
KiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphbmNlc3RvclRvUmV0YWlu
U3RydWN0dXJlQW5kQXBwZWFyYW5jZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cHJvcGVy
dHlNaXNzaW5nT3JFcXVhbFRvTm9uZSk6IE1vdmVkLgorICAgICAgICAoV2ViQ29yZTo6aXNFbGVt
ZW50UHJlc2VudGF0aW9uYWwpOiBNb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZEluY2x1
ZGVXcmFwcGVyRm9yRnVsbHlTZWxlY3RlZFJvb3QpOiBBZGRlZC4gaXNTcGVjaWFsQW5jZXN0b3JC
bG9jayBpcyBtZXJnZWQgaW50byB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6aGln
aGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwKTogRXh0cmFjdGVkIGZyb20gY3JlYXRlTWFya3VwLgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWFya3VwKTogQ2FsbHMgaGlnaGVzdEFuY2VzdG9yVG9X
cmFwTWFya3VwLgorCiAyMDEwLTA5LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ft
c3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpJbmRleDogV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL21h
cmt1cC5jcHAJKHJldmlzaW9uIDY3MDY3KQorKysgV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTgxOCw1NSArODE4LDYgQEAgc3RhdGljIFBhc3NSZWZQdHI8Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYQogICAgIHJldHVybiBzdHlsZS5yZWxlYXNlKCk7CiB9CiAKLXN0
YXRpYyBib29sIHByb3BlcnR5TWlzc2luZ09yRXF1YWxUb05vbmUoQ1NTU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUsIGludCBwcm9wZXJ0eUlEKQotewotICAgIGlmICghc3R5bGUpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gc3R5bGUtPmdldFByb3Bl
cnR5Q1NTVmFsdWUocHJvcGVydHlJRCk7Ci0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUuZ2V0KCkpLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZTsKLX0KLQotc3RhdGljIGJvb2wg
aXNFbGVtZW50UHJlc2VudGF0aW9uYWwoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICBpZiAobm9k
ZS0+aGFzVGFnTmFtZSh1VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHNUYWcpIHx8IG5vZGUtPmhh
c1RhZ05hbWUoc3RyaWtlVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKGlUYWcpIHx8
IG5vZGUtPmhhc1RhZ05hbWUoZW1UYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoYlRhZykgfHwgbm9k
ZS0+aGFzVGFnTmFtZShzdHJvbmdUYWcpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBSZWZQ
dHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlID0gc3R5bGVGcm9tTWF0Y2hlZFJ1
bGVzQW5kSW5saW5lRGVjbChub2RlKTsKLSAgICBpZiAoIXN0eWxlKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgcmV0dXJuICFwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLmdl
dCgpLCBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uKTsKLX0KLQotc3RhdGljIGJvb2wgaXNTcGVj
aWFsQW5jZXN0b3JCbG9jayhOb2RlKiBub2RlKQotewotICAgIGlmICghbm9kZSB8fCAhaXNCbG9j
ayhub2RlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICByZXR1cm4gbm9k
ZS0+aGFzVGFnTmFtZShsaXN0aW5nVGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKG9s
VGFnKQotICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKHByZVRhZykKLSAgICAgICAgfHwgbm9k
ZS0+aGFzVGFnTmFtZSh0YWJsZVRhZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZSh1bFRh
ZykKLSAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZSh4bXBUYWcpCi0gICAgICAgIHx8IG5vZGUt
Pmhhc1RhZ05hbWUoaDFUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoaDJUYWcpCi0g
ICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoaDNUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1Rh
Z05hbWUoaDRUYWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoaDVUYWcpOwotfQotCi1z
dGF0aWMgYm9vbCBzaG91bGRJbmNsdWRlV3JhcHBlckZvckZ1bGx5U2VsZWN0ZWRSb290KE5vZGUq
IGZ1bGx5U2VsZWN0ZWRSb290LCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCi17
Ci0gICAgaWYgKGZ1bGx5U2VsZWN0ZWRSb290LT5pc0VsZW1lbnROb2RlKCkgJiYgc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KGZ1bGx5U2VsZWN0ZWRSb290KS0+aGFzQXR0cmlidXRlKGJhY2tncm91bmRB
dHRyKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIAotICAgIHJldHVybiBzdHlsZS0+
Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSkgfHwgc3R5bGUt
PmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwotfQotCiBz
dGF0aWMgTm9kZSogc2VyaWFsaXplTm9kZXMoU3R5bGVkTWFya3VwQWNjdW11bGF0b3ImIGFjY3Vt
dWxhdG9yLCBOb2RlKiBzdGFydE5vZGUsIE5vZGUqIHBhc3RFbmQpCiB7CiAgICAgVmVjdG9yPE5v
ZGUqPiBhbmNlc3RvcnNUb0Nsb3NlOwpAQCAtOTQxLDYgKzg5MiwxMDggQEAgc3RhdGljIE5vZGUq
IHNlcmlhbGl6ZU5vZGVzKFN0eWxlZE1hcmt1cAogICAgIHJldHVybiBsYXN0Q2xvc2VkOwogfQog
CitzdGF0aWMgTm9kZSogYW5jZXN0b3JUb1JldGFpblN0cnVjdHVyZUFuZEFwcGVhcmFuY2UoTm9k
ZSogY29tbW9uQW5jZXN0b3IpCit7CisgICAgTm9kZSogY29tbW9uQW5jZXN0b3JCbG9jayA9IGVu
Y2xvc2luZ0Jsb2NrKGNvbW1vbkFuY2VzdG9yKTsKKworICAgIGlmIChjb21tb25BbmNlc3RvckJs
b2NrLT5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBjb21tb25BbmNlc3RvckJsb2NrLT5oYXNUYWdO
YW1lKHRyVGFnKSkgeworICAgICAgICBOb2RlKiB0YWJsZSA9IGNvbW1vbkFuY2VzdG9yQmxvY2st
PnBhcmVudE5vZGUoKTsKKyAgICAgICAgd2hpbGUgKHRhYmxlICYmICF0YWJsZS0+aGFzVGFnTmFt
ZSh0YWJsZVRhZykpCisgICAgICAgICAgICB0YWJsZSA9IHRhYmxlLT5wYXJlbnROb2RlKCk7CisK
KyAgICAgICAgcmV0dXJuIHRhYmxlOworICAgIH0KKworICAgIGlmIChjb21tb25BbmNlc3RvckJs
b2NrLT5oYXNUYWdOYW1lKGxpc3RpbmdUYWcpCisgICAgICAgIHx8IGNvbW1vbkFuY2VzdG9yQmxv
Y2stPmhhc1RhZ05hbWUob2xUYWcpCisgICAgICAgIHx8IGNvbW1vbkFuY2VzdG9yQmxvY2stPmhh
c1RhZ05hbWUocHJlVGFnKQorICAgICAgICB8fCBjb21tb25BbmNlc3RvckJsb2NrLT5oYXNUYWdO
YW1lKHRhYmxlVGFnKQorICAgICAgICB8fCBjb21tb25BbmNlc3RvckJsb2NrLT5oYXNUYWdOYW1l
KHVsVGFnKQorICAgICAgICB8fCBjb21tb25BbmNlc3RvckJsb2NrLT5oYXNUYWdOYW1lKHhtcFRh
ZykKKyAgICAgICAgfHwgY29tbW9uQW5jZXN0b3JCbG9jay0+aGFzVGFnTmFtZShoMVRhZykKKyAg
ICAgICAgfHwgY29tbW9uQW5jZXN0b3JCbG9jay0+aGFzVGFnTmFtZShoMlRhZykKKyAgICAgICAg
fHwgY29tbW9uQW5jZXN0b3JCbG9jay0+aGFzVGFnTmFtZShoM1RhZykKKyAgICAgICAgfHwgY29t
bW9uQW5jZXN0b3JCbG9jay0+aGFzVGFnTmFtZShoNFRhZykKKyAgICAgICAgfHwgY29tbW9uQW5j
ZXN0b3JCbG9jay0+aGFzVGFnTmFtZShoNVRhZykpCisgICAgICAgIHJldHVybiBjb21tb25BbmNl
c3RvckJsb2NrOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBib29sIHByb3BlcnR5TWlz
c2luZ09yRXF1YWxUb05vbmUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIGludCBwcm9wZXJ0
eUlEKQoreworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBSZWZQ
dHI8Q1NTVmFsdWU+IHZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUocHJvcGVydHlJ
RCk7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKCF2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUuZ2V0KCkpLT5nZXRJZGVudCgp
ID09IENTU1ZhbHVlTm9uZTsKK30KKworc3RhdGljIGJvb2wgaXNFbGVtZW50UHJlc2VudGF0aW9u
YWwoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh1VGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKHNUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc3RyaWtlVGFnKQor
ICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKGlUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZW1U
YWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoYlRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShzdHJvbmdU
YWcpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24+IHN0eWxlID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzQW5kSW5saW5lRGVjbChub2Rl
KTsKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuICFw
cm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLmdldCgpLCBDU1NQcm9wZXJ0eVRleHRE
ZWNvcmF0aW9uKTsKK30KKworc3RhdGljIGJvb2wgc2hvdWxkSW5jbHVkZVdyYXBwZXJGb3JGdWxs
eVNlbGVjdGVkUm9vdChOb2RlKiBmdWxseVNlbGVjdGVkUm9vdCwgQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qIHN0eWxlKQoreworICAgIGlmIChmdWxseVNlbGVjdGVkUm9vdC0+aXNFbGVtZW50
Tm9kZSgpICYmIHN0YXRpY19jYXN0PEVsZW1lbnQqPihmdWxseVNlbGVjdGVkUm9vdCktPmhhc0F0
dHJpYnV0ZShiYWNrZ3JvdW5kQXR0cikpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAorICAg
IHJldHVybiBzdHlsZS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUJhY2tncm91bmRJ
bWFnZSkgfHwgc3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlCYWNrZ3JvdW5k
Q29sb3IpOworfQorCitzdGF0aWMgTm9kZSogaGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwKGNv
bnN0IFJhbmdlKiByYW5nZSwgTm9kZSogZnVsbHlTZWxlY3RlZFJvb3QsIEVBbm5vdGF0ZUZvcklu
dGVyY2hhbmdlIHNob3VsZEFubm90YXRlKQoreworICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAg
Tm9kZSogY29tbW9uQW5jZXN0b3IgPSByYW5nZS0+Y29tbW9uQW5jZXN0b3JDb250YWluZXIoZWMp
OworICAgIEFTU0VSVChjb21tb25BbmNlc3Rvcik7CisgICAgTm9kZSogc3BlY2lhbENvbW1vbkFu
Y2VzdG9yID0gMDsKKyAgICBpZiAoc2hvdWxkQW5ub3RhdGUgPT0gQW5ub3RhdGVGb3JJbnRlcmNo
YW5nZSkgeworICAgICAgICBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBhbmNlc3RvclRvUmV0YWlu
U3RydWN0dXJlQW5kQXBwZWFyYW5jZShjb21tb25BbmNlc3Rvcik7CisKKyAgICAgICAgLy8gUmV0
YWluIHRoZSBNYWlsIHF1b3RlIGxldmVsIGJ5IGluY2x1ZGluZyBhbGwgYW5jZXN0b3IgbWFpbCBi
bG9jayBxdW90ZXMuCisgICAgICAgIGZvciAoTm9kZSogYW5jZXN0b3IgPSByYW5nZS0+Zmlyc3RO
b2RlKCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkpIHsKKyAg
ICAgICAgICAgIGlmIChpc01haWxCbG9ja3F1b3RlKGFuY2VzdG9yKSkKKyAgICAgICAgICAgICAg
ICBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBhbmNlc3RvcjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIE5vZGUqIGNoZWNrQW5jZXN0b3IgPSBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPyBzcGVjaWFs
Q29tbW9uQW5jZXN0b3IgOiBjb21tb25BbmNlc3RvcjsKKyAgICBpZiAoY2hlY2tBbmNlc3Rvci0+
cmVuZGVyZXIoKSkgeworICAgICAgICBOb2RlKiBuZXdTcGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBo
aWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShQb3NpdGlvbihjaGVja0FuY2VzdG9yLCAwKSwgJmlz
RWxlbWVudFByZXNlbnRhdGlvbmFsKTsKKyAgICAgICAgaWYgKG5ld1NwZWNpYWxDb21tb25BbmNl
c3RvcikKKyAgICAgICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IG5ld1NwZWNpYWxDb21t
b25BbmNlc3RvcjsKKyAgICB9CisKKyAgICAvLyBJZiBhIHNpbmdsZSB0YWIgaXMgc2VsZWN0ZWQs
IGNvbW1vbkFuY2VzdG9yIHdpbGwgYmUgYSB0ZXh0IG5vZGUgaW5zaWRlIGEgdGFiIHNwYW4uCisg
ICAgLy8gSWYgdHdvIG9yIG1vcmUgdGFicyBhcmUgc2VsZWN0ZWQsIGNvbW1vbkFuY2VzdG9yIHdp
bGwgYmUgdGhlIHRhYiBzcGFuLgorICAgIC8vIEluIGVpdGhlciBjYXNlLCBpZiB0aGVyZSBpcyBh
IHNwZWNpYWxDb21tb25BbmNlc3RvciBhbHJlYWR5LCBpdCB3aWxsIG5lY2Vzc2FyaWx5IGJlIGFi
b3ZlIAorICAgIC8vIGFueSB0YWIgc3BhbiB0aGF0IG5lZWRzIHRvIGJlIGluY2x1ZGVkLgorICAg
IGlmICghc3BlY2lhbENvbW1vbkFuY2VzdG9yICYmIGlzVGFiU3BhblRleHROb2RlKGNvbW1vbkFu
Y2VzdG9yKSkKKyAgICAgICAgc3BlY2lhbENvbW1vbkFuY2VzdG9yID0gY29tbW9uQW5jZXN0b3It
PnBhcmVudE5vZGUoKTsKKyAgICBpZiAoIXNwZWNpYWxDb21tb25BbmNlc3RvciAmJiBpc1RhYlNw
YW5Ob2RlKGNvbW1vbkFuY2VzdG9yKSkKKyAgICAgICAgc3BlY2lhbENvbW1vbkFuY2VzdG9yID0g
Y29tbW9uQW5jZXN0b3I7CisKKyAgICBpZiAoTm9kZSAqZW5jbG9zaW5nQW5jaG9yID0gZW5jbG9z
aW5nTm9kZVdpdGhUYWcoUG9zaXRpb24oc3BlY2lhbENvbW1vbkFuY2VzdG9yID8gc3BlY2lhbENv
bW1vbkFuY2VzdG9yIDogY29tbW9uQW5jZXN0b3IsIDApLCBhVGFnKSkKKyAgICAgICAgc3BlY2lh
bENvbW1vbkFuY2VzdG9yID0gZW5jbG9zaW5nQW5jaG9yOworCisgICAgaWYgKHNob3VsZEFubm90
YXRlID09IEFubm90YXRlRm9ySW50ZXJjaGFuZ2UgJiYgZnVsbHlTZWxlY3RlZFJvb3QpIHsKKyAg
ICAgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBmdWxseVNlbGVjdGVkUm9v
dFN0eWxlID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzQW5kSW5saW5lRGVjbChmdWxseVNlbGVjdGVk
Um9vdCk7CisgICAgICAgIGlmIChzaG91bGRJbmNsdWRlV3JhcHBlckZvckZ1bGx5U2VsZWN0ZWRS
b290KGZ1bGx5U2VsZWN0ZWRSb290LCBmdWxseVNlbGVjdGVkUm9vdFN0eWxlLmdldCgpKSkKKyAg
ICAgICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IGZ1bGx5U2VsZWN0ZWRSb290OworICAg
IH0KKyAgICByZXR1cm4gc3BlY2lhbENvbW1vbkFuY2VzdG9yOworfQorCiAvLyBGSVhNRTogU2hv
dWxkbid0IHdlIG9taXQgc3R5bGUgaW5mbyB3aGVuIGFubm90YXRlID09IERvTm90QW5ub3RhdGVG
b3JJbnRlcmNoYW5nZT8gCiAvLyBGSVhNRTogQXQgbGVhc3QsIGFubm90YXRpb24gYW5kIHN0eWxl
IGluZm8gc2hvdWxkIHByb2JhYmx5IG5vdCBiZSBpbmNsdWRlZCBpbiByYW5nZS5tYXJrdXBTdHJp
bmcoKQogU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIFZlY3RvcjxOb2Rl
Kj4qIG5vZGVzLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBzaG91bGRBbm5vdGF0ZSwgYm9vbCBj
b252ZXJ0QmxvY2tzVG9JbmxpbmVzLCBFQWJzb2x1dGVVUkxzIHNob3VsZFJlc29sdmVVUkxzKQpA
QCAtMTAwMCw2MyArMTA1MywyMiBAQCBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlKiBy
YW5nZSwgCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBOb2RlKiBsYXN0Q2xvc2VkID0gc2VyaWFs
aXplTm9kZXMoYWNjdW11bGF0b3IsIHN0YXJ0Tm9kZSwgcGFzdEVuZCk7Ci0KLSAgICAvLyBJbmNs
dWRlIGFuY2VzdG9ycyB0aGF0IGFyZW4ndCBjb21wbGV0ZWx5IGluc2lkZSB0aGUgcmFuZ2UgYnV0
IGFyZSByZXF1aXJlZCB0byByZXRhaW4gCi0gICAgLy8gdGhlIHN0cnVjdHVyZSBhbmQgYXBwZWFy
YW5jZSBvZiB0aGUgY29waWVkIG1hcmt1cC4KLSAgICBOb2RlKiBzcGVjaWFsQ29tbW9uQW5jZXN0
b3IgPSAwOwotICAgIE5vZGUqIGNvbW1vbkFuY2VzdG9yQmxvY2sgPSBjb21tb25BbmNlc3RvciA/
IGVuY2xvc2luZ0Jsb2NrKGNvbW1vbkFuY2VzdG9yKSA6IDA7Ci0gICAgaWYgKHNob3VsZEFubm90
YXRlID09IEFubm90YXRlRm9ySW50ZXJjaGFuZ2UgJiYgY29tbW9uQW5jZXN0b3JCbG9jaykgewot
ICAgICAgICBpZiAoY29tbW9uQW5jZXN0b3JCbG9jay0+aGFzVGFnTmFtZSh0Ym9keVRhZykgfHwg
Y29tbW9uQW5jZXN0b3JCbG9jay0+aGFzVGFnTmFtZSh0clRhZykpIHsKLSAgICAgICAgICAgIE5v
ZGUqIHRhYmxlID0gY29tbW9uQW5jZXN0b3JCbG9jay0+cGFyZW50Tm9kZSgpOwotICAgICAgICAg
ICAgd2hpbGUgKHRhYmxlICYmICF0YWJsZS0+aGFzVGFnTmFtZSh0YWJsZVRhZykpCi0gICAgICAg
ICAgICAgICAgdGFibGUgPSB0YWJsZS0+cGFyZW50Tm9kZSgpOwotICAgICAgICAgICAgaWYgKHRh
YmxlKQotICAgICAgICAgICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IHRhYmxlOwotICAg
ICAgICB9IGVsc2UgaWYgKGlzU3BlY2lhbEFuY2VzdG9yQmxvY2soY29tbW9uQW5jZXN0b3JCbG9j
aykpCi0gICAgICAgICAgICBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBjb21tb25BbmNlc3RvckJs
b2NrOwotICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAg
Ly8gUmV0YWluIHRoZSBNYWlsIHF1b3RlIGxldmVsIGJ5IGluY2x1ZGluZyBhbGwgYW5jZXN0b3Ig
bWFpbCBibG9jayBxdW90ZXMuCi0gICAgaWYgKGxhc3RDbG9zZWQgJiYgc2hvdWxkQW5ub3RhdGUg
PT0gQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSkgewotICAgICAgICBmb3IgKE5vZGUgKmFuY2VzdG9y
ID0gbGFzdENsb3NlZC0+cGFyZW50Tm9kZSgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rv
ci0+cGFyZW50Tm9kZSgpKQotICAgICAgICAgICAgaWYgKGlzTWFpbEJsb2NrcXVvdGUoYW5jZXN0
b3IpKQotICAgICAgICAgICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IGFuY2VzdG9yOwot
ICAgIH0KLQotICAgIE5vZGUqIGNoZWNrQW5jZXN0b3IgPSBzcGVjaWFsQ29tbW9uQW5jZXN0b3Ig
PyBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgOiBjb21tb25BbmNlc3RvcjsKLSAgICBpZiAoY2hlY2tB
bmNlc3Rvci0+cmVuZGVyZXIoKSkgewotICAgICAgICBOb2RlKiBuZXdTcGVjaWFsQ29tbW9uQW5j
ZXN0b3IgPSBoaWdoZXN0RW5jbG9zaW5nTm9kZU9mVHlwZShQb3NpdGlvbihjaGVja0FuY2VzdG9y
LCAwKSwgJmlzRWxlbWVudFByZXNlbnRhdGlvbmFsKTsKLSAgICAgICAgaWYgKG5ld1NwZWNpYWxD
b21tb25BbmNlc3RvcikKLSAgICAgICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IG5ld1Nw
ZWNpYWxDb21tb25BbmNlc3RvcjsKLSAgICB9Ci0gICAgCi0gICAgLy8gSWYgYSBzaW5nbGUgdGFi
IGlzIHNlbGVjdGVkLCBjb21tb25BbmNlc3RvciB3aWxsIGJlIGEgdGV4dCBub2RlIGluc2lkZSBh
IHRhYiBzcGFuLgotICAgIC8vIElmIHR3byBvciBtb3JlIHRhYnMgYXJlIHNlbGVjdGVkLCBjb21t
b25BbmNlc3RvciB3aWxsIGJlIHRoZSB0YWIgc3Bhbi4KLSAgICAvLyBJbiBlaXRoZXIgY2FzZSwg
aWYgdGhlcmUgaXMgYSBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgYWxyZWFkeSwgaXQgd2lsbCBuZWNl
c3NhcmlseSBiZSBhYm92ZSAKLSAgICAvLyBhbnkgdGFiIHNwYW4gdGhhdCBuZWVkcyB0byBiZSBp
bmNsdWRlZC4KLSAgICBpZiAoIXNwZWNpYWxDb21tb25BbmNlc3RvciAmJiBpc1RhYlNwYW5UZXh0
Tm9kZShjb21tb25BbmNlc3RvcikpCi0gICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IGNv
bW1vbkFuY2VzdG9yLT5wYXJlbnROb2RlKCk7Ci0gICAgaWYgKCFzcGVjaWFsQ29tbW9uQW5jZXN0
b3IgJiYgaXNUYWJTcGFuTm9kZShjb21tb25BbmNlc3RvcikpCi0gICAgICAgIHNwZWNpYWxDb21t
b25BbmNlc3RvciA9IGNvbW1vbkFuY2VzdG9yOwotICAgICAgICAKLSAgICBpZiAoTm9kZSAqZW5j
bG9zaW5nQW5jaG9yID0gZW5jbG9zaW5nTm9kZVdpdGhUYWcoUG9zaXRpb24oc3BlY2lhbENvbW1v
bkFuY2VzdG9yID8gc3BlY2lhbENvbW1vbkFuY2VzdG9yIDogY29tbW9uQW5jZXN0b3IsIDApLCBh
VGFnKSkKLSAgICAgICAgc3BlY2lhbENvbW1vbkFuY2VzdG9yID0gZW5jbG9zaW5nQW5jaG9yOwot
ICAgIAogICAgIE5vZGUqIGJvZHkgPSBlbmNsb3NpbmdOb2RlV2l0aFRhZyhQb3NpdGlvbihjb21t
b25BbmNlc3RvciwgMCksIGJvZHlUYWcpOworICAgIE5vZGUqIGZ1bGx5U2VsZWN0ZWRSb290ID0g
MDsKICAgICAvLyBGSVhNRTogRG8gdGhpcyBmb3IgYWxsIGZ1bGx5IHNlbGVjdGVkIGJsb2Nrcywg
bm90IGp1c3QgdGhlIGJvZHkuCi0gICAgTm9kZSogZnVsbHlTZWxlY3RlZFJvb3QgPSBib2R5ICYm
IGFyZVJhbmdlc0VxdWFsKFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09m
Tm9kZShib2R5KS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCB1cGRhdGVkUmFuZ2UuZ2V0KCkp
ID8gYm9keSA6IDA7Ci0gICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBmdWxs
eVNlbGVjdGVkUm9vdFN0eWxlID0gZnVsbHlTZWxlY3RlZFJvb3QgPyBzdHlsZUZyb21NYXRjaGVk
UnVsZXNBbmRJbmxpbmVEZWNsKGZ1bGx5U2VsZWN0ZWRSb290KSA6IDA7Ci0gICAgaWYgKHNob3Vs
ZEFubm90YXRlID09IEFubm90YXRlRm9ySW50ZXJjaGFuZ2UgJiYgZnVsbHlTZWxlY3RlZFJvb3Qp
IHsKLSAgICAgICAgaWYgKHNob3VsZEluY2x1ZGVXcmFwcGVyRm9yRnVsbHlTZWxlY3RlZFJvb3Qo
ZnVsbHlTZWxlY3RlZFJvb3QsIGZ1bGx5U2VsZWN0ZWRSb290U3R5bGUuZ2V0KCkpKQotICAgICAg
ICAgICAgc3BlY2lhbENvbW1vbkFuY2VzdG9yID0gZnVsbHlTZWxlY3RlZFJvb3Q7Ci0gICAgfQot
ICAgICAgICAKKyAgICBpZiAoYm9keSAmJiBhcmVSYW5nZXNFcXVhbChWaXNpYmxlU2VsZWN0aW9u
OjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUoYm9keSkudG9Ob3JtYWxpemVkUmFuZ2UoKS5n
ZXQoKSwgcmFuZ2UpKQorICAgICAgICBmdWxseVNlbGVjdGVkUm9vdCA9IGJvZHk7CisKKyAgICBO
b2RlKiBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBoaWdoZXN0QW5jZXN0b3JUb1dyYXBNYXJrdXAo
dXBkYXRlZFJhbmdlLmdldCgpLCBmdWxseVNlbGVjdGVkUm9vdCwgc2hvdWxkQW5ub3RhdGUpOwor
CisgICAgTm9kZSogbGFzdENsb3NlZCA9IHNlcmlhbGl6ZU5vZGVzKGFjY3VtdWxhdG9yLCBzdGFy
dE5vZGUsIHBhc3RFbmQpOworCiAgICAgaWYgKHNwZWNpYWxDb21tb25BbmNlc3RvciAmJiBsYXN0
Q2xvc2VkKSB7CiAgICAgICAgIC8vIEFsc28gaW5jbHVkZSBhbGwgb2YgdGhlIGFuY2VzdG9ycyBv
ZiBsYXN0Q2xvc2VkIHVwIHRvIHRoaXMgc3BlY2lhbCBhbmNlc3Rvci4KICAgICAgICAgZm9yIChO
b2RlKiBhbmNlc3RvciA9IGxhc3RDbG9zZWQtPnBhcmVudE5vZGUoKTsgYW5jZXN0b3I7IGFuY2Vz
dG9yID0gYW5jZXN0b3ItPnBhcmVudE5vZGUoKSkgewogICAgICAgICAgICAgaWYgKGFuY2VzdG9y
ID09IGZ1bGx5U2VsZWN0ZWRSb290ICYmICFjb252ZXJ0QmxvY2tzVG9JbmxpbmVzKSB7Ci0gICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uPiBmdWxseVNlbGVjdGVkUm9vdFN0eWxlID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzQW5k
SW5saW5lRGVjbChmdWxseVNlbGVjdGVkUm9vdCk7CisKICAgICAgICAgICAgICAgICAvLyBCcmlu
ZyB0aGUgYmFja2dyb3VuZCBhdHRyaWJ1dGUgb3ZlciwgYnV0IG5vdCBhcyBhbiBhdHRyaWJ1dGUg
YmVjYXVzZSBhIGJhY2tncm91bmQgYXR0cmlidXRlIG9uIGEgZGl2CiAgICAgICAgICAgICAgICAg
Ly8gYXBwZWFycyB0byBoYXZlIG5vIGVmZmVjdC4KICAgICAgICAgICAgICAgICBpZiAoIWZ1bGx5
U2VsZWN0ZWRSb290U3R5bGUtPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVydHlCYWNrZ3Jv
dW5kSW1hZ2UpICYmIHN0YXRpY19jYXN0PEVsZW1lbnQqPihmdWxseVNlbGVjdGVkUm9vdCktPmhh
c0F0dHJpYnV0ZShiYWNrZ3JvdW5kQXR0cikpCg==
</data>
<flag name="review"
          id="56191"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>