<?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>65723</bug_id>
          
          <creation_ts>2011-08-04 15:09:53 -0700</creation_ts>
          <short_desc>A few purely stylistic modifications to visible_units.cpp</short_desc>
          <delta_ts>2011-08-05 11:01:38 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Van Lam">vanlam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>446816</commentid>
    <comment_count>0</comment_count>
    <who name="Van Lam">vanlam</who>
    <bug_when>2011-08-04 15:09:53 -0700</bug_when>
    <thetext>See title</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446824</commentid>
    <comment_count>1</comment_count>
      <attachid>102988</attachid>
    <who name="Van Lam">vanlam</who>
    <bug_when>2011-08-04 15:17:01 -0700</bug_when>
    <thetext>Created attachment 102988
Proposed fix

Renamed greatestValueUnder to greatestOffsetUnder, positionIsInsideBox to positionIsInBoxButNotOnBoundary (to avoid confusion with positionIsInBox, which is just a getInlineBoxAndOffset check).
Removed use of invalidOffset as an error value in greatestOffsetUnder and smallestOffsetAbove since semantically it should only be used to check if it makes sense to compare offsets in a single box.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446825</commentid>
    <comment_count>2</comment_count>
      <attachid>102988</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-04 15:18:13 -0700</bug_when>
    <thetext>Comment on attachment 102988
Proposed fix

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

&gt; Source/WebCore/editing/visible_units.cpp:1644
&gt; +    if (index != -1)

Probably better to check index &lt; 0.

&gt; Source/WebCore/editing/visible_units.cpp:1681
&gt; +    if (index != -1)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446831</commentid>
    <comment_count>3</comment_count>
      <attachid>102991</attachid>
    <who name="Van Lam">vanlam</who>
    <bug_when>2011-08-04 15:24:49 -0700</bug_when>
    <thetext>Created attachment 102991
Revised fix

Changed comparison index != -1 to index &gt;= 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446834</commentid>
    <comment_count>4</comment_count>
      <attachid>102991</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-04 15:27:30 -0700</bug_when>
    <thetext>Comment on attachment 102991
Revised fix

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

&gt; Source/WebCore/editing/visible_units.cpp:1643
&gt; +    : smallestOffsetAbove(offset, blockDirection == RTL, orderedWordBoundaries);

Oops, cq- because you forgot to indent here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446835</commentid>
    <comment_count>5</comment_count>
      <attachid>102992</attachid>
    <who name="Van Lam">vanlam</who>
    <bug_when>2011-08-04 15:30:49 -0700</bug_when>
    <thetext>Created attachment 102992
Revised fix

Indented. Nice catch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446900</commentid>
    <comment_count>6</comment_count>
      <attachid>102992</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 16:56:37 -0700</bug_when>
    <thetext>Comment on attachment 102992
Revised fix

Clearing flags on attachment: 102992

Committed r92431: &lt;http://trac.webkit.org/changeset/92431&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446901</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 16:56:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447287</commentid>
    <comment_count>8</comment_count>
      <attachid>102992</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-05 10:56:27 -0700</bug_when>
    <thetext>Comment on attachment 102992
Revised fix

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

&gt; Source/WebCore/editing/visible_units.cpp:1450
&gt; -        return invalidOffset;
&gt; +        return -1;

Replacing a name constant with a magic value of -1 does not seem like a style improvement to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447290</commentid>
    <comment_count>9</comment_count>
      <attachid>102992</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-05 11:01:38 -0700</bug_when>
    <thetext>Comment on attachment 102992
Revised fix

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

&gt;&gt; Source/WebCore/editing/visible_units.cpp:1450
&gt;&gt; +        return -1;
&gt; 
&gt; Replacing a name constant with a magic value of -1 does not seem like a style improvement to me.

invalidOffset was supposed to be used only for offsets in inline boxes.  So this was misused here.  We can introduce new const like NotFound instead.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102988</attachid>
            <date>2011-08-04 15:17:01 -0700</date>
            <delta_ts>2011-08-04 15:24:49 -0700</delta_ts>
            <desc>Proposed fix</desc>
            <filename>vanlam-stylisticstuff</filename>
            <type>text/plain</type>
            <size>5913</size>
            <attacher name="Van Lam">vanlam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNDE4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMDQgIFZhbiBMYW0g
