<?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>25102</bug_id>
          
          <creation_ts>2009-04-08 16:33:29 -0700</creation_ts>
          <short_desc>TextMatches don&apos;t have a concept of active match</short_desc>
          <delta_ts>2009-04-10 10:39:45 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Finnur Thorarinsson">finnur.webkit</reporter>
          <assigned_to name="Finnur Thorarinsson">finnur.webkit</assigned_to>
          <cc>sullivan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>116953</commentid>
    <comment_count>0</comment_count>
    <who name="Finnur Thorarinsson">finnur.webkit</who>
    <bug_when>2009-04-08 16:33:29 -0700</bug_when>
    <thetext>John Sullivan recommended I file a bug to track this.

The TextMatches in WebKit don&apos;t differentiate between active and inactive matches. It would be very useful for the ports that use TextMatches for FindInPage to be able to specify which TextMatches are active and which are not. This would also involve splitting up platformTextSearchHighlightColor into two, to provide an Active color and an Inactive color.

I&apos;m in the middle of writing such a patch. This bug tracks that effort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117078</commentid>
    <comment_count>1</comment_count>
      <attachid>29371</attachid>
    <who name="Finnur Thorarinsson">finnur.webkit</who>
    <bug_when>2009-04-09 14:54:38 -0700</bug_when>
    <thetext>Created attachment 29371
Allowing the TextMatch marker to specify active/not

Attached is a proposed patch that fixes this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117087</commentid>
    <comment_count>2</comment_count>
      <attachid>29371</attachid>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2009-04-09 15:26:36 -0700</bug_when>
    <thetext>Comment on attachment 29371
Allowing the TextMatch marker to specify active/not

&gt; Index: dom/Document.h
&gt; ===================================================================
&gt; --- dom/Document.h	(revision 42365)
&gt; +++ dom/Document.h	(working copy)
&gt; @@ -699,6 +699,8 @@ public:
&gt;      void setRenderedRectForMarker(Node*, DocumentMarker, const IntRect&amp;);
&gt;      void invalidateRenderedRectsForMarkersInRect(const IntRect&amp;);
&gt;      void shiftMarkers(Node*, unsigned startOffset, int delta, DocumentMarker::MarkerType = DocumentMarker::AllMarkers);
&gt; +    void setMarkersActive(Range*, bool);
&gt; +    void setMarkersActive(Node*, unsigned, unsigned, bool);

The two unsigned parameters here should be given names in this declaration since it&apos;s otherwise not clear what they represent.

The patch otherwise seems fine to me. Please submit a new patch with this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117095</commentid>
    <comment_count>3</comment_count>
      <attachid>29377</attachid>
    <who name="Finnur Thorarinsson">finnur.webkit</who>
    <bug_when>2009-04-09 15:46:29 -0700</bug_when>
    <thetext>Created attachment 29377
Addressing review comments

Reviewed in half an hour. Not a bad turnaround. Not at all. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117157</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-04-10 10:25:25 -0700</bug_when>
    <thetext>Landed as: http://trac.webkit.org/changeset/42393</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117158</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-04-10 10:39:45 -0700</bug_when>
    <thetext>And the follow-up bustage fix:  http://trac.webkit.org/changeset/42394</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29371</attachid>
            <date>2009-04-09 14:54:38 -0700</date>
            <delta_ts>2009-04-09 15:46:29 -0700</delta_ts>
            <desc>Allowing the TextMatch marker to specify active/not</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10996</size>
            <attacher name="Finnur Thorarinsson">finnur.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQyMzY5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMDktMDQt
