<?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>30892</bug_id>
          
          <creation_ts>2009-10-28 17:58:11 -0700</creation_ts>
          <short_desc>REGRESSION(3.2.3 - 4.0.2): Message composing: when I undo a color change to text, undo/redo behaves strangely</short_desc>
          <delta_ts>2009-10-29 16:37:35 -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>PC</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>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>adele</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>158796</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2009-10-28 17:58:11 -0700</bug_when>
    <thetext>0) Start any HTML editor
1) Type text like &quot;1 2 3&quot;
3) Select the middle text (the &quot;2&quot; in this case)
4) Show Colors
5) Change the color of &quot;2&quot; to green (or whatever)
6) Hide Colors 
7) Undo (color of &quot;2&quot; goes back to black)
8) Redo

Expected results:

1 2 3 [with the &quot;2&quot; changed to green again]

Actual results:

1 2 [the text after the previous selection is gone]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158806</commentid>
    <comment_count>1</comment_count>
      <attachid>42074</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2009-10-28 18:18:14 -0700</bug_when>
    <thetext>Created attachment 42074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158964</commentid>
    <comment_count>2</comment_count>
      <attachid>42074</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-10-29 11:00:02 -0700</bug_when>
    <thetext>Comment on attachment 42074
Patch

This generally looks pretty good to me.  Is it possible to reuse the doApply code for these commands and make them use the saved m_dummySpan or m_element1 if those elements are available?  It would be nice if we didn&apos;t have to replicate the logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158968</commentid>
    <comment_count>3</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2009-10-29 11:04:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 42074 [details])
&gt; This generally looks pretty good to me.  Is it possible to reuse the doApply
&gt; code for these commands and make them use the saved m_dummySpan or m_element1
&gt; if those elements are available?  It would be nice if we didn&apos;t have to
&gt; replicate the logic.

I thought about that initially and discussed it with Dan. We both agreed that it was a cleaner design to have separate entry points for apply and reapply, since the architecture has provision for this.
If you prefer, I could still have separate entry points but call a new private method that implements the common code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158971</commentid>
    <comment_count>4</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-10-29 11:07:49 -0700</bug_when>
    <thetext>OK, separate entry points makes sense.  I like the idea of a new private method to share the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159032</commentid>
    <comment_count>5</comment_count>
      <attachid>42074</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-29 13:16:48 -0700</bug_when>
    <thetext>Comment on attachment 42074
Patch

Good approach!

&gt; +void SplitElementCommand::doReapply()
&gt; +{
&gt; +    if (!m_element1)
&gt; +        return;
&gt; +    
&gt; +    if (m_atChild-&gt;parentNode() != m_element2)
&gt; +        return;
&gt; +    
&gt; +    Vector&lt;RefPtr&lt;Node&gt; &gt; children;
&gt; +    for (Node* node = m_element2-&gt;firstChild(); node != m_atChild; node = node-&gt;nextSibling())
&gt; +        children.append(node);
&gt; +    
&gt; +    ExceptionCode ec = 0;
&gt; +    
&gt; +    Node* parent = m_element2-&gt;parentNode();
&gt; +    if (!parent)
&gt; +        return;
&gt; +    parent-&gt;insertBefore(m_element1.get(), m_element2.get(), ec);
&gt; +    if (ec)
&gt; +        return;
&gt; +    
&gt; +    size_t size = children.size();
&gt; +    for (size_t i = 0; i &lt; size; ++i)
&gt; +        m_element1-&gt;appendChild(children[i], ec);
&gt; +}

This needs to share more code with doApply. It&apos;s not good to have all that code copied and pasted. I suggest moving most of doApply into a new function and have both doApply and doReapply call it.

Same comment for WrapContentsInDummySpanCommand.

review- because of the copied and pasted code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159063</commentid>
    <comment_count>6</comment_count>
      <attachid>42138</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2009-10-29 13:54:11 -0700</bug_when>
    <thetext>Created attachment 42138
Patch2

added executeApply to wrap code in common between doApply and doReapply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159141</commentid>
    <comment_count>7</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2009-10-29 16:37:35 -0700</bug_when>
    <thetext>Committed revision 50310.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42074</attachid>
            <date>2009-10-28 18:18:14 -0700</date>
            <delta_ts>2009-10-29 13:54:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug7115041.txt</filename>
            <type>text/plain</type>
            <size>13246</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDI1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMTAtMjggIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