IDx2YW5sYW1AZ29vZ2xlLmNvbT4KKworICAgICAgICBBIGZldyBwdXJlbHkgc3R5bGlzdGljIG1v
ZGlmaWNhdGlvbnMgdG8gdmlzaWJsZV91bml0cy5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBncmVhdGVzdFZhbHVlVW5kZXIgdG8gZ3Jl
YXRlc3RPZmZzZXRVbmRlciwgcG9zaXRpb25Jc0luc2lkZUJveAorICAgICAgICB0byBwb3NpdGlv
bklzSW5Cb3hCdXROb3RPbkJvdW5kYXJ5ICh0byBhdm9pZCBjb25mdXNpb24gd2l0aAorICAgICAg
ICBwb3NpdGlvbklzSW5Cb3gsIHdoaWNoIGlzIGp1c3QgYSBnZXRJbmxpbmVCb3hBbmRPZmZzZXQg
Y2hlY2spLgorICAgICAgICBSZW1vdmVkIHVzZSBvZiBpbnZhbGlkT2Zmc2V0IGFzIGFuIGVycm9y
IHZhbHVlIGluIGdyZWF0ZXN0T2Zmc2V0VW5kZXIKKyAgICAgICAgYW5kIHNtYWxsZXN0T2Zmc2V0
QWJvdmUgc2luY2Ugc2VtYW50aWNhbGx5IGl0IHNob3VsZCBvbmx5IGJlIHVzZWQgdG8KKyAgICAg
ICAgY2hlY2sgaWYgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFyZSBvZmZzZXRzIGluIGEgc2luZ2xl
IGJveC4KKworICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpncmVhdGVzdE9mZnNldFVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnNtYWxsZXN0
T2Zmc2V0QWJvdmUpOgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25Jc0luQm94QnV0Tm90T25C
b3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0V29yZFBvc2l0aW9uQWNyb3NzQm91bmRh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6cmlnaHRXb3JkUG9zaXRpb25BY3Jvc3NCb3VuZGFyeSk6
CisKIDIwMTEtMDgtMDQgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQmFja2dyb3VuZCBEb2VzIE5vdCBTY2FsZSBDb3JyZWN0bHkgd2l0aCBQYWdlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHJldmlzaW9uIDkyNDA5
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQ0NCw0MiArMTQ0NCw0MiBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHZpc3Vh
bGx5TGFzdFdvcmRCCiAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwogfQogICAgICAgICAK
LXN0YXRpYyBpbnQgZ3JlYXRlc3RWYWx1ZVVuZGVyKGludCBvZmZzZXQsIGJvb2wgYm94QW5kQmxv
Y2tBcmVJblNhbWVEaXJlY3Rpb24sIGNvbnN0IFdvcmRCb3VuZGFyeVZlY3RvciYgb3JkZXJlZFdv
cmRCb3VuZGFyaWVzKQorc3RhdGljIGludCBncmVhdGVzdE9mZnNldFVuZGVyKGludCBvZmZzZXQs
IGJvb2wgYm94QW5kQmxvY2tBcmVJblNhbWVEaXJlY3Rpb24sIGNvbnN0IFdvcmRCb3VuZGFyeVZl
Y3RvciYgb3JkZXJlZFdvcmRCb3VuZGFyaWVzKQogewogICAgIGlmICghb3JkZXJlZFdvcmRCb3Vu
ZGFyaWVzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisgICAgICAgIHJl
dHVybiAtMTsKICAgICAvLyBGSVhNRTogYmluYXJ5IHNlYXJjaC4KICAgICBpZiAoYm94QW5kQmxv
Y2tBcmVJblNhbWVEaXJlY3Rpb24pIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG9yZGVyZWRXb3JkQm91bmRhcmllcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgaWYgKG9y
ZGVyZWRXb3JkQm91bmRhcmllc1tpXS5vZmZzZXRJbklubGluZUJveCA8IG9mZnNldCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gaW52YWxpZE9m
ZnNldDsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBmb3IgKGludCBpID0gb3JkZXJl
ZFdvcmRCb3VuZGFyaWVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIGlmIChv
cmRlcmVkV29yZEJvdW5kYXJpZXNbaV0ub2Zmc2V0SW5JbmxpbmVCb3ggPCBvZmZzZXQpCiAgICAg
ICAgICAgICByZXR1cm4gaTsKICAgICB9Ci0gICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisgICAg
cmV0dXJuIC0xOwogfQogCiBzdGF0aWMgaW50IHNtYWxsZXN0T2Zmc2V0QWJvdmUoaW50IG9mZnNl
dCwgYm9vbCBib3hBbmRCbG9ja0FyZUluU2FtZURpcmVjdGlvbiwgY29uc3QgV29yZEJvdW5kYXJ5
VmVjdG9yJiBvcmRlcmVkV29yZEJvdW5kYXJpZXMpCiB7CiAgICAgaWYgKCFvcmRlcmVkV29yZEJv
dW5kYXJpZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKKyAgICAgICAg
cmV0dXJuIC0xOwogICAgIC8vIEZJWE1FOiBiaW5hcnkgc2VhcmNoLgogICAgIGlmIChib3hBbmRC
bG9ja0FyZUluU2FtZURpcmVjdGlvbikgewogICAgICAgICBmb3IgKGludCBpID0gb3JkZXJlZFdv
cmRCb3VuZGFyaWVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAgICBpZiAo
b3JkZXJlZFdvcmRCb3VuZGFyaWVzW2ldLm9mZnNldEluSW5saW5lQm94ID4gb2Zmc2V0KQogICAg
ICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBpbnZhbGlk
T2Zmc2V0OworICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBvcmRlcmVkV29yZEJvdW5kYXJpZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYg
KG9yZGVyZWRXb3JkQm91bmRhcmllc1tpXS5vZmZzZXRJbklubGluZUJveCA+IG9mZnNldCkKICAg
ICAgICAgICAgIHJldHVybiBpOwogICAgIH0KLSAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKKyAg
ICByZXR1cm4gLTE7CiB9CiAKIHN0YXRpYyBjb25zdCBSZW5kZXJCbG9jayogYmxvY2tXaXRoUHJl
dmlvdXNMaW5lQm94KGNvbnN0IFJlbmRlckJsb2NrKiBzdGFydGluZ0Jsb2NrKQpAQCAtMTU5OSw3
ICsxNTk5LDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiByaWdodFdvcmRCb3VuZGFyeQogICAg
IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKIH0KICAgICAKLXN0YXRpYyBib29sIHBvc2l0aW9u
SXNJbnNpZGVCb3goY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB3b3JkQnJlYWssIGNvbnN0IElubGlu
ZUJveCogYm94KQorc3RhdGljIGJvb2wgcG9zaXRpb25Jc0luQm94QnV0Tm90T25Cb3VuZGFyeShj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHdvcmRCcmVhaywgY29uc3QgSW5saW5lQm94KiBib3gpCiB7
CiAgICAgaW50IG9mZnNldE9mV29yZEJyZWFrOwogICAgIHJldHVybiBwb3NpdGlvbklzSW5Cb3go
d29yZEJyZWFrLCBib3gsIG9mZnNldE9mV29yZEJyZWFrKQpAQCAtMTYzMywxNSArMTYzMywxNSBA
QCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIGxlZnRXb3JkUG9zaXRpb25BCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHdvcmRCcmVhayA9IG5leHRCb3VuZGFyeSh2aXNpYmxlUG9zaXRpb24sIG5l
eHRXb3JkUG9zaXRpb25Cb3VuZGFyeSk7CiAgICAgfQotICAgIGlmICh3b3JkQnJlYWsuaXNOb3RO
dWxsKCkgJiYgcG9zaXRpb25Jc0luc2lkZUJveCh3b3JkQnJlYWssIGJveCkpCisgICAgaWYgKHdv
cmRCcmVhay5pc05vdE51bGwoKSAmJiBwb3NpdGlvbklzSW5Cb3hCdXROb3RPbkJvdW5kYXJ5KHdv
cmRCcmVhaywgYm94KSkKICAgICAgICAgcmV0dXJuIHdvcmRCcmVhazsKICAgICAKICAgICBXb3Jk
Qm91bmRhcnlWZWN0b3Igb3JkZXJlZFdvcmRCb3VuZGFyaWVzOwogICAgIGNvbGxlY3RXb3JkQnJl
YWtzSW5Cb3goYm94LCBvcmRlcmVkV29yZEJvdW5kYXJpZXMsIGJsb2NrRGlyZWN0aW9uKTsKIAot
ICAgIGludCBpbmRleCA9IGJveC0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gZ3JlYXRlc3RW
YWx1ZVVuZGVyKG9mZnNldCwgYmxvY2tEaXJlY3Rpb24gPT0gTFRSLCBvcmRlcmVkV29yZEJvdW5k
YXJpZXMpIDoKLSAgICAgICAgc21hbGxlc3RPZmZzZXRBYm92ZShvZmZzZXQsIGJsb2NrRGlyZWN0
aW9uID09IFJUTCwgb3JkZXJlZFdvcmRCb3VuZGFyaWVzKTsKLSAgICBpZiAoaW5kZXggIT0gaW52
YWxpZE9mZnNldCkKKyAgICBpbnQgaW5kZXggPSBib3gtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSA/IGdyZWF0ZXN0T2Zmc2V0VW5kZXIob2Zmc2V0LCBibG9ja0RpcmVjdGlvbiA9PSBMVFIsIG9y
ZGVyZWRXb3JkQm91bmRhcmllcykKKyAgICA6IHNtYWxsZXN0T2Zmc2V0QWJvdmUob2Zmc2V0LCBi
bG9ja0RpcmVjdGlvbiA9PSBSVEwsIG9yZGVyZWRXb3JkQm91bmRhcmllcyk7CisgICAgaWYgKGlu
ZGV4ICE9IC0xKQogICAgICAgICByZXR1cm4gb3JkZXJlZFdvcmRCb3VuZGFyaWVzW2luZGV4XS52
aXNpYmxlUG9zaXRpb247CiAgICAgCiAgICAgcmV0dXJuIGxlZnRXb3JkQm91bmRhcnkobGVmdElu
bGluZUJveChib3gsIGJsb2NrRGlyZWN0aW9uKSwgaW52YWxpZE9mZnNldCwgYmxvY2tEaXJlY3Rp
b24pOwpAQCAtMTY3MCwxNSArMTY3MCwxNSBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHJpZ2h0
V29yZFBvc2l0aW9uCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHdvcmRCcmVhayA9IG5leHRC
b3VuZGFyeSh2aXNpYmxlUG9zaXRpb24sIG5leHRXb3JkUG9zaXRpb25Cb3VuZGFyeSk7CiAgICAg
fQotICAgIGlmICh3b3JkQnJlYWsuaXNOb3ROdWxsKCkgJiYgcG9zaXRpb25Jc0luc2lkZUJveCh3
b3JkQnJlYWssIGJveCkpCisgICAgaWYgKHdvcmRCcmVhay5pc05vdE51bGwoKSAmJiBwb3NpdGlv
bklzSW5Cb3hCdXROb3RPbkJvdW5kYXJ5KHdvcmRCcmVhaywgYm94KSkKICAgICAgICAgcmV0dXJu
IHdvcmRCcmVhazsKICAgICAKICAgICBXb3JkQm91bmRhcnlWZWN0b3Igb3JkZXJlZFdvcmRCb3Vu
ZGFyaWVzOwogICAgIGNvbGxlY3RXb3JkQnJlYWtzSW5Cb3goYm94LCBvcmRlcmVkV29yZEJvdW5k
YXJpZXMsIGJsb2NrRGlyZWN0aW9uKTsKICAgICAKLSAgICBpbnQgaW5kZXggPSBib3gtPmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKSA/IHNtYWxsZXN0T2Zmc2V0QWJvdmUob2Zmc2V0LCBibG9ja0Rp
cmVjdGlvbiA9PSBMVFIsIG9yZGVyZWRXb3JkQm91bmRhcmllcykgOgotICAgICAgICBncmVhdGVz
dFZhbHVlVW5kZXIob2Zmc2V0LCBibG9ja0RpcmVjdGlvbiA9PSBSVEwsIG9yZGVyZWRXb3JkQm91
bmRhcmllcyk7Ci0gICAgaWYgKGluZGV4ICE9IGludmFsaWRPZmZzZXQpCisgICAgaW50IGluZGV4
ID0gYm94LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBzbWFsbGVzdE9mZnNldEFib3ZlKG9m
ZnNldCwgYmxvY2tEaXJlY3Rpb24gPT0gTFRSLCBvcmRlcmVkV29yZEJvdW5kYXJpZXMpCisgICAg
ICAgIDogZ3JlYXRlc3RPZmZzZXRVbmRlcihvZmZzZXQsIGJsb2NrRGlyZWN0aW9uID09IFJUTCwg
b3JkZXJlZFdvcmRCb3VuZGFyaWVzKTsKKyAgICBpZiAoaW5kZXggIT0gLTEpCiAgICAgICAgIHJl
dHVybiBvcmRlcmVkV29yZEJvdW5kYXJpZXNbaW5kZXhdLnZpc2libGVQb3NpdGlvbjsKICAgICAK
ICAgICByZXR1cm4gcmlnaHRXb3JkQm91bmRhcnkocmlnaHRJbmxpbmVCb3goYm94LCBibG9ja0Rp
cmVjdGlvbiksIGludmFsaWRPZmZzZXQsIGJsb2NrRGlyZWN0aW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102991</attachid>
            <date>2011-08-04 15:24:49 -0700</date>
            <delta_ts>2011-08-04 15:30:49 -0700</delta_ts>
            <desc>Revised fix</desc>
            <filename>vanlam-stylisticstuff</filename>
            <type>text/plain</type>
            <size>5911</size>
            <attacher name="Van Lam">vanlam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNDE4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMDQgIFZhbiBMYW0g
IDx2YW5sYW1AZ29vZ2xlLmNvbT4KKworICAgICAgICBBIGZldyBwdXJlbHkgc3R5bGlzdGljIG1v
ZGlmaWNhdGlvbnMgdG8gdmlzaWJsZV91bml0cy5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBncmVhdGVzdFZhbHVlVW5kZXIgdG8gZ3Jl
YXRlc3RPZmZzZXRVbmRlciwgcG9zaXRpb25Jc0luc2lkZUJveAorICAgICAgICB0byBwb3NpdGlv
bklzSW5Cb3hCdXROb3RPbkJvdW5kYXJ5ICh0byBhdm9pZCBjb25mdXNpb24gd2l0aAorICAgICAg
ICBwb3NpdGlvbklzSW5Cb3gsIHdoaWNoIGlzIGp1c3QgYSBnZXRJbmxpbmVCb3hBbmRPZmZzZXQg
Y2hlY2spLgorICAgICAgICBSZW1vdmVkIHVzZSBvZiBpbnZhbGlkT2Zmc2V0IGFzIGFuIGVycm9y
IHZhbHVlIGluIGdyZWF0ZXN0T2Zmc2V0VW5kZXIKKyAgICAgICAgYW5kIHNtYWxsZXN0T2Zmc2V0
QWJvdmUgc2luY2Ugc2VtYW50aWNhbGx5IGl0IHNob3VsZCBvbmx5IGJlIHVzZWQgdG8KKyAgICAg
ICAgY2hlY2sgaWYgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFyZSBvZmZzZXRzIGluIGEgc2luZ2xl
IGJveC4KKworICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpncmVhdGVzdE9mZnNldFVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnNtYWxsZXN0
T2Zmc2V0QWJvdmUpOgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25Jc0luQm94QnV0Tm90T25C
b3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0V29yZFBvc2l0aW9uQWNyb3NzQm91bmRh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6cmlnaHRXb3JkUG9zaXRpb25BY3Jvc3NCb3VuZGFyeSk6
CisKIDIwMTEtMDgtMDQgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQmFja2dyb3VuZCBEb2VzIE5vdCBTY2FsZSBDb3JyZWN0bHkgd2l0aCBQYWdlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHJldmlzaW9uIDkyNDA5
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQ0NCw0MiArMTQ0NCw0MiBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHZpc3Vh
bGx5TGFzdFdvcmRCCiAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwogfQogICAgICAgICAK
LXN0YXRpYyBpbnQgZ3JlYXRlc3RWYWx1ZVVuZGVyKGludCBvZmZzZXQsIGJvb2wgYm94QW5kQmxv
Y2tBcmVJblNhbWVEaXJlY3Rpb24sIGNvbnN0IFdvcmRCb3VuZGFyeVZlY3RvciYgb3JkZXJlZFdv
cmRCb3VuZGFyaWVzKQorc3RhdGljIGludCBncmVhdGVzdE9mZnNldFVuZGVyKGludCBvZmZzZXQs
IGJvb2wgYm94QW5kQmxvY2tBcmVJblNhbWVEaXJlY3Rpb24sIGNvbnN0IFdvcmRCb3VuZGFyeVZl
Y3RvciYgb3JkZXJlZFdvcmRCb3VuZGFyaWVzKQogewogICAgIGlmICghb3JkZXJlZFdvcmRCb3Vu
ZGFyaWVzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisgICAgICAgIHJl
dHVybiAtMTsKICAgICAvLyBGSVhNRTogYmluYXJ5IHNlYXJjaC4KICAgICBpZiAoYm94QW5kQmxv
Y2tBcmVJblNhbWVEaXJlY3Rpb24pIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG9yZGVyZWRXb3JkQm91bmRhcmllcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgaWYgKG9y
ZGVyZWRXb3JkQm91bmRhcmllc1tpXS5vZmZzZXRJbklubGluZUJveCA8IG9mZnNldCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gaW52YWxpZE9m
ZnNldDsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBmb3IgKGludCBpID0gb3JkZXJl
ZFdvcmRCb3VuZGFyaWVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIGlmIChv
cmRlcmVkV29yZEJvdW5kYXJpZXNbaV0ub2Zmc2V0SW5JbmxpbmVCb3ggPCBvZmZzZXQpCiAgICAg
ICAgICAgICByZXR1cm4gaTsKICAgICB9Ci0gICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisgICAg
cmV0dXJuIC0xOwogfQogCiBzdGF0aWMgaW50IHNtYWxsZXN0T2Zmc2V0QWJvdmUoaW50IG9mZnNl
dCwgYm9vbCBib3hBbmRCbG9ja0FyZUluU2FtZURpcmVjdGlvbiwgY29uc3QgV29yZEJvdW5kYXJ5
VmVjdG9yJiBvcmRlcmVkV29yZEJvdW5kYXJpZXMpCiB7CiAgICAgaWYgKCFvcmRlcmVkV29yZEJv
dW5kYXJpZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKKyAgICAgICAg
cmV0dXJuIC0xOwogICAgIC8vIEZJWE1FOiBiaW5hcnkgc2VhcmNoLgogICAgIGlmIChib3hBbmRC
bG9ja0FyZUluU2FtZURpcmVjdGlvbikgewogICAgICAgICBmb3IgKGludCBpID0gb3JkZXJlZFdv
cmRCb3VuZGFyaWVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAgICBpZiAo
b3JkZXJlZFdvcmRCb3VuZGFyaWVzW2ldLm9mZnNldEluSW5saW5lQm94ID4gb2Zmc2V0KQogICAg
ICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBpbnZhbGlk
T2Zmc2V0OworICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBvcmRlcmVkV29yZEJvdW5kYXJpZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYg
KG9yZGVyZWRXb3JkQm91bmRhcmllc1tpXS5vZmZzZXRJbklubGluZUJveCA+IG9mZnNldCkKICAg
ICAgICAgICAgIHJldHVybiBpOwogICAgIH0KLSAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKKyAg
ICByZXR1cm4gLTE7CiB9CiAKIHN0YXRpYyBjb25zdCBSZW5kZXJCbG9jayogYmxvY2tXaXRoUHJl
dmlvdXNMaW5lQm94KGNvbnN0IFJlbmRlckJsb2NrKiBzdGFydGluZ0Jsb2NrKQpAQCAtMTU5OSw3
ICsxNTk5LDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiByaWdodFdvcmRCb3VuZGFyeQogICAg
IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKIH0KICAgICAKLXN0YXRpYyBib29sIHBvc2l0aW9u
SXNJbnNpZGVCb3goY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB3b3JkQnJlYWssIGNvbnN0IElubGlu
ZUJveCogYm94KQorc3RhdGljIGJvb2wgcG9zaXRpb25Jc0luQm94QnV0Tm90T25Cb3VuZGFyeShj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHdvcmRCcmVhaywgY29uc3QgSW5saW5lQm94KiBib3gpCiB7
CiAgICAgaW50IG9mZnNldE9mV29yZEJyZWFrOwogICAgIHJldHVybiBwb3NpdGlvbklzSW5Cb3go
d29yZEJyZWFrLCBib3gsIG9mZnNldE9mV29yZEJyZWFrKQpAQCAtMTYzMywxNSArMTYzMywxNSBA
QCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIGxlZnRXb3JkUG9zaXRpb25BCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHdvcmRCcmVhayA9IG5leHRCb3VuZGFyeSh2aXNpYmxlUG9zaXRpb24sIG5l
eHRXb3JkUG9zaXRpb25Cb3VuZGFyeSk7CiAgICAgfQotICAgIGlmICh3b3JkQnJlYWsuaXNOb3RO
dWxsKCkgJiYgcG9zaXRpb25Jc0luc2lkZUJveCh3b3JkQnJlYWssIGJveCkpCisgICAgaWYgKHdv
cmRCcmVhay5pc05vdE51bGwoKSAmJiBwb3NpdGlvbklzSW5Cb3hCdXROb3RPbkJvdW5kYXJ5KHdv
cmRCcmVhaywgYm94KSkKICAgICAgICAgcmV0dXJuIHdvcmRCcmVhazsKICAgICAKICAgICBXb3Jk
Qm91bmRhcnlWZWN0b3Igb3JkZXJlZFdvcmRCb3VuZGFyaWVzOwogICAgIGNvbGxlY3RXb3JkQnJl
YWtzSW5Cb3goYm94LCBvcmRlcmVkV29yZEJvdW5kYXJpZXMsIGJsb2NrRGlyZWN0aW9uKTsKIAot
ICAgIGludCBpbmRleCA9IGJveC0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gZ3JlYXRlc3RW
YWx1ZVVuZGVyKG9mZnNldCwgYmxvY2tEaXJlY3Rpb24gPT0gTFRSLCBvcmRlcmVkV29yZEJvdW5k
YXJpZXMpIDoKLSAgICAgICAgc21hbGxlc3RPZmZzZXRBYm92ZShvZmZzZXQsIGJsb2NrRGlyZWN0
aW9uID09IFJUTCwgb3JkZXJlZFdvcmRCb3VuZGFyaWVzKTsKLSAgICBpZiAoaW5kZXggIT0gaW52
YWxpZE9mZnNldCkKKyAgICBpbnQgaW5kZXggPSBib3gtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSA/IGdyZWF0ZXN0T2Zmc2V0VW5kZXIob2Zmc2V0LCBibG9ja0RpcmVjdGlvbiA9PSBMVFIsIG9y
ZGVyZWRXb3JkQm91bmRhcmllcykKKyAgICA6IHNtYWxsZXN0T2Zmc2V0QWJvdmUob2Zmc2V0LCBi
bG9ja0RpcmVjdGlvbiA9PSBSVEwsIG9yZGVyZWRXb3JkQm91bmRhcmllcyk7CisgICAgaWYgKGlu
ZGV4ID49IDApCiAgICAgICAgIHJldHVybiBvcmRlcmVkV29yZEJvdW5kYXJpZXNbaW5kZXhdLnZp
c2libGVQb3NpdGlvbjsKICAgICAKICAgICByZXR1cm4gbGVmdFdvcmRCb3VuZGFyeShsZWZ0SW5s
aW5lQm94KGJveCwgYmxvY2tEaXJlY3Rpb24pLCBpbnZhbGlkT2Zmc2V0LCBibG9ja0RpcmVjdGlv
bik7CkBAIC0xNjcwLDE1ICsxNjcwLDE1IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gcmlnaHRX
b3JkUG9zaXRpb24KICAgICAgICAgZWxzZQogICAgICAgICAgICAgd29yZEJyZWFrID0gbmV4dEJv
dW5kYXJ5KHZpc2libGVQb3NpdGlvbiwgbmV4dFdvcmRQb3NpdGlvbkJvdW5kYXJ5KTsKICAgICB9
Ci0gICAgaWYgKHdvcmRCcmVhay5pc05vdE51bGwoKSAmJiBwb3NpdGlvbklzSW5zaWRlQm94KHdv
cmRCcmVhaywgYm94KSkKKyAgICBpZiAod29yZEJyZWFrLmlzTm90TnVsbCgpICYmIHBvc2l0aW9u
SXNJbkJveEJ1dE5vdE9uQm91bmRhcnkod29yZEJyZWFrLCBib3gpKQogICAgICAgICByZXR1cm4g
d29yZEJyZWFrOwogICAgIAogICAgIFdvcmRCb3VuZGFyeVZlY3RvciBvcmRlcmVkV29yZEJvdW5k
YXJpZXM7CiAgICAgY29sbGVjdFdvcmRCcmVha3NJbkJveChib3gsIG9yZGVyZWRXb3JkQm91bmRh
cmllcywgYmxvY2tEaXJlY3Rpb24pOwogICAgIAotICAgIGludCBpbmRleCA9IGJveC0+aXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpID8gc21hbGxlc3RPZmZzZXRBYm92ZShvZmZzZXQsIGJsb2NrRGly
ZWN0aW9uID09IExUUiwgb3JkZXJlZFdvcmRCb3VuZGFyaWVzKSA6Ci0gICAgICAgIGdyZWF0ZXN0
VmFsdWVVbmRlcihvZmZzZXQsIGJsb2NrRGlyZWN0aW9uID09IFJUTCwgb3JkZXJlZFdvcmRCb3Vu
ZGFyaWVzKTsKLSAgICBpZiAoaW5kZXggIT0gaW52YWxpZE9mZnNldCkKKyAgICBpbnQgaW5kZXgg
PSBib3gtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHNtYWxsZXN0T2Zmc2V0QWJvdmUob2Zm
c2V0LCBibG9ja0RpcmVjdGlvbiA9PSBMVFIsIG9yZGVyZWRXb3JkQm91bmRhcmllcykKKyAgICAg
ICAgOiBncmVhdGVzdE9mZnNldFVuZGVyKG9mZnNldCwgYmxvY2tEaXJlY3Rpb24gPT0gUlRMLCBv
cmRlcmVkV29yZEJvdW5kYXJpZXMpOworICAgIGlmIChpbmRleCA+PSAwKQogICAgICAgICByZXR1
cm4gb3JkZXJlZFdvcmRCb3VuZGFyaWVzW2luZGV4XS52aXNpYmxlUG9zaXRpb247CiAgICAgCiAg
ICAgcmV0dXJuIHJpZ2h0V29yZEJvdW5kYXJ5KHJpZ2h0SW5saW5lQm94KGJveCwgYmxvY2tEaXJl
Y3Rpb24pLCBpbnZhbGlkT2Zmc2V0LCBibG9ja0RpcmVjdGlvbik7Cg==
</data>
<flag name="review"
          id="98423"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="98424"
          type_id="3"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102992</attachid>
            <date>2011-08-04 15:30:49 -0700</date>
            <delta_ts>2011-08-05 11:01:38 -0700</delta_ts>
            <desc>Revised fix</desc>
            <filename>vanlam-stylisticstuff</filename>
            <type>text/plain</type>
            <size>5915</size>
            <attacher name="Van Lam">vanlam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNDE4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMDQgIFZhbiBMYW0g
IDx2YW5sYW1AZ29vZ2xlLmNvbT4KKworICAgICAgICBBIGZldyBwdXJlbHkgc3R5bGlzdGljIG1v
ZGlmaWNhdGlvbnMgdG8gdmlzaWJsZV91bml0cy5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCBncmVhdGVzdFZhbHVlVW5kZXIgdG8gZ3Jl
YXRlc3RPZmZzZXRVbmRlciwgcG9zaXRpb25Jc0luc2lkZUJveAorICAgICAgICB0byBwb3NpdGlv
bklzSW5Cb3hCdXROb3RPbkJvdW5kYXJ5ICh0byBhdm9pZCBjb25mdXNpb24gd2l0aAorICAgICAg
ICBwb3NpdGlvbklzSW5Cb3gsIHdoaWNoIGlzIGp1c3QgYSBnZXRJbmxpbmVCb3hBbmRPZmZzZXQg
Y2hlY2spLgorICAgICAgICBSZW1vdmVkIHVzZSBvZiBpbnZhbGlkT2Zmc2V0IGFzIGFuIGVycm9y
IHZhbHVlIGluIGdyZWF0ZXN0T2Zmc2V0VW5kZXIKKyAgICAgICAgYW5kIHNtYWxsZXN0T2Zmc2V0
QWJvdmUgc2luY2Ugc2VtYW50aWNhbGx5IGl0IHNob3VsZCBvbmx5IGJlIHVzZWQgdG8KKyAgICAg
ICAgY2hlY2sgaWYgaXQgbWFrZXMgc2Vuc2UgdG8gY29tcGFyZSBvZmZzZXRzIGluIGEgc2luZ2xl
IGJveC4KKworICAgICAgICAqIGVkaXRpbmcvdmlzaWJsZV91bml0cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpncmVhdGVzdE9mZnNldFVuZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnNtYWxsZXN0
T2Zmc2V0QWJvdmUpOgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25Jc0luQm94QnV0Tm90T25C
b3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpsZWZ0V29yZFBvc2l0aW9uQWNyb3NzQm91bmRh
cnkpOgorICAgICAgICAoV2ViQ29yZTo6cmlnaHRXb3JkUG9zaXRpb25BY3Jvc3NCb3VuZGFyeSk6
CisKIDIwMTEtMDgtMDQgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQmFja2dyb3VuZCBEb2VzIE5vdCBTY2FsZSBDb3JyZWN0bHkgd2l0aCBQYWdlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHJldmlzaW9uIDkyNDA5
KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQ0NCw0MiArMTQ0NCw0MiBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHZpc3Vh
bGx5TGFzdFdvcmRCCiAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigpOwogfQogICAgICAgICAK
LXN0YXRpYyBpbnQgZ3JlYXRlc3RWYWx1ZVVuZGVyKGludCBvZmZzZXQsIGJvb2wgYm94QW5kQmxv
Y2tBcmVJblNhbWVEaXJlY3Rpb24sIGNvbnN0IFdvcmRCb3VuZGFyeVZlY3RvciYgb3JkZXJlZFdv
cmRCb3VuZGFyaWVzKQorc3RhdGljIGludCBncmVhdGVzdE9mZnNldFVuZGVyKGludCBvZmZzZXQs
IGJvb2wgYm94QW5kQmxvY2tBcmVJblNhbWVEaXJlY3Rpb24sIGNvbnN0IFdvcmRCb3VuZGFyeVZl
Y3RvciYgb3JkZXJlZFdvcmRCb3VuZGFyaWVzKQogewogICAgIGlmICghb3JkZXJlZFdvcmRCb3Vu
ZGFyaWVzLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisgICAgICAgIHJl
dHVybiAtMTsKICAgICAvLyBGSVhNRTogYmluYXJ5IHNlYXJjaC4KICAgICBpZiAoYm94QW5kQmxv
Y2tBcmVJblNhbWVEaXJlY3Rpb24pIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG9yZGVyZWRXb3JkQm91bmRhcmllcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgaWYgKG9y
ZGVyZWRXb3JkQm91bmRhcmllc1tpXS5vZmZzZXRJbklubGluZUJveCA8IG9mZnNldCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gaW52YWxpZE9m
ZnNldDsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBmb3IgKGludCBpID0gb3JkZXJl
ZFdvcmRCb3VuZGFyaWVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIGlmIChv
cmRlcmVkV29yZEJvdW5kYXJpZXNbaV0ub2Zmc2V0SW5JbmxpbmVCb3ggPCBvZmZzZXQpCiAgICAg
ICAgICAgICByZXR1cm4gaTsKICAgICB9Ci0gICAgcmV0dXJuIGludmFsaWRPZmZzZXQ7CisgICAg
cmV0dXJuIC0xOwogfQogCiBzdGF0aWMgaW50IHNtYWxsZXN0T2Zmc2V0QWJvdmUoaW50IG9mZnNl
dCwgYm9vbCBib3hBbmRCbG9ja0FyZUluU2FtZURpcmVjdGlvbiwgY29uc3QgV29yZEJvdW5kYXJ5
VmVjdG9yJiBvcmRlcmVkV29yZEJvdW5kYXJpZXMpCiB7CiAgICAgaWYgKCFvcmRlcmVkV29yZEJv
dW5kYXJpZXMuc2l6ZSgpKQotICAgICAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKKyAgICAgICAg
cmV0dXJuIC0xOwogICAgIC8vIEZJWE1FOiBiaW5hcnkgc2VhcmNoLgogICAgIGlmIChib3hBbmRC
bG9ja0FyZUluU2FtZURpcmVjdGlvbikgewogICAgICAgICBmb3IgKGludCBpID0gb3JkZXJlZFdv
cmRCb3VuZGFyaWVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgICAgICBpZiAo
b3JkZXJlZFdvcmRCb3VuZGFyaWVzW2ldLm9mZnNldEluSW5saW5lQm94ID4gb2Zmc2V0KQogICAg
ICAgICAgICAgICAgIHJldHVybiBpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBpbnZhbGlk
T2Zmc2V0OworICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBvcmRlcmVkV29yZEJvdW5kYXJpZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYg
KG9yZGVyZWRXb3JkQm91bmRhcmllc1tpXS5vZmZzZXRJbklubGluZUJveCA+IG9mZnNldCkKICAg
ICAgICAgICAgIHJldHVybiBpOwogICAgIH0KLSAgICByZXR1cm4gaW52YWxpZE9mZnNldDsKKyAg
ICByZXR1cm4gLTE7CiB9CiAKIHN0YXRpYyBjb25zdCBSZW5kZXJCbG9jayogYmxvY2tXaXRoUHJl
dmlvdXNMaW5lQm94KGNvbnN0IFJlbmRlckJsb2NrKiBzdGFydGluZ0Jsb2NrKQpAQCAtMTU5OSw3
ICsxNTk5LDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiByaWdodFdvcmRCb3VuZGFyeQogICAg
IHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKIH0KICAgICAKLXN0YXRpYyBib29sIHBvc2l0aW9u
SXNJbnNpZGVCb3goY29uc3QgVmlzaWJsZVBvc2l0aW9uJiB3b3JkQnJlYWssIGNvbnN0IElubGlu
ZUJveCogYm94KQorc3RhdGljIGJvb2wgcG9zaXRpb25Jc0luQm94QnV0Tm90T25Cb3VuZGFyeShj
b25zdCBWaXNpYmxlUG9zaXRpb24mIHdvcmRCcmVhaywgY29uc3QgSW5saW5lQm94KiBib3gpCiB7
CiAgICAgaW50IG9mZnNldE9mV29yZEJyZWFrOwogICAgIHJldHVybiBwb3NpdGlvbklzSW5Cb3go
d29yZEJyZWFrLCBib3gsIG9mZnNldE9mV29yZEJyZWFrKQpAQCAtMTYzMywxNSArMTYzMywxNSBA
QCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIGxlZnRXb3JkUG9zaXRpb25BCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHdvcmRCcmVhayA9IG5leHRCb3VuZGFyeSh2aXNpYmxlUG9zaXRpb24sIG5l
eHRXb3JkUG9zaXRpb25Cb3VuZGFyeSk7CiAgICAgfQotICAgIGlmICh3b3JkQnJlYWsuaXNOb3RO
dWxsKCkgJiYgcG9zaXRpb25Jc0luc2lkZUJveCh3b3JkQnJlYWssIGJveCkpCisgICAgaWYgKHdv
cmRCcmVhay5pc05vdE51bGwoKSAmJiBwb3NpdGlvbklzSW5Cb3hCdXROb3RPbkJvdW5kYXJ5KHdv
cmRCcmVhaywgYm94KSkKICAgICAgICAgcmV0dXJuIHdvcmRCcmVhazsKICAgICAKICAgICBXb3Jk
Qm91bmRhcnlWZWN0b3Igb3JkZXJlZFdvcmRCb3VuZGFyaWVzOwogICAgIGNvbGxlY3RXb3JkQnJl
YWtzSW5Cb3goYm94LCBvcmRlcmVkV29yZEJvdW5kYXJpZXMsIGJsb2NrRGlyZWN0aW9uKTsKIAot
ICAgIGludCBpbmRleCA9IGJveC0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gZ3JlYXRlc3RW
YWx1ZVVuZGVyKG9mZnNldCwgYmxvY2tEaXJlY3Rpb24gPT0gTFRSLCBvcmRlcmVkV29yZEJvdW5k
YXJpZXMpIDoKLSAgICAgICAgc21hbGxlc3RPZmZzZXRBYm92ZShvZmZzZXQsIGJsb2NrRGlyZWN0
aW9uID09IFJUTCwgb3JkZXJlZFdvcmRCb3VuZGFyaWVzKTsKLSAgICBpZiAoaW5kZXggIT0gaW52
YWxpZE9mZnNldCkKKyAgICBpbnQgaW5kZXggPSBib3gtPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSA/IGdyZWF0ZXN0T2Zmc2V0VW5kZXIob2Zmc2V0LCBibG9ja0RpcmVjdGlvbiA9PSBMVFIsIG9y
ZGVyZWRXb3JkQm91bmRhcmllcykKKyAgICAgICAgOiBzbWFsbGVzdE9mZnNldEFib3ZlKG9mZnNl
dCwgYmxvY2tEaXJlY3Rpb24gPT0gUlRMLCBvcmRlcmVkV29yZEJvdW5kYXJpZXMpOworICAgIGlm
IChpbmRleCA+PSAwKQogICAgICAgICByZXR1cm4gb3JkZXJlZFdvcmRCb3VuZGFyaWVzW2luZGV4
XS52aXNpYmxlUG9zaXRpb247CiAgICAgCiAgICAgcmV0dXJuIGxlZnRXb3JkQm91bmRhcnkobGVm
dElubGluZUJveChib3gsIGJsb2NrRGlyZWN0aW9uKSwgaW52YWxpZE9mZnNldCwgYmxvY2tEaXJl
Y3Rpb24pOwpAQCAtMTY3MCwxNSArMTY3MCwxNSBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHJp
Z2h0V29yZFBvc2l0aW9uCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHdvcmRCcmVhayA9IG5l
eHRCb3VuZGFyeSh2aXNpYmxlUG9zaXRpb24sIG5leHRXb3JkUG9zaXRpb25Cb3VuZGFyeSk7CiAg
ICAgfQotICAgIGlmICh3b3JkQnJlYWsuaXNOb3ROdWxsKCkgJiYgcG9zaXRpb25Jc0luc2lkZUJv
eCh3b3JkQnJlYWssIGJveCkpCisgICAgaWYgKHdvcmRCcmVhay5pc05vdE51bGwoKSAmJiBwb3Np
dGlvbklzSW5Cb3hCdXROb3RPbkJvdW5kYXJ5KHdvcmRCcmVhaywgYm94KSkKICAgICAgICAgcmV0
dXJuIHdvcmRCcmVhazsKICAgICAKICAgICBXb3JkQm91bmRhcnlWZWN0b3Igb3JkZXJlZFdvcmRC
b3VuZGFyaWVzOwogICAgIGNvbGxlY3RXb3JkQnJlYWtzSW5Cb3goYm94LCBvcmRlcmVkV29yZEJv
dW5kYXJpZXMsIGJsb2NrRGlyZWN0aW9uKTsKICAgICAKLSAgICBpbnQgaW5kZXggPSBib3gtPmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHNtYWxsZXN0T2Zmc2V0QWJvdmUob2Zmc2V0LCBibG9j
a0RpcmVjdGlvbiA9PSBMVFIsIG9yZGVyZWRXb3JkQm91bmRhcmllcykgOgotICAgICAgICBncmVh
dGVzdFZhbHVlVW5kZXIob2Zmc2V0LCBibG9ja0RpcmVjdGlvbiA9PSBSVEwsIG9yZGVyZWRXb3Jk
Qm91bmRhcmllcyk7Ci0gICAgaWYgKGluZGV4ICE9IGludmFsaWRPZmZzZXQpCisgICAgaW50IGlu
ZGV4ID0gYm94LT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBzbWFsbGVzdE9mZnNldEFib3Zl
KG9mZnNldCwgYmxvY2tEaXJlY3Rpb24gPT0gTFRSLCBvcmRlcmVkV29yZEJvdW5kYXJpZXMpCisg
ICAgICAgIDogZ3JlYXRlc3RPZmZzZXRVbmRlcihvZmZzZXQsIGJsb2NrRGlyZWN0aW9uID09IFJU
TCwgb3JkZXJlZFdvcmRCb3VuZGFyaWVzKTsKKyAgICBpZiAoaW5kZXggPj0gMCkKICAgICAgICAg
cmV0dXJuIG9yZGVyZWRXb3JkQm91bmRhcmllc1tpbmRleF0udmlzaWJsZVBvc2l0aW9uOwogICAg
IAogICAgIHJldHVybiByaWdodFdvcmRCb3VuZGFyeShyaWdodElubGluZUJveChib3gsIGJsb2Nr
RGlyZWN0aW9uKSwgaW52YWxpZE9mZnNldCwgYmxvY2tEaXJlY3Rpb24pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>