MDkgIEZpbm51ciBUaG9yYXJpbnNzb24gIDxmaW5udXIud2Via2l0QGdtYWlsLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhpbmc6IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTExNworICAgICAgICAoVGV4dE1h
dGNoZXMgZG9uJ3QgaGF2ZSBhIGNvbmNlcHQgb2YgYWN0aXZlIG1hdGNoKQorCisgICAgICAgIEZv
ciB0aGUgcG9ydHMgdGhhdCB1c2UgdGhlIERvY3VtZW50TWFya2VyIGFzIGhpZ2hsaWdodGluZyBm
b3IgRmluZEluUGFnZSBpdCBpcworICAgICAgICB1c2VmdWwgdG8gaGF2ZSBhIGZsYWcgdGhhdCBz
cGVjaWZpZXMgd2hpY2ggbWFya2VyIGlzIGFjdGl2ZSwgc28gaXQgY2FuIGJlIGRyYXduCisgICAg
ICAgIGluIGEgZGlmZmVyZW50IGNvbG9yLgorCisgICAgICAgIFRoaXMgYWxsb3dzIG1lIHRvIHJl
bW92ZSB0aGUgaGFjayB0byB1c2UgdGhlIFNlbGVjdGlvbkNvbnRyb2xsZXIgdG8gaGlnaGxpZ2h0
CisgICAgICAgIHRoZSBhY3RpdmUgbWF0Y2ggKGluIHRoZSBDaHJvbWl1bVdpbiBwb3J0KS4KKyAg
CisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRN
YXJrZXJzQWN0aXZlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20v
RG9jdW1lbnRNYXJrZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFRleHRNYXRjaE1hcmtlcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVRleHRTZWFyY2hI
aWdobGlnaHRDb2xvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdo
bGlnaHRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjpw
bGF0Zm9ybUluYWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oOgorCiAyMDA5LTA0LTA5ICBKb2huIEdyYWJv
d3NraSAgPGpyZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlz
aGVyLgpJbmRleDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQu
Y3BwCShyZXZpc2lvbiA0MjM2NSkKKysrIGRvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM2ODcsNiArMzY4Nyw1NCBAQCB2b2lkIERvY3VtZW50OjpzaGlmdE1hcmtlcnMoTm9kZSAq
bm9kZSwgCiAgICAgICAgIG5vZGUtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKIH0KIAordm9pZCBE
b2N1bWVudDo6c2V0TWFya2Vyc0FjdGl2ZShSYW5nZSogcmFuZ2UsIGJvb2wgYWN0aXZlKQorewor
ICAgIGlmIChtX21hcmtlcnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICBOb2RlKiBzdGFydENvbnRhaW5lciA9IHJhbmdlLT5zdGFy
dENvbnRhaW5lcihlYyk7CisgICAgTm9kZSogZW5kQ29udGFpbmVyID0gcmFuZ2UtPmVuZENvbnRh
aW5lcihlYyk7CisKKyAgICBOb2RlKiBwYXN0TGFzdE5vZGUgPSByYW5nZS0+cGFzdExhc3ROb2Rl
KCk7CisgICAgZm9yIChOb2RlKiBub2RlID0gcmFuZ2UtPmZpcnN0Tm9kZSgpOyBub2RlICE9IHBh
c3RMYXN0Tm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICBp
bnQgc3RhcnRPZmZzZXQgPSBub2RlID09IHN0YXJ0Q29udGFpbmVyID8gcmFuZ2UtPnN0YXJ0T2Zm
c2V0KGVjKSA6IDA7CisgICAgICAgIGludCBlbmRPZmZzZXQgPSBub2RlID09IGVuZENvbnRhaW5l
ciA/IHJhbmdlLT5lbmRPZmZzZXQoZWMpIDogSU5UX01BWDsKKyAgICAgICAgc2V0TWFya2Vyc0Fj
dGl2ZShub2RlLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0LCBhY3RpdmUpOworICAgIH0KK30KKwor
dm9pZCBEb2N1bWVudDo6c2V0TWFya2Vyc0FjdGl2ZShOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFy
dE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBib29sIGFjdGl2ZSkKK3sKKyAgICBNYXJrZXJN
YXBWZWN0b3JQYWlyKiB2ZWN0b3JQYWlyID0gbV9tYXJrZXJzLmdldChub2RlKTsKKyAgICBpZiAo
IXZlY3RvclBhaXIpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtl
cj4mIG1hcmtlcnMgPSB2ZWN0b3JQYWlyLT5maXJzdDsKKyAgICBWZWN0b3I8SW50UmVjdD4mIHJl
Y3RzID0gdmVjdG9yUGFpci0+c2Vjb25kOworICAgIEFTU0VSVChtYXJrZXJzLnNpemUoKSA9PSBy
ZWN0cy5zaXplKCkpOworCisgICAgYm9vbCBkb2NEaXJ0eSA9IGZhbHNlOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpICE9IG1hcmtlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgRG9jdW1lbnRN
YXJrZXIgJm1hcmtlciA9IG1hcmtlcnNbaV07CisKKyAgICAgICAgLy8gTWFya2VycyBhcmUgcmV0
dXJuZWQgaW4gb3JkZXIsIHNvIHN0b3AgaWYgd2UgYXJlIG5vdyBwYXN0IHRoZSBzcGVjaWZpZWQg
cmFuZ2UuCisgICAgICAgIGlmIChtYXJrZXIuc3RhcnRPZmZzZXQgPj0gZW5kT2Zmc2V0KQorICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gU2tpcCBtYXJrZXIgdGhhdCBpcyB3cm9uZyB0
eXBlIG9yIGJlZm9yZSB0YXJnZXQuCisgICAgICAgIGlmIChtYXJrZXIuZW5kT2Zmc2V0IDwgc3Rh
cnRPZmZzZXQgfHwgbWFya2VyLnR5cGUgIT0gRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIG1hcmtlci5hY3RpdmVNYXRjaCA9IGFjdGl2
ZTsKKyAgICAgICAgZG9jRGlydHkgPSB0cnVlOworICAgIH0KKworICAgIC8vIHJlcGFpbnQgdGhl
IGFmZmVjdGVkIG5vZGUKKyAgICBpZiAoZG9jRGlydHkgJiYgbm9kZS0+cmVuZGVyZXIoKSkKKyAg
ICAgICAgbm9kZS0+cmVuZGVyZXIoKS0+cmVwYWludCgpOworfQorCiAjaWYgRU5BQkxFKFhTTFQp
CiAKIHZvaWQgRG9jdW1lbnQ6OmFwcGx5WFNMVHJhbnNmb3JtKFByb2Nlc3NpbmdJbnN0cnVjdGlv
biogcGkpCkluZGV4OiBkb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQu
aAkocmV2aXNpb24gNDIzNjUpCisrKyBkb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
Njk5LDYgKzY5OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlbmRlcmVkUmVjdEZvck1hcmtl
cihOb2RlKiwgRG9jdW1lbnRNYXJrZXIsIGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIGludmFs
aWRhdGVSZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0luUmVjdChjb25zdCBJbnRSZWN0Jik7CiAgICAg
dm9pZCBzaGlmdE1hcmtlcnMoTm9kZSosIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCBpbnQgZGVsdGEs
IERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMp
OworICAgIHZvaWQgc2V0TWFya2Vyc0FjdGl2ZShSYW5nZSosIGJvb2wpOworICAgIHZvaWQgc2V0
TWFya2Vyc0FjdGl2ZShOb2RlKiwgdW5zaWduZWQsIHVuc2lnbmVkLCBib29sKTsKIAogICAgIERv
Y3VtZW50TWFya2VyKiBtYXJrZXJDb250YWluaW5nUG9pbnQoY29uc3QgSW50UG9pbnQmLCBEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKTsKICAg
ICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+IG1hcmtlcnNGb3JOb2RlKE5vZGUqKTsKSW5kZXg6IGRv
bS9Eb2N1bWVudE1hcmtlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Eb2N1bWVudE1hcmtlci5oCShy
ZXZpc2lvbiA0MjM2NSkKKysrIGRvbS9Eb2N1bWVudE1hcmtlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw2ICszMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQSByYW5nZSBvZiBhIG5v
ZGUgd2l0aGluIGEgZG9jdW1lbnQgdGhhdCBpcyAibWFya2VkIiwgc3VjaCBhcyB0aGUgcmFuZ2Ug
b2YgYSBtaXNzcGVsbGVkIHdvcmQuCiAvLyBJdCBvcHRpb25hbGx5IGluY2x1ZGVzIGEgZGVzY3Jp
cHRpb24gdGhhdCBjb3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLgorLy8g
SXQgYWxzbyBvcHRpb25hbGx5IGluY2x1ZGVzIGEgZmxhZyBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhl
IG1hdGNoIGlzIGFjdGl2ZSwgd2hpY2ggaXMgaWdub3JlZAorLy8gZm9yIGFsbCB0eXBlcyBvdGhl
ciB0aGFuIHR5cGUgVGV4dE1hdGNoLgogc3RydWN0IERvY3VtZW50TWFya2VyIHsKIAogICAgIGVu
dW0gTWFya2VyVHlwZSB7CkBAIC00Myw2ICs0NSw3IEBAIHN0cnVjdCBEb2N1bWVudE1hcmtlciB7
CiAgICAgdW5zaWduZWQgc3RhcnRPZmZzZXQ7CiAgICAgdW5zaWduZWQgZW5kT2Zmc2V0OwogICAg
IFN0cmluZyBkZXNjcmlwdGlvbjsKKyAgICBib29sIGFjdGl2ZU1hdGNoOwogCiAgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IERvY3VtZW50TWFya2VyJiBvKSBjb25zdAogICAgIHsKSW5kZXg6IHJl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHAJKHJldmlzaW9uIDQyMzY1KQorKysgcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzgsNyArNzM4LDkgQEAgdm9pZCBJbmxpbmVUZXh0Qm94
OjpwYWludFRleHRNYXRjaE1hcmtlcgogICAgICAKICAgICAvLyBPcHRpb25hbGx5IGhpZ2hsaWdo
dCB0aGUgdGV4dAogICAgIGlmIChyZW5kZXJlcigpLT5kb2N1bWVudCgpLT5mcmFtZSgpLT5tYXJr
ZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVkKCkpIHsKLSAgICAgICAgQ29sb3IgY29sb3IgPSB0
aGVtZSgpLT5wbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpOworICAgICAgICBDb2xv
ciBjb2xvciA9IG1hcmtlci5hY3RpdmVNYXRjaCA/CisgICAgICAgICAgICB0aGVtZSgpLT5wbGF0
Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIDoKKyAgICAgICAgICAgIHRoZW1l
KCktPnBsYXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKTsKICAgICAgICAg
cHQtPnNhdmUoKTsKICAgICAgICAgdXBkYXRlR3JhcGhpY3NDb250ZXh0KHB0LCBjb2xvciwgY29s
b3IsIDApOyAgLy8gRG9uJ3QgZHJhdyB0ZXh0IGF0IGFsbCEKICAgICAgICAgcHQtPmNsaXAoSW50
UmVjdCh0eCArIG1feCwgdHkgKyB5LCBtX3dpZHRoLCBoKSk7CkluZGV4OiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAJKHJl
dmlzaW9uIDQyMzY1KQorKysgcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODQ3LDkgKzg0NywxNCBAQCBDb2xvciBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoaW50
IGNzc1ZhCiAgICAgcmV0dXJuIENvbG9yKCk7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lOjpwbGF0
Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIGNvbnN0CitDb2xvciBSZW5kZXJUaGVtZTo6
cGxhdGZvcm1BY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogewotICAgIHJl
dHVybiBDb2xvcigyNTUsIDI1NSwgMCk7CisgICAgcmV0dXJuIENvbG9yKDI1NSwgMTUwLCA1MCk7
IC8vIE9yYW5nZS4KK30KKworQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtSW5hY3RpdmVUZXh0
U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAoreworICAgIHJldHVybiBDb2xvcigyNTUsIDI1
NSwgMCk7IC8vIFllbGxvdy4KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmgJKHJldmlzaW9uIDQyMzY1KQorKysgcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExNyw3ICsxMTcsOSBAQCBwdWJsaWM6CiAgICAgQ29sb3IgaW5hY3RpdmVMaXN0
Qm94U2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CiAgICAgQ29sb3IgaW5hY3RpdmVM
aXN0Qm94U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIENv
bG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3Q7CisgICAgLy8gSGln
aGxpZ2h0aW5nIGNvbG9ycyBmb3IgVGV4dE1hdGNoZXMuCisgICAgdmlydHVhbCBDb2xvciBwbGF0
Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIGNvbnN0OworICAgIHZpcnR1YWwg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIGNvbnN0Owog
CiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7CiAKSW5kZXg6IHJl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAJKHJldmlzaW9uIDQyMzY1KQorKysgcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsOCAr
MTM1LDYgQEAgc3RhdGljIEZvbnREZXNjcmlwdGlvbiBzbWFsbFN5c3RlbUZvbnQ7CiBzdGF0aWMg
Rm9udERlc2NyaXB0aW9uIG1lbnVGb250Owogc3RhdGljIEZvbnREZXNjcmlwdGlvbiBsYWJlbEZv
bnQ7CiAKLWJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6bV9maW5kSW5QYWdlTW9kZSA9IGZh
bHNlOwotCiAvLyBJbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucy4gIFdlIGRvbid0IHB1
dCB0aGVtIGluIGFuIGFub255bW91cwogLy8gbmFtZXNwYWNlIHNvIHRoZXkgaGF2ZSBlYXNpZXIg
YWNjZXNzIHRvIHRoZSBXZWJDb3JlIG5hbWVzcGFjZS4KIApAQCAtMjc2LDggKzI3NCw2IEBAIENv
bG9yIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRmb3JtQWMKIHsKICAgICBpZiAoQ2hyb21p
dW1CcmlkZ2U6OmxheW91dFRlc3RNb2RlKCkpCiAgICAgICAgIHJldHVybiBDb2xvcigiIzAwMDBG
RiIpOyAgLy8gUm95YWwgYmx1ZS4KLSAgICBpZiAobV9maW5kSW5QYWdlTW9kZSkKLSAgICAgICAg
cmV0dXJuIENvbG9yKDI1NSwgMTUwLCA1MCwgMjAwKTsgIC8vIE9yYW5nZS4KICAgICBDT0xPUlJF
RiBjb2xvciA9IEdldFN5c0NvbG9yKENPTE9SX0hJR0hMSUdIVCk7CiAgICAgcmV0dXJuIENvbG9y
KEdldFJWYWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShjb2xvciksIDI1
NSk7CiB9CkBAIC0yODYsOCArMjgyLDYgQEAgQ29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
cGxhdGZvcm1JbgogewogICAgIGlmIChDaHJvbWl1bUJyaWRnZTo6bGF5b3V0VGVzdE1vZGUoKSkK
ICAgICAgICAgcmV0dXJuIENvbG9yKCIjOTk5OTk5Iik7ICAvLyBNZWRpdW0gZ3JheS4KLSAgICBp
ZiAobV9maW5kSW5QYWdlTW9kZSkKLSAgICAgICAgcmV0dXJuIENvbG9yKDI1NSwgMTUwLCA1MCwg
MjAwKTsgIC8vIE9yYW5nZS4KICAgICBDT0xPUlJFRiBjb2xvciA9IEdldFN5c0NvbG9yKENPTE9S
X0dSQVlURVhUKTsKICAgICByZXR1cm4gQ29sb3IoR2V0UlZhbHVlKGNvbG9yKSwgR2V0R1ZhbHVl
KGNvbG9yKSwgR2V0QlZhbHVlKGNvbG9yKSwgMjU1KTsKIH0KQEAgLTMwNSw5ICsyOTksMTQgQEAg
Q29sb3IgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGxhdGZvcm1JbgogICAgIHJldHVybiBDb2xv
cjo6d2hpdGU7CiB9CiAKLUNvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRmb3JtVGV4
dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3QKK0NvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1X
aW46OnBsYXRmb3JtQWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gQ29sb3IoMjU1LCAxNTAsIDUwKTsgIC8vIE9yYW5nZS4KK30KKworQ29sb3IgUmVu
ZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGxhdGZvcm1JbmFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRD
b2xvcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENvbG9yKDI1NSwgMjU1LCAxNTApOworICAgIHJl
dHVybiBDb2xvcigyNTUsIDI1NSwgMTUwKTsgLy8gWWVsbG93LgogfQogCiBkb3VibGUgUmVuZGVy
VGhlbWVDaHJvbWl1bVdpbjo6Y2FyZXRCbGlua0ludGVydmFsKCkgY29uc3QKQEAgLTgyNiwxMyAr
ODI1LDQgQEAgaW50IFJlbmRlclRoZW1lQ2hyb21pdW1XaW46Om1lbnVMaXN0SW50ZQogICAgIHJl
dHVybiBwYWRkaW5nOwogfQogCi0vLyBzdGF0aWMKLXZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bVdp
bjo6c2V0RmluZEluUGFnZU1vZGUoYm9vbCBlbmFibGUpIHsKLSAgaWYgKG1fZmluZEluUGFnZU1v
ZGUgPT0gZW5hYmxlKQotICAgICAgcmV0dXJuOwotCi0gIG1fZmluZEluUGFnZU1vZGUgPSBlbmFi
bGU7Ci0gIHRoZW1lKCktPnBsYXRmb3JtQ29sb3JzRGlkQ2hhbmdlKCk7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uaAkocmV2aXNp
b24gNDIzNjUpCisrKyByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw3ICs2MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29u
c3Q7CiAgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3Jv
dW5kQ29sb3IoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgQ29sb3Ig
cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdDsKKyAgICAgICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIGNvbnN0Owor
ICAgICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0
Q29sb3IoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBjYXJldEJsaW5rSW50ZXJ2
YWwoKSBjb25zdDsKIApAQCAtMTMzLDEwICsxMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIC8vIG9iamVjdC4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0RGVmYXVsdEZvbnRTaXpl
KGludCk7CiAKLSAgICAgICAgLy8gRW5hYmxlcy9EaXNhYmxlcyBGaW5kSW5QYWdlIG1vZGUsIHdo
aWNoIChpZiBlbmFibGVkKSBvdmVycmlkZXMgdGhlCi0gICAgICAgIC8vIHNlbGVjdGlvbiByZWN0
IGNvbG9yIHRvIGJlIG9yYW5nZS4KLSAgICAgICAgc3RhdGljIHZvaWQgc2V0RmluZEluUGFnZU1v
ZGUoYm9vbCk7Ci0KICAgICBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBkZXRlcm1pbmVTdGF0
ZShSZW5kZXJPYmplY3QqKTsKICAgICAgICAgdW5zaWduZWQgZGV0ZXJtaW5lU2xpZGVyVGh1bWJT
dGF0ZShSZW5kZXJPYmplY3QqKTsKQEAgLTE0Nyw5ICsxNDQsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgcGFpbnRUZXh0RmllbGRJbnRlcm5hbChSZW5kZXJPYmplY3QqLCBj
b25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmLCBib29sKTsKIAog
ICAgICAgICBpbnQgbWVudUxpc3RJbnRlcm5hbFBhZGRpbmcoUmVuZGVyU3R5bGUqLCBpbnQgcGFk
ZGluZ1R5cGUpIGNvbnN0OwotCi0gICAgICAgIC8vIEEgZmxhZyBzcGVjaWZ5aW5nIHdoZXRoZXIg
d2UgYXJlIGluIEZpbmQtaW4tcGFnZSBtb2RlIG9yIG5vdC4KLSAgICAgICAgc3RhdGljIGJvb2wg
bV9maW5kSW5QYWdlTW9kZTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="14601"
          type_id="1"
          status="-"
          setter="sullivan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29377</attachid>
            <date>2009-04-09 15:46:29 -0700</date>
            <delta_ts>2009-04-09 16:19:20 -0700</delta_ts>
            <desc>Addressing review comments</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>11018</size>
            <attacher name="Finnur Thorarinsson">finnur.webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQyMzY5
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMDktMDQt
MDkgIEZpbm51ciBUaG9yYXJpbnNzb24gIDxmaW5udXIud2Via2l0QGdtYWlsLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhpbmc6IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTExNworICAgICAgICAoVGV4dE1h
dGNoZXMgZG9uJ3QgaGF2ZSBhIGNvbmNlcHQgb2YgYWN0aXZlIG1hdGNoKQorCisgICAgICAgIEZv
ciB0aGUgcG9ydHMgdGhhdCB1c2UgdGhlIERvY3VtZW50TWFya2VyIGFzIGhpZ2hsaWdodGluZyBm
b3IgRmluZEluUGFnZSBpdCBpcworICAgICAgICB1c2VmdWwgdG8gaGF2ZSBhIGZsYWcgdGhhdCBz
cGVjaWZpZXMgd2hpY2ggbWFya2VyIGlzIGFjdGl2ZSwgc28gaXQgY2FuIGJlIGRyYXduCisgICAg
ICAgIGluIGEgZGlmZmVyZW50IGNvbG9yLgorCisgICAgICAgIFRoaXMgYWxsb3dzIG1lIHRvIHJl
bW92ZSB0aGUgaGFjayB0byB1c2UgdGhlIFNlbGVjdGlvbkNvbnRyb2xsZXIgdG8gaGlnaGxpZ2h0
CisgICAgICAgIHRoZSBhY3RpdmUgbWF0Y2ggKGluIHRoZSBDaHJvbWl1bVdpbiBwb3J0KS4KKyAg
CisgICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRN
YXJrZXJzQWN0aXZlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20v
RG9jdW1lbnRNYXJrZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFRleHRNYXRjaE1hcmtlcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lOjpwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cGxhdGZvcm1JbmFjdGl2ZVRleHRTZWFyY2hI
aWdobGlnaHRDb2xvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNr
Z3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdo
bGlnaHRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtV2luOjpw
bGF0Zm9ybUluYWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5oOgorCiAyMDA5LTA0LTA5ICBKb2huIEdyYWJv
d3NraSAgPGpyZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlz
aGVyLgpJbmRleDogZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQu
Y3BwCShyZXZpc2lvbiA0MjM2NSkKKysrIGRvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM2ODcsNiArMzY4Nyw1NCBAQCB2b2lkIERvY3VtZW50OjpzaGlmdE1hcmtlcnMoTm9kZSAq
bm9kZSwgCiAgICAgICAgIG5vZGUtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKIH0KIAordm9pZCBE
b2N1bWVudDo6c2V0TWFya2Vyc0FjdGl2ZShSYW5nZSogcmFuZ2UsIGJvb2wgYWN0aXZlKQorewor
ICAgIGlmIChtX21hcmtlcnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKKyAgICBOb2RlKiBzdGFydENvbnRhaW5lciA9IHJhbmdlLT5zdGFy
dENvbnRhaW5lcihlYyk7CisgICAgTm9kZSogZW5kQ29udGFpbmVyID0gcmFuZ2UtPmVuZENvbnRh
aW5lcihlYyk7CisKKyAgICBOb2RlKiBwYXN0TGFzdE5vZGUgPSByYW5nZS0+cGFzdExhc3ROb2Rl
KCk7CisgICAgZm9yIChOb2RlKiBub2RlID0gcmFuZ2UtPmZpcnN0Tm9kZSgpOyBub2RlICE9IHBh
c3RMYXN0Tm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKSkgeworICAgICAgICBp
bnQgc3RhcnRPZmZzZXQgPSBub2RlID09IHN0YXJ0Q29udGFpbmVyID8gcmFuZ2UtPnN0YXJ0T2Zm
c2V0KGVjKSA6IDA7CisgICAgICAgIGludCBlbmRPZmZzZXQgPSBub2RlID09IGVuZENvbnRhaW5l
ciA/IHJhbmdlLT5lbmRPZmZzZXQoZWMpIDogSU5UX01BWDsKKyAgICAgICAgc2V0TWFya2Vyc0Fj
dGl2ZShub2RlLCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0LCBhY3RpdmUpOworICAgIH0KK30KKwor
dm9pZCBEb2N1bWVudDo6c2V0TWFya2Vyc0FjdGl2ZShOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFy
dE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBib29sIGFjdGl2ZSkKK3sKKyAgICBNYXJrZXJN
YXBWZWN0b3JQYWlyKiB2ZWN0b3JQYWlyID0gbV9tYXJrZXJzLmdldChub2RlKTsKKyAgICBpZiAo
IXZlY3RvclBhaXIpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtl
cj4mIG1hcmtlcnMgPSB2ZWN0b3JQYWlyLT5maXJzdDsKKyAgICBWZWN0b3I8SW50UmVjdD4mIHJl
Y3RzID0gdmVjdG9yUGFpci0+c2Vjb25kOworICAgIEFTU0VSVChtYXJrZXJzLnNpemUoKSA9PSBy
ZWN0cy5zaXplKCkpOworCisgICAgYm9vbCBkb2NEaXJ0eSA9IGZhbHNlOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpICE9IG1hcmtlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgRG9jdW1lbnRN
YXJrZXIgJm1hcmtlciA9IG1hcmtlcnNbaV07CisKKyAgICAgICAgLy8gTWFya2VycyBhcmUgcmV0
dXJuZWQgaW4gb3JkZXIsIHNvIHN0b3AgaWYgd2UgYXJlIG5vdyBwYXN0IHRoZSBzcGVjaWZpZWQg
cmFuZ2UuCisgICAgICAgIGlmIChtYXJrZXIuc3RhcnRPZmZzZXQgPj0gZW5kT2Zmc2V0KQorICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gU2tpcCBtYXJrZXIgdGhhdCBpcyB3cm9uZyB0
eXBlIG9yIGJlZm9yZSB0YXJnZXQuCisgICAgICAgIGlmIChtYXJrZXIuZW5kT2Zmc2V0IDwgc3Rh
cnRPZmZzZXQgfHwgbWFya2VyLnR5cGUgIT0gRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIG1hcmtlci5hY3RpdmVNYXRjaCA9IGFjdGl2
ZTsKKyAgICAgICAgZG9jRGlydHkgPSB0cnVlOworICAgIH0KKworICAgIC8vIHJlcGFpbnQgdGhl
IGFmZmVjdGVkIG5vZGUKKyAgICBpZiAoZG9jRGlydHkgJiYgbm9kZS0+cmVuZGVyZXIoKSkKKyAg
ICAgICAgbm9kZS0+cmVuZGVyZXIoKS0+cmVwYWludCgpOworfQorCiAjaWYgRU5BQkxFKFhTTFQp
CiAKIHZvaWQgRG9jdW1lbnQ6OmFwcGx5WFNMVHJhbnNmb3JtKFByb2Nlc3NpbmdJbnN0cnVjdGlv
biogcGkpCkluZGV4OiBkb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQu
aAkocmV2aXNpb24gNDIzNjUpCisrKyBkb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
Njk5LDYgKzY5OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlbmRlcmVkUmVjdEZvck1hcmtl
cihOb2RlKiwgRG9jdW1lbnRNYXJrZXIsIGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIGludmFs
aWRhdGVSZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0luUmVjdChjb25zdCBJbnRSZWN0Jik7CiAgICAg
dm9pZCBzaGlmdE1hcmtlcnMoTm9kZSosIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCBpbnQgZGVsdGEs
IERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMp
OworICAgIHZvaWQgc2V0TWFya2Vyc0FjdGl2ZShSYW5nZSosIGJvb2wpOworICAgIHZvaWQgc2V0
TWFya2Vyc0FjdGl2ZShOb2RlKiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9m
ZnNldCwgYm9vbCk7CiAKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQ29udGFpbmluZ1BvaW50
KGNvbnN0IEludFBvaW50JiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgPSBEb2N1bWVudE1h
cmtlcjo6QWxsTWFya2Vycyk7CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBtYXJrZXJzRm9y
Tm9kZShOb2RlKik7CkluZGV4OiBkb20vRG9jdW1lbnRNYXJrZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBk
b20vRG9jdW1lbnRNYXJrZXIuaAkocmV2aXNpb24gNDIzNjUpCisrKyBkb20vRG9jdW1lbnRNYXJr
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIC8vIEEgcmFuZ2Ugb2YgYSBub2RlIHdpdGhpbiBhIGRvY3VtZW50IHRoYXQgaXMgIm1hcmtl
ZCIsIHN1Y2ggYXMgdGhlIHJhbmdlIG9mIGEgbWlzc3BlbGxlZCB3b3JkLgogLy8gSXQgb3B0aW9u
YWxseSBpbmNsdWRlcyBhIGRlc2NyaXB0aW9uIHRoYXQgY291bGQgYmUgZGlzcGxheWVkIGluIHRo
ZSB1c2VyIGludGVyZmFjZS4KKy8vIEl0IGFsc28gb3B0aW9uYWxseSBpbmNsdWRlcyBhIGZsYWcg
c3BlY2lmeWluZyB3aGV0aGVyIHRoZSBtYXRjaCBpcyBhY3RpdmUsIHdoaWNoIGlzIGlnbm9yZWQK
Ky8vIGZvciBhbGwgdHlwZXMgb3RoZXIgdGhhbiB0eXBlIFRleHRNYXRjaC4KIHN0cnVjdCBEb2N1
bWVudE1hcmtlciB7CiAKICAgICBlbnVtIE1hcmtlclR5cGUgewpAQCAtNDMsNiArNDUsNyBAQCBz
dHJ1Y3QgRG9jdW1lbnRNYXJrZXIgewogICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0OwogICAgIHVu
c2lnbmVkIGVuZE9mZnNldDsKICAgICBTdHJpbmcgZGVzY3JpcHRpb247CisgICAgYm9vbCBhY3Rp
dmVNYXRjaDsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBEb2N1bWVudE1hcmtlciYgbykg
Y29uc3QKICAgICB7CkluZGV4OiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiA0MjM2NSkKKysrIHJl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzM4LDcgKzczOCw5
IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0TWF0Y2hNYXJrZXIKICAgICAgCiAgICAg
Ly8gT3B0aW9uYWxseSBoaWdobGlnaHQgdGhlIHRleHQKICAgICBpZiAocmVuZGVyZXIoKS0+ZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+bWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZCgpKSB7Ci0g
ICAgICAgIENvbG9yIGNvbG9yID0gdGhlbWUoKS0+cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0
Q29sb3IoKTsKKyAgICAgICAgQ29sb3IgY29sb3IgPSBtYXJrZXIuYWN0aXZlTWF0Y2ggPworICAg
ICAgICAgICAgdGhlbWUoKS0+cGxhdGZvcm1BY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
KSA6CisgICAgICAgICAgICB0aGVtZSgpLT5wbGF0Zm9ybUluYWN0aXZlVGV4dFNlYXJjaEhpZ2hs
aWdodENvbG9yKCk7CiAgICAgICAgIHB0LT5zYXZlKCk7CiAgICAgICAgIHVwZGF0ZUdyYXBoaWNz
Q29udGV4dChwdCwgY29sb3IsIGNvbG9yLCAwKTsgIC8vIERvbid0IGRyYXcgdGV4dCBhdCBhbGwh
CiAgICAgICAgIHB0LT5jbGlwKEludFJlY3QodHggKyBtX3gsIHR5ICsgeSwgbV93aWR0aCwgaCkp
OwpJbmRleDogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJp
bmcvUmVuZGVyVGhlbWUuY3BwCShyZXZpc2lvbiA0MjM2NSkKKysrIHJlbmRlcmluZy9SZW5kZXJU
aGVtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0Nyw5ICs4NDcsMTQgQEAgQ29sb3IgUmVuZGVy
VGhlbWU6OnN5c3RlbUNvbG9yKGludCBjc3NWYQogICAgIHJldHVybiBDb2xvcigpOwogfQogCi1D
b2xvciBSZW5kZXJUaGVtZTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25z
dAorQ29sb3IgUmVuZGVyVGhlbWU6OnBsYXRmb3JtQWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENv
bG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ29sb3IoMjU1LCAyNTUsIDApOworICAgIHJldHVy
biBDb2xvcigyNTUsIDE1MCwgNTApOyAvLyBPcmFuZ2UuCit9CisKK0NvbG9yIFJlbmRlclRoZW1l
OjpwbGF0Zm9ybUluYWN0aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gQ29sb3IoMjU1LCAyNTUsIDApOyAvLyBZZWxsb3cuCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IHJlbmRlcmluZy9SZW5kZXJUaGVtZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHJlbmRlcmluZy9SZW5kZXJUaGVtZS5oCShyZXZpc2lvbiA0MjM2NSkKKysrIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDkgQEAgcHVibGljOgog
ICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0
OwogICAgIENvbG9yIGluYWN0aXZlTGlzdEJveFNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNv
bnN0OwogCi0gICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xv
cigpIGNvbnN0OworICAgIC8vIEhpZ2hsaWdodGluZyBjb2xvcnMgZm9yIFRleHRNYXRjaGVzLgor
ICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3Io
KSBjb25zdDsKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3RpdmVUZXh0U2VhcmNoSGln
aGxpZ2h0Q29sb3IoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUNvbG9yc0Rp
ZENoYW5nZSgpOwogCkluZGV4OiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1XaW4uY3BwCShyZXZp
c2lvbiA0MjM2NSkKKysrIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTM1LDggKzEzNSw2IEBAIHN0YXRpYyBGb250RGVzY3JpcHRpb24gc21h
bGxTeXN0ZW1Gb250Owogc3RhdGljIEZvbnREZXNjcmlwdGlvbiBtZW51Rm9udDsKIHN0YXRpYyBG
b250RGVzY3JpcHRpb24gbGFiZWxGb250OwogCi1ib29sIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46
Om1fZmluZEluUGFnZU1vZGUgPSBmYWxzZTsKLQogLy8gSW50ZXJuYWwgc3RhdGljIGhlbHBlciBm
dW5jdGlvbnMuICBXZSBkb24ndCBwdXQgdGhlbSBpbiBhbiBhbm9ueW1vdXMKIC8vIG5hbWVzcGFj
ZSBzbyB0aGV5IGhhdmUgZWFzaWVyIGFjY2VzcyB0byB0aGUgV2ViQ29yZSBuYW1lc3BhY2UuCiAK
QEAgLTI3Niw4ICsyNzQsNiBAQCBDb2xvciBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwbGF0Zm9y
bUFjCiB7CiAgICAgaWYgKENocm9taXVtQnJpZGdlOjpsYXlvdXRUZXN0TW9kZSgpKQogICAgICAg
ICByZXR1cm4gQ29sb3IoIiMwMDAwRkYiKTsgIC8vIFJveWFsIGJsdWUuCi0gICAgaWYgKG1fZmlu
ZEluUGFnZU1vZGUpCi0gICAgICAgIHJldHVybiBDb2xvcigyNTUsIDE1MCwgNTAsIDIwMCk7ICAv
LyBPcmFuZ2UuCiAgICAgQ09MT1JSRUYgY29sb3IgPSBHZXRTeXNDb2xvcihDT0xPUl9ISUdITElH
SFQpOwogICAgIHJldHVybiBDb2xvcihHZXRSVmFsdWUoY29sb3IpLCBHZXRHVmFsdWUoY29sb3Ip
LCBHZXRCVmFsdWUoY29sb3IpLCAyNTUpOwogfQpAQCAtMjg2LDggKzI4Miw2IEBAIENvbG9yIFJl
bmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRmb3JtSW4KIHsKICAgICBpZiAoQ2hyb21pdW1Ccmlk
Z2U6OmxheW91dFRlc3RNb2RlKCkpCiAgICAgICAgIHJldHVybiBDb2xvcigiIzk5OTk5OSIpOyAg
Ly8gTWVkaXVtIGdyYXkuCi0gICAgaWYgKG1fZmluZEluUGFnZU1vZGUpCi0gICAgICAgIHJldHVy
biBDb2xvcigyNTUsIDE1MCwgNTAsIDIwMCk7ICAvLyBPcmFuZ2UuCiAgICAgQ09MT1JSRUYgY29s
b3IgPSBHZXRTeXNDb2xvcihDT0xPUl9HUkFZVEVYVCk7CiAgICAgcmV0dXJuIENvbG9yKEdldFJW
YWx1ZShjb2xvciksIEdldEdWYWx1ZShjb2xvciksIEdldEJWYWx1ZShjb2xvciksIDI1NSk7CiB9
CkBAIC0zMDUsOSArMjk5LDE0IEBAIENvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRm
b3JtSW4KICAgICByZXR1cm4gQ29sb3I6OndoaXRlOwogfQogCi1Db2xvciBSZW5kZXJUaGVtZUNo
cm9taXVtV2luOjpwbGF0Zm9ybVRleHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIGNvbnN0CitDb2xv
ciBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwbGF0Zm9ybUFjdGl2ZVRleHRTZWFyY2hIaWdobGln
aHRDb2xvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIENvbG9yKDI1NSwgMTUwLCA1MCk7ICAvLyBP
cmFuZ2UuCit9CisKK0NvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBsYXRmb3JtSW5hY3Rp
dmVUZXh0U2VhcmNoSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAogewotICAgIHJldHVybiBDb2xvcigy
NTUsIDI1NSwgMTUwKTsKKyAgICByZXR1cm4gQ29sb3IoMjU1LCAyNTUsIDE1MCk7IC8vIFllbGxv
dy4KIH0KIAogZG91YmxlIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OmNhcmV0QmxpbmtJbnRlcnZh
bCgpIGNvbnN0CkBAIC04MjYsMTMgKzgyNSw0IEBAIGludCBSZW5kZXJUaGVtZUNocm9taXVtV2lu
OjptZW51TGlzdEludGUKICAgICByZXR1cm4gcGFkZGluZzsKIH0KIAotLy8gc3RhdGljCi12b2lk
IFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnNldEZpbmRJblBhZ2VNb2RlKGJvb2wgZW5hYmxlKSB7
Ci0gIGlmIChtX2ZpbmRJblBhZ2VNb2RlID09IGVuYWJsZSkKLSAgICAgIHJldHVybjsKLQotICBt
X2ZpbmRJblBhZ2VNb2RlID0gZW5hYmxlOwotICB0aGVtZSgpLT5wbGF0Zm9ybUNvbG9yc0RpZENo
YW5nZSgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bVdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtV2luLmgJKHJldmlzaW9uIDQyMzY1KQorKysgcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1XaW4uaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwg
Q29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0Owot
ICAgICAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkg
Y29uc3Q7CisgICAgICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVUZXh0U2VhcmNoSGln
aGxpZ2h0Q29sb3IoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUluYWN0
aXZlVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9yKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBk
b3VibGUgY2FyZXRCbGlua0ludGVydmFsKCkgY29uc3Q7CiAKQEAgLTEzMywxMCArMTM0LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBvYmplY3QuCiAgICAgICAgIHN0YXRpYyB2
b2lkIHNldERlZmF1bHRGb250U2l6ZShpbnQpOwogCi0gICAgICAgIC8vIEVuYWJsZXMvRGlzYWJs
ZXMgRmluZEluUGFnZSBtb2RlLCB3aGljaCAoaWYgZW5hYmxlZCkgb3ZlcnJpZGVzIHRoZQotICAg
ICAgICAvLyBzZWxlY3Rpb24gcmVjdCBjb2xvciB0byBiZSBvcmFuZ2UuCi0gICAgICAgIHN0YXRp
YyB2b2lkIHNldEZpbmRJblBhZ2VNb2RlKGJvb2wpOwotCiAgICAgcHJpdmF0ZToKICAgICAgICAg
dW5zaWduZWQgZGV0ZXJtaW5lU3RhdGUoUmVuZGVyT2JqZWN0Kik7CiAgICAgICAgIHVuc2lnbmVk
IGRldGVybWluZVNsaWRlclRodW1iU3RhdGUoUmVuZGVyT2JqZWN0Kik7CkBAIC0xNDcsOSArMTQ0
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHBhaW50VGV4dEZpZWxkSW50
ZXJuYWwoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0OjpQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JiwgYm9vbCk7CiAKICAgICAgICAgaW50IG1lbnVMaXN0SW50ZXJuYWxQYWRkaW5n
KFJlbmRlclN0eWxlKiwgaW50IHBhZGRpbmdUeXBlKSBjb25zdDsKLQotICAgICAgICAvLyBBIGZs
YWcgc3BlY2lmeWluZyB3aGV0aGVyIHdlIGFyZSBpbiBGaW5kLWluLXBhZ2UgbW9kZSBvciBub3Qu
Ci0gICAgICAgIHN0YXRpYyBib29sIG1fZmluZEluUGFnZU1vZGU7CiAgICAgfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="14607"
          type_id="1"
          status="+"
          setter="sullivan"
    />
          </attachment>
      

    </bug>

</bugzilla>