RUdSRVNTSU9OKDMuMi4zIC0gNC4wLjIpOiBNZXNzYWdlIGNvbXBvc2luZzogd2hlbiBJIHVuZG8g
YSBjb2xvciBjaGFuZ2UgdG8gdGV4dCBpbiBNYWlsLCB1bmRvL3JlZG8gYmVoYXZlcyBzdHJhbmdl
bHkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNjcwMzM+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDg5MgorICAgICAgICAKKyAgICAgICAgVGhp
cyBwcm9ibGVtIHNob3dzIGluIGFueSBzY2VuYXJpbyB3aGVyZSBpdCBpcyBuZWNlc3NhcnkgdG8g
c3BsaXQgYSB0ZXh0CisgICAgICAgIG5vZGUgdG8gYXBwbHkgYSBzdHlsZS4gU3BsaXRFbGVtZW50
Q29tbWFuZCBhbmQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kIGJvdGgKKyAgICAgICAg
aGF2ZSBtZW1iZXIgdmFyaWFibGVzIGluaXRpYWxpemVkIGluIHRoZSBjb25zdHJ1Y3RvciB0byBr
ZWVwIHJlZmVyZW5jZSB0byBlbGVtZW50cworICAgICAgICB0aGV5IG5lZWQgdG8gb3BlcmF0ZSB1
cG9uLiBUaGVzZSByZWZlcmVuY2UgYXJlIG5vdCB1cGRhdGVkIHdoZW4gcmVhcHBseWluZyB0aGUg
Y29tbWFuZC4KKyAgICAgICAgRm9yIHRoaXMgcmVhc29uIGl0IGlzIG5lY2Vzc2FyeSB0byBndWFy
YW50ZWUgdGhhdCB1bmFwcGx5IGRvZXNuIG5vdCBkZWxldGUgdGhlIHJlZmVyZW5jZXMKKyAgICAg
ICAgYW5kIHRoYXQgdGhlc2UgY29tbWFuZHMgaW1wbGVtZW50IGRvUmVhcHBseSB0byBjb3JyZWN0
bHkgcmV1c2UgdGhlIGV4aXN0aW5nCisgICAgICAgIGVsZW1lbnRzLgorICAgICAgICAKKyAgICAg
ICAgVGVzdDogZWRpdGluZy91bmRvL3JlZG8tc3R5bGUuaHRtbAorCisgICAgICAgICogZWRpdGlu
Zy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwbGl0RWxlbWVu
dENvbW1hbmQ6OmRvVW5hcHBseSk6IERvZXNuJ3QgcmVsZWFzZSBtX2VsZW1lbnQxLgorICAgICAg
ICAoV2ViQ29yZTo6U3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9SZWFwcGx5KTogQWRkZWQuCisgICAg
ICAgICogZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmg6IEFkZGVkIGRvUmVhcHBseS4KKyAg
ICAgICAgKiBlZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQ6OmRvQXBwbHkpOgor
ICAgICAgICAoV2ViQ29yZTo6V3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb1VuYXBw
bHkpOiBEb2Vzbid0IHJlbGVhc2UgbV9kdW1teVNwYW4uCisgICAgICAgIChXZWJDb3JlOjpXcmFw
Q29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQ6OmRvUmVhcHBseSk6IEFkZGVkLgorICAgICAgICAq
IGVkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmg6IEFkZGVkIGRvUmVhcHBs
eS4KKwogMjAwOS0xMC0yOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1NwbGl0
RWxlbWVudENvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9TcGxpdEVs
ZW1lbnRDb21tYW5kLmNwcAkocmV2aXNpb24gNTAyNTIpCisrKyBXZWJDb3JlL2VkaXRpbmcvU3Bs
aXRFbGVtZW50Q29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDMyIEBAIHZv
aWQgU3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9VbmFwcGx5KCkKICAgICAgICAgbV9lbGVtZW50Mi0+
aW5zZXJ0QmVmb3JlKGNoaWxkcmVuW2ldLmdldCgpLCByZWZDaGlsZC5nZXQoKSwgZWMpOwogCiAg
ICAgbV9lbGVtZW50MS0+cmVtb3ZlKGVjKTsKLSAgICBtX2VsZW1lbnQxID0gMDsKIH0KIAordm9p
ZCBTcGxpdEVsZW1lbnRDb21tYW5kOjpkb1JlYXBwbHkoKQoreworICAgIGlmICghbV9lbGVtZW50
MSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlmIChtX2F0Q2hpbGQtPnBhcmVudE5vZGUo
KSAhPSBtX2VsZW1lbnQyKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgVmVjdG9yPFJlZlB0
cjxOb2RlPiA+IGNoaWxkcmVuOworICAgIGZvciAoTm9kZSogbm9kZSA9IG1fZWxlbWVudDItPmZp
cnN0Q2hpbGQoKTsgbm9kZSAhPSBtX2F0Q2hpbGQ7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygp
KQorICAgICAgICBjaGlsZHJlbi5hcHBlbmQobm9kZSk7CisgICAgCisgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CisgICAgCisgICAgTm9kZSogcGFyZW50ID0gbV9lbGVtZW50Mi0+cGFyZW50Tm9k
ZSgpOworICAgIGlmICghcGFyZW50KQorICAgICAgICByZXR1cm47CisgICAgcGFyZW50LT5pbnNl
cnRCZWZvcmUobV9lbGVtZW50MS5nZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAgIGlm
IChlYykKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHNpemVfdCBzaXplID0gY2hpbGRyZW4u
c2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQorICAgICAgICBt
X2VsZW1lbnQxLT5hcHBlbmRDaGlsZChjaGlsZHJlbltpXSwgZWMpOworfQorICAgIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1h
bmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5o
CShyZXZpc2lvbiA1MDI1MikKKysrIFdlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5k
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1
YWwgdm9pZCBkb0FwcGx5KCk7CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpOworICAgIHZp
cnR1YWwgdm9pZCBkb1JlYXBwbHkoKTsKIAogICAgIFJlZlB0cjxFbGVtZW50PiBtX2VsZW1lbnQx
OwogICAgIFJlZlB0cjxFbGVtZW50PiBtX2VsZW1lbnQyOwpJbmRleDogV2ViQ29yZS9lZGl0aW5n
L1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAJKHJldmlzaW9uIDUw
MjUyKQorKysgV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDI1ICs0MywyNSBAQCB2b2lkIFdyYXBDb250ZW50c0lu
RHVtbXlTcGFuQ29tbWFuZDo6ZG9BCiAgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IGNoaWxkcmVu
OwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBtX2VsZW1lbnQtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGNoaWxkcmVuLmFwcGVuZChj
aGlsZCk7Ci0KKyAgICAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHNwYW4gPSBjcmVhdGVTdHls
ZVNwYW5FbGVtZW50KGRvY3VtZW50KCkpOwotIAorICAgIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7
Ci0KKyAgICAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVuLnNpemUoKTsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgc3Bhbi0+YXBwZW5kQ2hpbGQoY2hp
bGRyZW5baV0ucmVsZWFzZSgpLCBlYyk7Ci0KKyAgICAKICAgICBtX2VsZW1lbnQtPmFwcGVuZENo
aWxkKHNwYW4uZ2V0KCksIGVjKTsKLQorICAgIAogICAgIG1fZHVtbXlTcGFuID0gc3Bhbi5yZWxl
YXNlKCk7CiB9Ci0KKyAgICAKIHZvaWQgV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpk
b1VuYXBwbHkoKQogewogICAgIEFTU0VSVChtX2VsZW1lbnQpOwogCi0gICAgUmVmUHRyPEhUTUxF
bGVtZW50PiBzcGFuID0gbV9kdW1teVNwYW4ucmVsZWFzZSgpOworICAgIFJlZlB0cjxIVE1MRWxl
bWVudD4gc3BhbiA9IG1fZHVtbXlTcGFuOwogICAgIGlmICghc3BhbikKICAgICAgICAgcmV0dXJu
OwogCkBAIC03OCw0ICs3OCwyNCBAQCB2b2lkIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFu
ZDo6ZG9VCiAgICAgc3Bhbi0+cmVtb3ZlKGVjKTsKIH0KIAordm9pZCBXcmFwQ29udGVudHNJbkR1
bW15U3BhbkNvbW1hbmQ6OmRvUmVhcHBseSgpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudCk7Cisg
ICAgCisgICAgaWYgKCFtX2R1bW15U3BhbikKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIFZl
Y3RvcjxSZWZQdHI8Tm9kZT4gPiBjaGlsZHJlbjsKKyAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9l
bGVtZW50LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KQorICAgICAgICBjaGlsZHJlbi5hcHBlbmQoY2hpbGQpOworICAgIAorICAgIEV4Y2VwdGlvbkNv
ZGUgZWM7CisgICAgCisgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIG1fZHVtbXlTcGFuLT5hcHBl
bmRDaGlsZChjaGlsZHJlbltpXS5yZWxlYXNlKCksIGVjKTsKKyAgICAKKyAgICBtX2VsZW1lbnQt
PmFwcGVuZENoaWxkKG1fZHVtbXlTcGFuLmdldCgpLCBlYyk7Cit9CisgICAgCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNw
YW5Db21tYW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0lu
RHVtbXlTcGFuQ29tbWFuZC5oCShyZXZpc2lvbiA1MDI1MikKKysrIFdlYkNvcmUvZWRpdGluZy9X
cmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiAr
NDQsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZG9VbmFwcGx5KCk7CisgICAgdmlydHVhbCB2b2lkIGRvUmVhcHBseSgpOwogCiAg
ICAgUmVmUHRyPEVsZW1lbnQ+IG1fZWxlbWVudDsKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1f
ZHVtbXlTcGFuOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTAyNTIpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOS0xMC0yOCAgRW5yaWNh
IENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04oMy4yLjMgLSA0LjAuMik6IE1lc3NhZ2Ug
Y29tcG9zaW5nOiB3aGVuIEkgdW5kbyBhIGNvbG9yIGNoYW5nZSB0byB0ZXh0IGluIE1haWwsIHVu
ZG8vcmVkbyBiZWhhdmVzIHN0cmFuZ2VseQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA2NzAz
Mz4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwODky
CisKKyAgICAgICAgKiBlZGl0aW5nL3VuZG8vcmVkby1zdHlsZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGVkaXRpbmcvdW5kby9yZWRvLXN0eWxlLmh0bWw6IEFkZGVkLgorCiAyMDA5
LTEwLTI4ICBBbmRyZXcgU2NoZXJrdXMgIDxzY2hlcmt1c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy91
bmRvL3JlZG8tc3R5bGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvdW5kby9yZWRvLXN0eWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvdW5kby9yZWRvLXN0eWxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw1MSBAQAorRURJVElORyBERUxFR0FURTogc2hvdWxkQmVnaW5FZGl0aW5nSW5E
T01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8g
NyBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZEJlZ2luRWRpdGluZzpXZWJWaWV3RGlkQmVnaW5FZGl0aW5nTm90aWZpY2F0aW9uCitF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElO
RyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGls
bFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBESVYg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAyIG9mICN0ZXh0ID4gRElWID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9m
ICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIg
b2YgI3RleHQgPiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZm
aW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UK
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hh
bmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3Rl
eHQgPiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAj
dGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0
eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
OldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9E
T01SYW5nZTpyYW5nZSBmcm9tIDIgb2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rp
bmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFu
Z2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBTUEFOID4gRElW
ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZp
bml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdl
Tm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlm
aWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToo
bnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBTUEFOID4gRElWID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMiBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5
RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogc2hv
dWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQg
b2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA2IG9mICN0
ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxl
Y3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3
RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitUaGlzIHRl
c3RzIGFwcGx5aW5nIGEgYmFja2dyb3VuZCBjb2xvciBhdCB0aGUgYmVnaW5uaW5nLCB0aGUgbWlk
ZGxlIGFuZCB0aGUgZW5kIG9mIG9uZSBzZW50ZW5jZSwgdGhlbiB1bmRvIGFuZCByZWRvLgorQnVn
IDMwODkyCisKK0hlbGxvIQorSGVsbG8hCitIZWxsbyEKKworVGVzdCAxOiBQQVNTRUQKK1Rlc3Qg
MjogUEFTU0VECitUZXN0IDM6IFBBU1NFRApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy91bmRv
L3JlZG8tc3R5bGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8v
cmVkby1zdHlsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRv
L3JlZG8tc3R5bGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorPGh0bWw+Cis8
Ym9keT4KK1RoaXMgdGVzdHMgYXBwbHlpbmcgYSBiYWNrZ3JvdW5kIGNvbG9yIGF0IHRoZSBiZWdp
bm5pbmcsIHRoZSBtaWRkbGUgYW5kIHRoZSBlbmQgb2Ygb25lIHNlbnRlbmNlLCB0aGVuIHVuZG8g
YW5kIHJlZG8uCis8cD4KKzxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMDg5MiI+QnVnIDMwODkyPC9hPgorPC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU9
InRydWUiPgorPGRpdiBpZD0idGVzdDEiPkhlbGxvITwvZGl2PgorPGRpdiBpZD0idGVzdDIiPkhl
bGxvITwvZGl2PgorPGRpdiBpZD0idGVzdDMiPkhlbGxvITwvZGl2PgorPC9kaXY+Cis8YnI+Cis8
dWw+Cis8bGk+VGVzdCAxOiA8c3BhbiBpZD0iYzEiPjwvc3Bhbj48L2xpPgorPGxpPlRlc3QgMjog
PHNwYW4gaWQ9ImMyIj48L3NwYW4+PC9saT4KKzxsaT5UZXN0IDM6IDxzcGFuIGlkPSJjMyI+PC9z
cGFuPjwvbGk+Cis8L3VsPgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitmdW5j
dGlvbiBydW5UZXN0KGVsZW0sIG5vZGUpCit7CisgICAgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChub2RlKTsKKyAgICB2YXIgYmVmb3JlID0gZS5pbm5lckhUTUw7CisgICAgZG9jdW1l
bnQuZXhlY0NvbW1hbmQoImhpbGl0ZWNvbG9yIiwgZmFsc2UsICIjRkYwMDAwIik7CisgICAgdmFy
IGFmdGVyID0gZS5pbm5lckhUTUw7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoInVuZG8iKTsK
KyAgICB2YXIgYWZ0ZXJ1bmRvID0gZS5pbm5lckhUTUw7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoInJlZG8iKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW0pLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCgoYmVmb3JlID09IGFmdGVydW5kbykgJiYgKGFm
dGVyID09IGUuaW5uZXJIVE1MKSk/ICJQQVNTRUQiOiAiRkFJTEVEIikpOworfQorCitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEVkaXRpbmdDYWxsYmFja3MoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Cit9CisKK3ZhciBzID0gd2luZG93LmdldFNlbGVjdGlvbigpOworcy5zZXRCYXNlQW5kRXh0
ZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScpLmZpcnN0Q2hpbGQsIDAsIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScpLmZpcnN0Q2hpbGQsIDIpOworcnVuVGVzdCgnYzEn
LCAndGVzdDEnKTsKK3Muc2V0QmFzZUFuZEV4dGVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDInKS5maXJzdENoaWxkLCAyLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5m
aXJzdENoaWxkLCA0KTsKK3J1blRlc3QoJ2MyJywgJ3Rlc3QyJyk7CitzLnNldEJhc2VBbmRFeHRl
bnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzJykuZmlyc3RDaGlsZCwgNCwgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QzJykuZmlyc3RDaGlsZCwgNik7CitydW5UZXN0KCdjMycs
ICd0ZXN0MycpOworPC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="23576"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42138</attachid>
            <date>2009-10-29 13:54:11 -0700</date>
            <delta_ts>2009-10-29 14:18:20 -0700</delta_ts>
            <desc>Patch2</desc>
            <filename>bug7115041.txt</filename>
            <type>text/plain</type>
            <size>14525</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDI5OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDktMTAtMjkgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
RUdSRVNTSU9OKDMuMi4zIC0gNC4wLjIpOiBNZXNzYWdlIGNvbXBvc2luZzogd2hlbiBJIHVuZG8g
YSBjb2xvciBjaGFuZ2UgdG8gdGV4dCBpbiBNYWlsLCB1bmRvL3JlZG8gYmVoYXZlcyBzdHJhbmdl
bHkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwNjcwMzM+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDg5MgorCisgICAgICAgIFRoaXMgcHJvYmxl
bSBzaG93cyBpbiBhbnkgc2NlbmFyaW8gd2hlcmUgaXQgaXMgbmVjZXNzYXJ5IHRvIHNwbGl0IGEg
dGV4dAorICAgICAgICBub2RlIHRvIGFwcGx5IGEgc3R5bGUuIFNwbGl0RWxlbWVudENvbW1hbmQg
YW5kIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZCBib3RoCisgICAgICAgIGhhdmUgbWVt
YmVyIHZhcmlhYmxlcyBpbml0aWFsaXplZCBpbiB0aGUgY29uc3RydWN0b3IgdG8ga2VlcCByZWZl
cmVuY2UgdG8gZWxlbWVudHMKKyAgICAgICAgdGhleSBuZWVkIHRvIG9wZXJhdGUgdXBvbi4gVGhl
c2UgcmVmZXJlbmNlIGFyZSBub3QgdXBkYXRlZCB3aGVuIHJlYXBwbHlpbmcgdGhlIGNvbW1hbmQu
CisgICAgICAgIEZvciB0aGlzIHJlYXNvbiBpdCBpcyBuZWNlc3NhcnkgdG8gZ3VhcmFudGVlIHRo
YXQgdW5hcHBseSBkb2VzbiBub3QgZGVsZXRlIHRoZSByZWZlcmVuY2VzCisgICAgICAgIGFuZCB0
aGF0IHRoZXNlIGNvbW1hbmRzIGltcGxlbWVudCBkb1JlYXBwbHkgdG8gY29ycmVjdGx5IHJldXNl
IHRoZSBleGlzdGluZworICAgICAgICBlbGVtZW50cy4KKworICAgICAgICBUZXN0OiBlZGl0aW5n
L3VuZG8vcmVkby1zdHlsZS5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1NwbGl0RWxlbWVudENv
bW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BsaXRFbGVtZW50Q29tbWFuZDo6ZXhlY3V0
ZUFwcGx5KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGxpdEVsZW1lbnRDb21tYW5kOjpk
b0FwcGx5KTogTW9kaWZpZWQgdG8gY2FsbCBleGVjdXRlQXBwbHkuIAorICAgICAgICAoV2ViQ29y
ZTo6U3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9VbmFwcGx5KTogRG9lc24ndCByZWxlYXNlIG1fZWxl
bWVudDEuCisgICAgICAgIChXZWJDb3JlOjpTcGxpdEVsZW1lbnRDb21tYW5kOjpkb1JlYXBwbHkp
OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuaDogQWRkZWQg
ZG9SZWFwcGx5IGFuZCBleGVjdXRlQXBwbHkuCisgICAgICAgICogZWRpdGluZy9XcmFwQ29udGVu
dHNJbkR1bW15U3BhbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V3JhcENvbnRlbnRz
SW5EdW1teVNwYW5Db21tYW5kOjpleGVjdXRlQXBwbHkpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OldyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6ZG9BcHBseSk6IE1vZGlmaWVkIHRv
IGNhbGwgZXhlY3V0ZUFwcGx5LgorICAgICAgICAoV2ViQ29yZTo6V3JhcENvbnRlbnRzSW5EdW1t
eVNwYW5Db21tYW5kOjpkb1VuYXBwbHkpOiBEb2Vzbid0IHJlbGVhc2UgbV9kdW1teVNwYW4uCisg
ICAgICAgIChXZWJDb3JlOjpXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQ6OmRvUmVhcHBs
eSk6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21t
YW5kLmg6IEFkZGVkIGRvUmVhcHBseSBhbmQgZXhlY3V0ZUFwcGx5LgorCiAyMDA5LTEwLTI5ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCByb2xs
aW5nIG91dCByNTAyOTYuCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFu
ZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQu
Y3BwCShyZXZpc2lvbiA1MDI5OSkKKysrIFdlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21t
YW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsMzEgKzQxLDM1IEBAIFNwbGl0RWxlbWVudENv
bW1hbmQ6OlNwbGl0RWxlbWVudENvbW1hbmQKICAgICBBU1NFUlQobV9hdENoaWxkLT5wYXJlbnRO
b2RlKCkgPT0gbV9lbGVtZW50Mik7CiB9CiAKLXZvaWQgU3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9B
cHBseSgpCit2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmV4ZWN1dGVBcHBseSgpCiB7Ci0gICAg
UmVmUHRyPEVsZW1lbnQ+IHByZWZpeEVsZW1lbnQgPSBtX2VsZW1lbnQyLT5jbG9uZUVsZW1lbnRX
aXRob3V0Q2hpbGRyZW4oKTsKLQogICAgIGlmIChtX2F0Q2hpbGQtPnBhcmVudE5vZGUoKSAhPSBt
X2VsZW1lbnQyKQogICAgICAgICByZXR1cm47Ci0KKyAgICAKICAgICBWZWN0b3I8UmVmUHRyPE5v
ZGU+ID4gY2hpbGRyZW47CiAgICAgZm9yIChOb2RlKiBub2RlID0gbV9lbGVtZW50Mi0+Zmlyc3RD
aGlsZCgpOyBub2RlICE9IG1fYXRDaGlsZDsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpCiAg
ICAgICAgIGNoaWxkcmVuLmFwcGVuZChub2RlKTsKLQorICAgIAogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotCisgICAgCiAgICAgTm9kZSogcGFyZW50ID0gbV9lbGVtZW50Mi0+cGFyZW50Tm9k
ZSgpOwogICAgIGlmICghcGFyZW50KQogICAgICAgICByZXR1cm47Ci0gICAgcGFyZW50LT5pbnNl
cnRCZWZvcmUocHJlZml4RWxlbWVudC5nZXQoKSwgbV9lbGVtZW50Mi5nZXQoKSwgZWMpOworICAg
IHBhcmVudC0+aW5zZXJ0QmVmb3JlKG1fZWxlbWVudDEuZ2V0KCksIG1fZWxlbWVudDIuZ2V0KCks
IGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2VsZW1lbnQxID0gcHJl
Zml4RWxlbWVudC5yZWxlYXNlKCk7Ci0KKyAgICAKICAgICBzaXplX3Qgc2l6ZSA9IGNoaWxkcmVu
LnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAg
bV9lbGVtZW50MS0+YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0sIGVjKTsKIH0KKyAgICAKK3ZvaWQg
U3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9BcHBseSgpCit7CisgICAgbV9lbGVtZW50MSA9IG1fZWxl
bWVudDItPmNsb25lRWxlbWVudFdpdGhvdXRDaGlsZHJlbigpOworICAgIAorICAgIGV4ZWN1dGVB
cHBseSgpOworfQogCiB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CkBA
IC04NSw3ICs4OSwxNCBAQCB2b2lkIFNwbGl0RWxlbWVudENvbW1hbmQ6OmRvVW5hcHBseSgpCiAg
ICAgICAgIG1fZWxlbWVudDItPmluc2VydEJlZm9yZShjaGlsZHJlbltpXS5nZXQoKSwgcmVmQ2hp
bGQuZ2V0KCksIGVjKTsKIAogICAgIG1fZWxlbWVudDEtPnJlbW92ZShlYyk7Ci0gICAgbV9lbGVt
ZW50MSA9IDA7CiB9CiAKK3ZvaWQgU3BsaXRFbGVtZW50Q29tbWFuZDo6ZG9SZWFwcGx5KCkKK3sK
KyAgICBpZiAoIW1fZWxlbWVudDEpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBleGVjdXRl
QXBwbHkoKTsKK30KKyAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
ZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0
aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuaAkocmV2aXNpb24gNTAyOTkpCisrKyBXZWJDb3JlL2Vk
aXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4
IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwogICAgIHZpcnR1YWwg
dm9pZCBkb1VuYXBwbHkoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9SZWFwcGx5KCk7CisgICAgdm9p
ZCBleGVjdXRlQXBwbHkoKTsKIAogICAgIFJlZlB0cjxFbGVtZW50PiBtX2VsZW1lbnQxOwogICAg
IFJlZlB0cjxFbGVtZW50PiBtX2VsZW1lbnQyOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1dyYXBD
b250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0
aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAJKHJldmlzaW9uIDUwMjk5KQor
KysgV2ViQ29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM4LDM1ICszOCwzNyBAQCBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNv
bW1hbmQ6OldyYXBDb250CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7CiB9CiAKLXZvaWQgV3JhcENv
bnRlbnRzSW5EdW1teVNwYW5Db21tYW5kOjpkb0FwcGx5KCkKK3ZvaWQgV3JhcENvbnRlbnRzSW5E
dW1teVNwYW5Db21tYW5kOjpleGVjdXRlQXBwbHkoKQogewogICAgIFZlY3RvcjxSZWZQdHI8Tm9k
ZT4gPiBjaGlsZHJlbjsKICAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9lbGVtZW50LT5maXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICBjaGls
ZHJlbi5hcHBlbmQoY2hpbGQpOwotCi0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBzcGFuID0gY3Jl
YXRlU3R5bGVTcGFuRWxlbWVudChkb2N1bWVudCgpKTsKLSAKKyAgICAKICAgICBFeGNlcHRpb25D
b2RlIGVjOwotCisgICAgCiAgICAgc2l6ZV90IHNpemUgPSBjaGlsZHJlbi5zaXplKCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHNwYW4tPmFwcGVuZENo
aWxkKGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgZWMpOwotCi0gICAgbV9lbGVtZW50LT5hcHBlbmRD
aGlsZChzcGFuLmdldCgpLCBlYyk7Ci0KLSAgICBtX2R1bW15U3BhbiA9IHNwYW4ucmVsZWFzZSgp
OworICAgICAgICBtX2R1bW15U3Bhbi0+YXBwZW5kQ2hpbGQoY2hpbGRyZW5baV0ucmVsZWFzZSgp
LCBlYyk7CisgICAgCisgICAgbV9lbGVtZW50LT5hcHBlbmRDaGlsZChtX2R1bW15U3Bhbi5nZXQo
KSwgZWMpOwogfQogCit2b2lkIFdyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZDo6ZG9BcHBs
eSgpCit7CisgICAgbV9kdW1teVNwYW4gPSBjcmVhdGVTdHlsZVNwYW5FbGVtZW50KGRvY3VtZW50
KCkpOworICAgIAorICAgIGV4ZWN1dGVBcHBseSgpOworfQorICAgIAogdm9pZCBXcmFwQ29udGVu
dHNJbkR1bW15U3BhbkNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVu
dCk7CiAKLSAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHNwYW4gPSBtX2R1bW15U3Bhbi5yZWxlYXNl
KCk7Ci0gICAgaWYgKCFzcGFuKQorICAgIGlmICghbV9kdW1teVNwYW4pCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBjaGlsZHJlbjsKLSAgICBmb3IgKE5vZGUq
IGNoaWxkID0gc3Bhbi0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNp
YmxpbmcoKSkKKyAgICBmb3IgKE5vZGUqIGNoaWxkID0gbV9kdW1teVNwYW4tPmZpcnN0Q2hpbGQo
KTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIGNoaWxkcmVu
LmFwcGVuZChjaGlsZCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjOwpAQCAtNzUsNyArNzcsMTcg
QEAgdm9pZCBXcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQ6OmRvVQogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBtX2VsZW1lbnQtPmFwcGVuZENoaWxk
KGNoaWxkcmVuW2ldLnJlbGVhc2UoKSwgZWMpOwogCi0gICAgc3Bhbi0+cmVtb3ZlKGVjKTsKKyAg
ICBtX2R1bW15U3Bhbi0+cmVtb3ZlKGVjKTsKIH0KIAordm9pZCBXcmFwQ29udGVudHNJbkR1bW15
U3BhbkNvbW1hbmQ6OmRvUmVhcHBseSgpCit7CisgICAgQVNTRVJUKG1fZWxlbWVudCk7CisgICAg
CisgICAgaWYgKCFtX2R1bW15U3BhbikKKyAgICAgICAgcmV0dXJuOworCisgICAgZXhlY3V0ZUFw
cGx5KCk7Cit9CisgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2Vk
aXRpbmcvV3JhcENvbnRlbnRzSW5EdW1teVNwYW5Db21tYW5kLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9lZGl0aW5nL1dyYXBDb250ZW50c0luRHVtbXlTcGFuQ29tbWFuZC5oCShyZXZpc2lvbiA1
MDI5OSkKKysrIFdlYkNvcmUvZWRpdGluZy9XcmFwQ29udGVudHNJbkR1bW15U3BhbkNvbW1hbmQu
aAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCB2b2lkIGRvQXBwbHkoKTsKICAgICB2aXJ0dWFsIHZvaWQgZG9VbmFwcGx5KCk7CisgICAgdmly
dHVhbCB2b2lkIGRvUmVhcHBseSgpOworICAgIHZvaWQgZXhlY3V0ZUFwcGx5KCk7CiAKICAgICBS
ZWZQdHI8RWxlbWVudD4gbV9lbGVtZW50OwogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbV9kdW1t
eVNwYW47CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MDI5OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEwLTI5ICBFbnJpY2EgQ2Fz
dWNjaSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTigzLjIuMyAtIDQu
MC4yKTogTWVzc2FnZSBjb21wb3Npbmc6IHdoZW4gSSB1bmRvIGEgY29sb3IgY2hhbmdlIHRvIHRl
eHQgaW4gTWFpbCwgdW5kby9yZWRvIGJlaGF2ZXMgc3RyYW5nZWx5CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MDY3MDMzPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzA4OTIKKworICAgICAgICAqIGVkaXRpbmcvdW5kby9yZWRvLXN0eWxlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy91bmRvL3JlZG8tc3R5bGUuaHRtbDog
QWRkZWQuCisKIDIwMDktMTAtMjkgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlcnN0YW1wZWQgYnkgQWRhbSBSb2Jlbi4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZWRvLXN0eWxlLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vcmVkby1zdHlsZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vcmVkby1zdHlsZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDcgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJl
Z2luRWRpdGluZ05vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gU1BBTiA+
IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBTUEFO
ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlk
Q2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2Vs
ZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVM
RUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAwIG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG8gMiBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmlu
aXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0
b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZ
ID4gSFRNTCA+ICNkb2N1bWVudCB0byAyIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3Ry
ZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlv
bgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VE
SVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9N
UmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDIgb2YgI3RleHQgPiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0g
c3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNl
bGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAyIG9mICN0ZXh0ID4g
RElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5p
dHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5v
dGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20g
MCBvZiAjdGV4dCA+IFNQQU4gPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byAyIG9mICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9m
ICN0ZXh0ID4gU1BBTiA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDIg
b2YgI3RleHQgPiBTUEFOID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZm
aW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UK
K0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENo
YW5nZTpXZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRp
b24KK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwp
IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gNiBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2Vs
ZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9u
OldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6
IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgorRURJVElORyBE
RUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IFNQQU4gPiBE
SVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAyIG9mICN0ZXh0ID4gU1BBTiA+
IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENo
YW5nZU5vdGlmaWNhdGlvbgorVGhpcyB0ZXN0cyBhcHBseWluZyBhIGJhY2tncm91bmQgY29sb3Ig
YXQgdGhlIGJlZ2lubmluZywgdGhlIG1pZGRsZSBhbmQgdGhlIGVuZCBvZiBvbmUgc2VudGVuY2Us
IHRoZW4gdW5kbyBhbmQgcmVkby4KK0J1ZyAzMDg5MgorCitIZWxsbyEKK0hlbGxvIQorSGVsbG8h
CisKK1Rlc3QgMTogUEFTU0VECitUZXN0IDI6IFBBU1NFRAorVGVzdCAzOiBQQVNTRUQKSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZWRvLXN0eWxlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlZG8tc3R5bGUuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZWRvLXN0eWxlLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDUgQEAKKzxodG1sPgorPGJvZHk+CitUaGlzIHRlc3RzIGFwcGx5aW5nIGEgYmFj
a2dyb3VuZCBjb2xvciBhdCB0aGUgYmVnaW5uaW5nLCB0aGUgbWlkZGxlIGFuZCB0aGUgZW5kIG9m
IG9uZSBzZW50ZW5jZSwgdGhlbiB1bmRvIGFuZCByZWRvLgorPHA+Cis8YSBocmVmPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA4OTIiPkJ1ZyAzMDg5MjwvYT4KKzwv
cD4KKzxkaXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIj4KKzxkaXYgaWQ9InRlc3QxIj5IZWxsbyE8
L2Rpdj4KKzxkaXYgaWQ9InRlc3QyIj5IZWxsbyE8L2Rpdj4KKzxkaXYgaWQ9InRlc3QzIj5IZWxs
byE8L2Rpdj4KKzwvZGl2PgorPGJyPgorPHVsPgorPGxpPlRlc3QgMTogPHNwYW4gaWQ9ImMxIj48
L3NwYW4+PC9saT4KKzxsaT5UZXN0IDI6IDxzcGFuIGlkPSJjMiI+PC9zcGFuPjwvbGk+Cis8bGk+
VGVzdCAzOiA8c3BhbiBpZD0iYzMiPjwvc3Bhbj48L2xpPgorPC91bD4KKworPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorZnVuY3Rpb24gcnVuVGVzdChlbGVtLCBub2RlKQoreworICAg
IHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobm9kZSk7CisgICAgdmFyIGJlZm9yZSA9
IGUuaW5uZXJIVE1MOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJoaWxpdGVjb2xvciIsIGZh
bHNlLCAiI0ZGMDAwMCIpOworICAgIHZhciBhZnRlciA9IGUuaW5uZXJIVE1MOworICAgIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJ1bmRvIik7CisgICAgdmFyIGFmdGVydW5kbyA9IGUuaW5uZXJIVE1M
OworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJyZWRvIik7CisKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgoKGJl
Zm9yZSA9PSBhZnRlcnVuZG8pICYmIChhZnRlciA9PSBlLmlubmVySFRNTCkpPyAiUEFTU0VEIjog
IkZBSUxFRCIpKTsKK30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBFZGl0aW5nQ2FsbGJhY2tzKCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCit2YXIgcyA9IHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKTsKK3Muc2V0QmFzZUFuZEV4dGVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDEnKS5maXJzdENoaWxkLCAwLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEnKS5maXJz
dENoaWxkLCAyKTsKK3J1blRlc3QoJ2MxJywgJ3Rlc3QxJyk7CitzLnNldEJhc2VBbmRFeHRlbnQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykuZmlyc3RDaGlsZCwgMiwgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykuZmlyc3RDaGlsZCwgNCk7CitydW5UZXN0KCdjMicsICd0
ZXN0MicpOworcy5zZXRCYXNlQW5kRXh0ZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MycpLmZpcnN0Q2hpbGQsIDQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MycpLmZpcnN0
Q2hpbGQsIDYpOworcnVuVGVzdCgnYzMnLCAndGVzdDMnKTsKKzwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="23642"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>