<?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>86118</bug_id>
          
          <creation_ts>2012-05-10 11:19:10 -0700</creation_ts>
          <short_desc>[gtk] Spell checker doesn&apos;t recognize contractions (apostrophes)</short_desc>
          <delta_ts>2012-06-27 13:22:56 -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>WebKitGTK</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>86936</dependson>
    
    <dependson>88016</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Eric Gregory">eric</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>adam</cc>
    
    <cc>darin</cc>
    
    <cc>jim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620747</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Gregory">eric</who>
    <bug_when>2012-05-10 11:19:10 -0700</bug_when>
    <thetext>Our application uses an editable WebKitGTK instance with the spell checking feature enabled.  Unfortunately, the spell checker doesn&apos;t recognize contractions properly.

For example, if you type &quot;I&apos;ve&quot; you will get the &quot;ve&quot; marked as misspelled.

This bug doesn&apos;t seem to appear in Safari or Apple Mail, so I&apos;d assume this is related specifically to WebKitGTK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622218</commentid>
    <comment_count>1</comment_count>
      <attachid>141548</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-11 20:22:10 -0700</bug_when>
    <thetext>Created attachment 141548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628076</commentid>
    <comment_count>2</comment_count>
      <attachid>141548</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-18 14:30:08 -0700</bug_when>
    <thetext>Comment on attachment 141548
Patch

Clearing flags on attachment: 141548

Committed r117628: &lt;http://trac.webkit.org/changeset/117628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628077</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-18 14:30:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628347</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-18 21:18:23 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 86936</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628352</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-05-18 21:21:30 -0700</bug_when>
    <thetext>Sorry I had to roll this one out, it caused timeouts in the editing test suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628373</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-18 23:32:41 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Sorry I had to roll this one out, it caused timeouts in the editing test suite.

Thanks for rolling this out. I&apos;ll post a revised patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629860</commentid>
    <comment_count>7</comment_count>
      <attachid>143171</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-21 19:27:21 -0700</bug_when>
    <thetext>Created attachment 143171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629864</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-05-21 19:30:58 -0700</bug_when>
    <thetext>I&apos;ve uploaded a new version of the patch that (I hope) fixes the failures. It seems that the documentation for g_utf8_find_next_char wasn&apos;t clear about what return values indicate terminating situations. It&apos;s necessary to check both word == 0 and *word == 0.

I have also improved the code in SpellCheckerEnchant to deal with more than one word at a time. I realized that WebKit will sometimes send more than one word after further testing.

This passes tests locally for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638503</commentid>
    <comment_count>9</comment_count>
      <attachid>143171</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 09:36:46 -0700</bug_when>
    <thetext>Comment on attachment 143171
Patch

Clearing flags on attachment: 143171

Committed r119113: &lt;http://trac.webkit.org/changeset/119113&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638504</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 09:36:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638748</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 15:09:55 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 88016</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658662</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-27 09:31:14 -0700</bug_when>
    <thetext>I believe that I was wrong to attempt to try to move away from Pango for word splitting here. Word splitting depends a great deal on language and Pango encapsulates all those smarts. It turns out that this bug is actually https://bugzilla.gnome.org/show_bug.cgi?id=97545.

It seems reasonable that we can just duplicate the work-around that gtkspell uses, which is to special case apostrophes followed by alphabetic characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658688</commentid>
    <comment_count>13</comment_count>
      <attachid>149770</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-27 10:06:02 -0700</bug_when>
    <thetext>Created attachment 149770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658773</commentid>
    <comment_count>14</comment_count>
      <attachid>149770</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-06-27 12:20:07 -0700</bug_when>
    <thetext>Comment on attachment 149770
Patch

Third time is the charm?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658826</commentid>
    <comment_count>15</comment_count>
      <attachid>149770</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 13:22:49 -0700</bug_when>
    <thetext>Comment on attachment 149770
Patch

Clearing flags on attachment: 149770

Committed r121360: &lt;http://trac.webkit.org/changeset/121360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658827</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 13:22:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141548</attachid>
            <date>2012-05-11 20:22:10 -0700</date>
            <delta_ts>2012-05-21 19:27:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86118-20120511202210.patch</filename>
            <type>text/plain</type>
            <size>8179</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZGYxYWYyYmFk
ZTIwNTM4MWRjZDM4ZWYzOTM4MTg1ZTY2MGE5Y2FiMy4uYWNlNmZhZmZlNjAzOTA2NzZjODQ4NjIx
YzI3MTQ0Nzg4OTRjN2IyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEy
LTA1LTExICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAg
ICBTcGVsbCBjaGVja2VyIGRvZXNuJ3QgcmVjb2duaXplIGNvbnRyYWN0aW9ucyAoYXBvc3Ryb3Bo
ZXMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjEx
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBF
bmNoYW50IHNwZWxsIGNoZWNrZXIgd2FzIGJyZWFraW5nIHdvcmRzIG9uIGFwb3N0cm9waGVzLCBi
ZWNhdXNlCisgICAgICAgIGFwcGFyZW50bHkgdGhleSB3ZXJlIGFsd2F5cyBiZWluZyBkZXRlY3Rl
ZCBhcyBQYW5nbyB3b3JkLWVuZAorICAgICAgICBjaGFyYWN0ZXJzLiBJbiByZWFsaXR5LCB0byBr
bm93IHdoZXRoZXIgb3Igbm90IHRoZSBhcG9zdHJvcGhlIGlzIGEKKyAgICAgICAgd29yZCBlbmQg
Y2hhcmFjdGVyIHJlcXVpcmVzIGxvb2tpbmcgYXQgYSBzdHJpbmcgd2l0aCBhIGxhcmdlcgorICAg
ICAgICBncmFudWxhcml0eSB0aGFuIG9uZSBjaGFyYWN0ZXIuIEluIHJlYWxpdHksIFdlYkNvcmUg
aGFzIGFscmVhZHkKKyAgICAgICAgZW5zdXJlZCB0aGF0IGFueSBhcG9zdHJvcGhlcyBpbiB0aGUg
c3RyaW5nIGJlbG9uZyB0byBjb250cmFjdGlvbnMgYnkKKyAgICAgICAgdXNpbmcgdGhlIFdvcmRC
cmVha0l0ZXJhdG9yLgorCisgICAgICAgIFNpbXBsaWZ5IHRoZSB3YXkgdGhlIHdlIGJyZWFrIHN0
cmluZ3MsIGJ5IGp1c3QgbWFudWFsbHkgdHJpbW1pbmcgb2ZmCisgICAgICAgIGFsbCBub24tZ3Jh
cGhhYmxlIGNoYXJhY3RlcnMgZnJvbSB0aGUgc3RyaW5nIGFuZCB0aGVuIGZpbmRpbmcgdGhlIGVu
ZAorICAgICAgICBvZiB0aGUgZmlyc3Qgd29yZCBieSBsb29raW5nIGZvciB0aGUgbmV4dCBub24t
Z3JhcGhhYmxlIGNoYXJhY3Rlci4KKyAgICAgICAgVGhpcyBoYXMgdGhlIHNpZGUgZWZmZWN0IG9m
IHJlbW92aW5nIHRoZSBkZXBlbmRlbmN5IG9uIFBhbmdvIGFuZAorICAgICAgICBlbGltaW5hdGlu
ZyBvbmUgY29weS4KKworICAgICAgICBUaGlzIGNoYW5nZSBhbHNvIGNsZWFucyB1cCBzb21lIG1p
c2JlaGF2aW9yIG9uIHRoZSBwYXJ0IG9mIHRoZQorICAgICAgICBXZWJDb3JlU3VwcG9ydCBsYXll
ciB3aGljaCB3YXMgbm90IGNvbnZlcnRpbmcgZnJvbSBVbmljb2RlIGNoYXJhY3RlcgorICAgICAg
ICBvZmZzZXRzIHRvIFVURi0xNi4gVGhlc2Ugb2Zmc2V0cyBjYW4gYmUgZGlmZmVyZW50IGlmIGFu
eSBvZiB0aGUKKyAgICAgICAgY2hhcmFjdGVycyBpbiB0aGUgVVRGLTE2IHN0cmluZyBhcmUgc3Vy
cm9nYXRlIHBhaXJzIChub24gQk1QCisgICAgICAgIGNoYXJhY3RlcnMpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0
OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKTogUHJvcGVybHkK
KyAgICAgICAgY29udmVydCBmcm9tIFVuaWNvZGUgb2Zmc2V0cyB0byBVVEYtMTYgb2Zmc2V0cy4K
KyAgICAgICAgKiB3ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHA6CisgICAgICAg
IChmaW5kQnl0ZU9mZnNldFRvRmlyc3ROb25HcmFwaGFibGVDaGFyYWN0ZXIpOiBBZGRlZCB0aGlz
IGhlbHBlci4KKyAgICAgICAgKGNoZWNrU3BlbGxpbmdPZlN0cmluZyk6IERvbid0IHNwbGl0IHdv
cmRzIG9uIGFwb3N0cm9waGVzLgorCiAyMDEyLTA1LTEwICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBPT00gcnVubmluZyB3ZWJnbC9zZGsvdGVzdHMv
Y29uZm9ybWFuY2UvY29udGV4dC9jb250ZXh0LWNyZWF0aW9uLWFuZC1kZXN0cnVjdGlvbi5odG1s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tl
ckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hl
Y2tlckNsaWVudEd0ay5jcHAKaW5kZXggNzFjNGRjYmIxYzlhNGY1NzBiNDhjZGE5ZmY5ZTEwMjQ4
MjI3NjE3MC4uN2RlMGI0OTdhY2EwYjlhYTEyMTZlNmM4NGU5MzU3MGQwOWJjMTYyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2Vy
Q2xpZW50R3RrLmNwcApAQCAtNTgsNiArNTgsMjcgQEAgdm9pZCBUZXh0Q2hlY2tlckNsaWVudEd0
azo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLAog
ewogICAgIEdPd25QdHI8Z2NoYXI+IHV0ZjhUZXh0KGdfdXRmMTZfdG9fdXRmOChjb25zdF9jYXN0
PGd1bmljaGFyMio+KHRleHQpLCBsZW5ndGgsIDAsIDAsIDApKTsKICAgICB3ZWJraXRfc3BlbGxf
Y2hlY2tlcl9jaGVja19zcGVsbGluZ19vZl9zdHJpbmcobV9zcGVsbENoZWNrZXIuZ2V0KCksIHV0
ZjhUZXh0LmdldCgpLCBtaXNzcGVsbGluZ0xvY2F0aW9uLCBtaXNzcGVsbGluZ0xlbmd0aCk7CisK
KyAgICAvLyBXZSBoYXZlIHRoZSBvZmZzZXQgYW5kIGxlbmd0aCBpbiBVbmljb2RlIGNoYXJhY3Rl
cnMsIGJ1dCB3ZSBuZWVkIHRvIGNvbnZlcnQgdGhlbSB0byBVVEYtMTYgb2Zmc2V0cy4KKyAgICAv
LyBVbmZvcnR1bmF0ZWx5IHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHNpbXBsZSB3YXkgdG8g
ZG8gdGhpcy4KKyAgICBpZiAoISptaXNzcGVsbGluZ0xlbmd0aCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYm9vbCBwYXN0U3RhcnRPZldvcmQgPSBmYWxzZTsKKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChpID49ICptaXNzcGVsbGluZ0xvY2F0aW9u
ICsgKm1pc3NwZWxsaW5nTGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAo
IXBhc3RTdGFydE9mV29yZCAmJiBpID4gKm1pc3NwZWxsaW5nTG9jYXRpb24pCisgICAgICAgICAg
ICBwYXN0U3RhcnRPZldvcmQgPSB0cnVlOworCisgICAgICAgIC8vIElmIHRoaXMgY2hhcmFjdGVy
IGlzIHBhcnQgb2YgYSBzdXJyb2dhdGUgcGFpciwgd2UgbmVlZCB0byBza2lwIHRoZSBuZXh0IGNo
YXJhY3RlciAodGhlIHRyYWlsKQorICAgICAgICAvLyBhbmQgdG8gaW5jcmVhc2Ugb3VyIG9mZnNl
dHMuCisgICAgICAgIGlmICghVTE2X0lTX1NJTkdMRSh0ZXh0W2ldKSkgeworICAgICAgICAgICAg
aSsrOworICAgICAgICAgICAgKCptaXNzcGVsbGluZ0xlbmd0aCkrKzsKKyAgICAgICAgICAgICpt
aXNzcGVsbGluZ0xvY2F0aW9uICs9IHBhc3RTdGFydE9mV29yZCA/IDAgOiAxOworICAgICAgICB9
CisgICAgfQogfQogCiBTdHJpbmcgVGV4dENoZWNrZXJDbGllbnRHdGs6OmdldEF1dG9Db3JyZWN0
U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYgaW5wdXRXb3JkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hh
bnQuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hh
bnQuY3BwCmluZGV4IGY1MWExMmYyMzk2ZWNhMDJhZTU1YjQxYzdmYzM2MGQ0NWUxMTBhOWQuLmQx
ZjMxYTUzYjk4MjA5OWE0M2FkZjE2M2YyNWZkYmY1ZWE5MTlhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAKQEAg
LTg4LDYgKzg4LDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRf
aW5pdChXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50KiBjaGVja2VyCiAgICAgcHJpdi0+ZW5jaGFu
dERpY3RzID0gMDsKIH0KIAorc3RhdGljIHNpemVfdCBmaW5kQnl0ZU9mZnNldFRvRmlyc3ROb25H
cmFwaGFibGVDaGFyYWN0ZXIoY29uc3QgY2hhciogdXRmOFN0cmluZykKK3sKKyAgICBjb25zdCBj
aGFyKiBmaXJzdE5vbkdyYXBoYWJsZUNoYXJhY3RlciA9IHV0ZjhTdHJpbmc7CisgICAgd2hpbGUg
KGZpcnN0Tm9uR3JhcGhhYmxlQ2hhcmFjdGVyICYmIGdfdW5pY2hhcl9pc2dyYXBoKGdfdXRmOF9n
ZXRfY2hhcihmaXJzdE5vbkdyYXBoYWJsZUNoYXJhY3RlcikpKQorICAgICAgICBmaXJzdE5vbkdy
YXBoYWJsZUNoYXJhY3RlciA9IGdfdXRmOF9maW5kX25leHRfY2hhcihmaXJzdE5vbkdyYXBoYWJs
ZUNoYXJhY3RlciwgMCk7CisgICAgcmV0dXJuIGZpcnN0Tm9uR3JhcGhhYmxlQ2hhcmFjdGVyIC0g
dXRmOFN0cmluZzsKK30KKwogc3RhdGljIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKFdlYktp
dFNwZWxsQ2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogc3RyaW5nLCBpbnQqIG1pc3NwZWxs
aW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpCiB7CiAgICAgV2ViS2l0U3BlbGxD
aGVja2VyRW5jaGFudFByaXZhdGUqIHByaXYgPSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9FTkNIQU5U
KGNoZWNrZXIpLT5wcml2OwpAQCAtOTYsNTAgKzEwNCwzMyBAQCBzdGF0aWMgdm9pZCBjaGVja1Nw
ZWxsaW5nT2ZTdHJpbmcoV2ViS2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiBz
dHJpbgogICAgIGlmICghZGljdHMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludCBsZW5ndGgg
PSBnX3V0Zjhfc3RybGVuKHN0cmluZywgLTEpOwotCi0gICAgUGFuZ29MYW5ndWFnZSogbGFuZ3Vh
Z2UocGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1bHQoKSk7Ci0gICAgR093blB0cjxQYW5nb0xvZ0F0
dHI+IGF0dHJzKGdfbmV3KFBhbmdvTG9nQXR0ciwgbGVuZ3RoICsgMSkpOwotCi0gICAgLy8gcGFu
Z29fZ2V0X2xvZ19hdHRycyB1c2VzIGFuIGFkaXRpb25hbCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9m
IHRoZSB0ZXh0LgotICAgIHBhbmdvX2dldF9sb2dfYXR0cnMoc3RyaW5nLCAtMSwgLTEsIGxhbmd1
YWdlLCBhdHRycy5nZXQoKSwgbGVuZ3RoICsgMSk7Ci0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8
IGxlbmd0aCArIDE7IGkrKykgewotICAgICAgICAvLyBXZSBnbyB0aHJvdWdoIGVhY2ggY2hhcmFj
dGVyIHVudGlsIHdlIGZpbmQgYW4gaXNfd29yZF9zdGFydCwKLSAgICAgICAgLy8gdGhlbiB3ZSBn
ZXQgaW50byBhbiBpbm5lciBsb29wIHRvIGZpbmQgdGhlIGlzX3dvcmRfZW5kIGNvcnJlc3BvbmRp
bmcKLSAgICAgICAgLy8gdG8gaXQuCi0gICAgICAgIGlmIChhdHRycy5nZXQoKVtpXS5pc193b3Jk
X3N0YXJ0KSB7Ci0gICAgICAgICAgICBpbnQgc3RhcnQgPSBpOwotICAgICAgICAgICAgaW50IGVu
ZCA9IGk7Ci0gICAgICAgICAgICBpbnQgd29yZExlbmd0aDsKLQotICAgICAgICAgICAgd2hpbGUg
KGF0dHJzLmdldCgpW2VuZF0uaXNfd29yZF9lbmQgPCAxKQotICAgICAgICAgICAgICAgIGVuZCsr
OwotCi0gICAgICAgICAgICB3b3JkTGVuZ3RoID0gZW5kIC0gc3RhcnQ7Ci0gICAgICAgICAgICAv
LyBTZXQgdGhlIGl0ZXJhdG9yIHRvIGJlIGF0IHRoZSBjdXJyZW50IHdvcmQgZW5kLCBzbyB3ZSBk
b24ndAotICAgICAgICAgICAgLy8gY2hlY2sgY2hhcmFjdGVycyB0d2ljZS4KLSAgICAgICAgICAg
IGkgPSBlbmQ7Ci0KLSAgICAgICAgICAgIGdjaGFyKiBjc3RhcnQgPSBnX3V0Zjhfb2Zmc2V0X3Rv
X3BvaW50ZXIoc3RyaW5nLCBzdGFydCk7Ci0gICAgICAgICAgICBnaW50IGJ5dGVzID0gc3RhdGlj
X2Nhc3Q8Z2ludD4oZ191dGY4X29mZnNldF90b19wb2ludGVyKHN0cmluZywgZW5kKSAtIGNzdGFy
dCk7Ci0gICAgICAgICAgICBHT3duUHRyPGdjaGFyPiB3b3JkKGdfbmV3MChnY2hhciwgYnl0ZXMg
KyAxKSk7Ci0KLSAgICAgICAgICAgIGdfdXRmOF9zdHJuY3B5KHdvcmQuZ2V0KCksIGNzdGFydCwg
d29yZExlbmd0aCk7Ci0KLSAgICAgICAgICAgIGZvciAoOyBkaWN0czsgZGljdHMgPSBkaWN0cy0+
bmV4dCkgewotICAgICAgICAgICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gc3RhdGljX2Nhc3Q8
RW5jaGFudERpY3QqPihkaWN0cy0+ZGF0YSk7Ci0gICAgICAgICAgICAgICAgaWYgKGVuY2hhbnRf
ZGljdF9jaGVjayhkaWN0LCB3b3JkLmdldCgpLCB3b3JkTGVuZ3RoKSkgewotICAgICAgICAgICAg
ICAgICAgICAqbWlzc3BlbGxpbmdMb2NhdGlvbiA9IHN0YXJ0OwotICAgICAgICAgICAgICAgICAg
ICAqbWlzc3BlbGxpbmdMZW5ndGggPSB3b3JkTGVuZ3RoOwotICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIFN0b3AgY2hlY2tpbmcsIHRoaXMgd29yZCBpcyBv
ayBpbiBhdCBsZWFzdCBvbmUgZGljdC4KLSAgICAgICAgICAgICAgICAgICAgKm1pc3NwZWxsaW5n
TG9jYXRpb24gPSAtMTsKLSAgICAgICAgICAgICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0g
MDsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQorICAgIC8vIEF0IHRoZSB0aW1lIHRoaXMgY29kZSB3YXMgd3JpdHRlbiwgV2ViQ29y
ZSBvbmx5IHNlbmRzIHVzIG9uZSB3b3JkIGF0IGEKKyAgICAvLyB0aW1lIGR1cmluZyBzcGVsbGNo
ZWNraW5nLCB3aXRoIGEgY2hhbmNlIG9mIGhhdmluZyBzb21lIHNtYWxsIGFtb3VudCBvZgorICAg
IC8vIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuIEZvciB0aGlzIHJlYXNvbiB3ZSBj
YW4gbWVyZWx5IGNob3Agb2ZmCisgICAgLy8gdGhlIHdoaXRlc3BhY2UgYW5kIHNlbmQgdGhlIHdv
cmQgZGlyZWN0bHkgdG8gRW5jaGFudC4KKyAgICBjb25zdCBjaGFyKiBmaXJzdFdvcmQgPSBzdHJp
bmc7CisgICAgd2hpbGUgKGZpcnN0V29yZCAmJiAhZ191bmljaGFyX2lzZ3JhcGgoZ191dGY4X2dl
dF9jaGFyKGZpcnN0V29yZCkpKQorICAgICAgICBmaXJzdFdvcmQgPSBnX3V0ZjhfZmluZF9uZXh0
X2NoYXIoZmlyc3RXb3JkLCBOVUxMKTsKKworICAgIC8vIEVpdGhlciB0aGUgc3RyaW5nIG9ubHkg
aGFkIHdoaXRlc3BhY2UgY2hhcmFjdGVycyBvciBubyBjaGFyYWN0ZXJzIGF0IGFsbC4KKyAgICBp
ZiAoIWZpcnN0V29yZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2l6ZV90IGJ5dGVPZmZzZXRU
b0VuZE9mRmlyc3RXb3JkID0gZmluZEJ5dGVPZmZzZXRUb0ZpcnN0Tm9uR3JhcGhhYmxlQ2hhcmFj
dGVyKGZpcnN0V29yZCk7CisgICAgZm9yICg7IGRpY3RzOyBkaWN0cyA9IGRpY3RzLT5uZXh0KSB7
CisgICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gc3RhdGljX2Nhc3Q8RW5jaGFudERpY3QqPihk
aWN0cy0+ZGF0YSk7CisgICAgICAgIGludCByZXN1bHQgPSBlbmNoYW50X2RpY3RfY2hlY2soZGlj
dCwgZmlyc3RXb3JkLCBieXRlT2Zmc2V0VG9FbmRPZkZpcnN0V29yZCk7CisKKyAgICAgICAgaWYg
KHJlc3VsdCA8IDApIC8vIEVycm9yIGR1cmluZyBjaGVja2luZy4KKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBpZiAoIXJlc3VsdCkgeyAvLyBTdG9wIGNoZWNraW5nLCBhcyB0aGlzIHdv
cmQgaXMgY29ycmVjdCBmb3IgYXQgbGVhc3Qgb25lIGRpY3Rpb25hcnkuCisgICAgICAgICAgICAq
bWlzc3BlbGxpbmdMb2NhdGlvbiA9IC0xOworICAgICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3Ro
ID0gMDsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgICptaXNzcGVs
bGluZ0xvY2F0aW9uID0gZ191dGY4X3BvaW50ZXJfdG9fb2Zmc2V0KHN0cmluZywgZmlyc3RXb3Jk
KTsKKyAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gZ191dGY4X3BvaW50ZXJfdG9fb2Zmc2V0
KHN0cmluZywgZmlyc3RXb3JkICsgYnl0ZU9mZnNldFRvRW5kT2ZGaXJzdFdvcmQpIC0gKm1pc3Nw
ZWxsaW5nTG9jYXRpb247CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143171</attachid>
            <date>2012-05-21 19:27:21 -0700</date>
            <delta_ts>2012-06-27 10:05:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86118-20120521192720.patch</filename>
            <type>text/plain</type>
            <size>8515</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggY2U3YWRlMzM0
NDFkN2UxMjI4Y2YyMDRkOTA0NmE1M2U1M2M3MTU0MC4uOTU1MWUyNTEyYzU1N2I2MjA4OGQyZTEw
NDk4MzhlMGI2NDQwZWU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEy
LTA1LTIxICBjb21taXQtcXVldWVAd2Via2l0Lm9yZyAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
QDI2OGY0NWNjLWNkMDktMDQxMC1hYjNjLWQ1MjY5MWI0ZGJmYz4KKworICAgICAgICBTcGVsbCBj
aGVja2VyIGRvZXNuJ3QgcmVjb2duaXplIGNvbnRyYWN0aW9ucyAoYXBvc3Ryb3BoZXMpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjExOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBFbmNoYW50IHNw
ZWxsIGNoZWNrZXIgd2FzIGJyZWFraW5nIHdvcmRzIG9uIGFwb3N0cm9waGVzLCBiZWNhdXNlCisg
ICAgICAgIGFwcGFyZW50bHkgdGhleSB3ZXJlIGFsd2F5cyBiZWluZyBkZXRlY3RlZCBhcyBQYW5n
byB3b3JkLWVuZAorICAgICAgICBjaGFyYWN0ZXJzLiBUbyBrbm93IHdoZXRoZXIgb3Igbm90IHRo
ZSBhcG9zdHJvcGhlIGlzIGEKKyAgICAgICAgd29yZCBlbmQgY2hhcmFjdGVyIHJlcXVpcmVzIGxv
b2tpbmcgYXQgYSBzdHJpbmcgd2l0aCBhIGxhcmdlcgorICAgICAgICBncmFudWxhcml0eSB0aGFu
IG9uZSBjaGFyYWN0ZXIuCisKKyAgICAgICAgU2ltcGxpZnkgdGhlIHdheSB0aGUgd2UgYnJlYWsg
c3RyaW5ncywgYnkgc2VhcmNoIGZvciBub24tZ3JhcGhhYmxlCisgICAgICAgIGNoYXJhY3RlciBt
YW51YWxseSB0byBmaW5kIHdvcmQgc3RhcnRzIGFuZCBlbmRzLiBUaGlzIGhhcyB0aGUgc2lkZQor
ICAgICAgICBlZmZlY3Qgb2YgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgb24gUGFuZ28gYW5kIGVs
aW1pbmF0aW5nIG9uZSBjb3B5LgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFsc28gY2xlYW5zIHVw
IHNvbWUgbWlzYmVoYXZpb3Igb24gdGhlIHBhcnQgb2YgdGhlCisgICAgICAgIFdlYkNvcmVTdXBw
b3J0IGxheWVyIHdoaWNoIHdhcyBub3QgY29udmVydGluZyBmcm9tIFVuaWNvZGUgY2hhcmFjdGVy
CisgICAgICAgIG9mZnNldHMgdG8gVVRGLTE2LiBUaGVzZSBvZmZzZXRzIGNhbiBiZSBkaWZmZXJl
bnQgaWYgYW55IG9mIHRoZQorICAgICAgICBjaGFyYWN0ZXJzIGluIHRoZSBVVEYtMTYgc3RyaW5n
IGFyZSBzdXJyb2dhdGUgcGFpcnMgKG5vbiBCTVAKKyAgICAgICAgY2hhcmFjdGVycykuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcpOiBQ
cm9wZXJseQorICAgICAgICBjb252ZXJ0IGZyb20gVW5pY29kZSBvZmZzZXRzIHRvIFVURi0xNiBv
ZmZzZXRzLgorICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcDoK
KyAgICAgICAgKGZpbmRCeXRlT2Zmc2V0VG9GaXJzdE5vbkdyYXBoYWJsZUNoYXJhY3Rlcik6IEFk
ZGVkIHRoaXMgaGVscGVyLgorICAgICAgICAoZ2V0RXh0ZW50c09mTmV4dFdvcmQpOiBEaXR0by4K
KyAgICAgICAgKHdvcmRJc1NwZWxsZWRDb3JyZWN0bHlJbkF0TGVhc3RPbmVEaWN0aW9uYXJ5KTog
RGl0dG8uCisgICAgICAgIChjaGVja1NwZWxsaW5nT2ZTdHJpbmcpOiBEb24ndCBzcGxpdCB3b3Jk
cyBvbiBhcG9zdHJvcGhlcy4KKwogMjAxMi0wNS0xOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEx
NzYyOC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRD
aGVja2VyQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Rl
eHRDaGVja2VyQ2xpZW50R3RrLmNwcAppbmRleCBlMTI4YWQyNjBjMDUxOGI2YTUzN2IwODM3OGQ1
NTBlODJhYTQ2NDQwLi5kMWEwNTZiZmRlMDI5NDFlZDM4YmMzN2RmYTc4YmZkMmY5MTQ0NzkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNs
aWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENo
ZWNrZXJDbGllbnRHdGsuY3BwCkBAIC02Myw2ICs2MywyNyBAQCB2b2lkIFRleHRDaGVja2VyQ2xp
ZW50R3RrOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5n
dGgsCiB7CiAgICAgR093blB0cjxnY2hhcj4gdXRmOFRleHQoZ191dGYxNl90b191dGY4KGNvbnN0
X2Nhc3Q8Z3VuaWNoYXIyKj4odGV4dCksIGxlbmd0aCwgMCwgMCwgMCkpOwogICAgIHdlYmtpdF9z
cGVsbF9jaGVja2VyX2NoZWNrX3NwZWxsaW5nX29mX3N0cmluZyhtX3NwZWxsQ2hlY2tlci5nZXQo
KSwgdXRmOFRleHQuZ2V0KCksIG1pc3NwZWxsaW5nTG9jYXRpb24sIG1pc3NwZWxsaW5nTGVuZ3Ro
KTsKKworICAgIC8vIFdlIGhhdmUgdGhlIG9mZnNldCBhbmQgbGVuZ3RoIGluIFVuaWNvZGUgY2hh
cmFjdGVycywgYnV0IHdlIG5lZWQgdG8gY29udmVydCB0aGVtIHRvIFVURi0xNiBvZmZzZXRzLgor
ICAgIC8vIFVuZm9ydHVuYXRlbHkgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgc2ltcGxlIHdh
eSB0byBkbyB0aGlzLgorICAgIGlmICghKm1pc3NwZWxsaW5nTGVuZ3RoKQorICAgICAgICByZXR1
cm47CisKKyAgICBib29sIHBhc3RTdGFydE9mV29yZCA9IGZhbHNlOworICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGkgPj0gKm1pc3NwZWxsaW5nTG9j
YXRpb24gKyAqbWlzc3BlbGxpbmdMZW5ndGgpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGlmICghcGFzdFN0YXJ0T2ZXb3JkICYmIGkgPiAqbWlzc3BlbGxpbmdMb2NhdGlvbikKKyAgICAg
ICAgICAgIHBhc3RTdGFydE9mV29yZCA9IHRydWU7CisKKyAgICAgICAgLy8gSWYgdGhpcyBjaGFy
YWN0ZXIgaXMgcGFydCBvZiBhIHN1cnJvZ2F0ZSBwYWlyLCB3ZSBuZWVkIHRvIHNraXAgdGhlIG5l
eHQgY2hhcmFjdGVyICh0aGUgdHJhaWwpCisgICAgICAgIC8vIGFuZCB0byBpbmNyZWFzZSBvdXIg
b2Zmc2V0cy4KKyAgICAgICAgaWYgKCFVMTZfSVNfU0lOR0xFKHRleHRbaV0pKSB7CisgICAgICAg
ICAgICBpKys7CisgICAgICAgICAgICAoKm1pc3NwZWxsaW5nTGVuZ3RoKSsrOworICAgICAgICAg
ICAgKm1pc3NwZWxsaW5nTG9jYXRpb24gKz0gcGFzdFN0YXJ0T2ZXb3JkID8gMCA6IDE7CisgICAg
ICAgIH0KKyAgICB9CiB9CiAKIFN0cmluZyBUZXh0Q2hlY2tlckNsaWVudEd0azo6Z2V0QXV0b0Nv
cnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgU3RyaW5nJiBpbnB1dFdvcmQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2Vy
ZW5jaGFudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2Vy
ZW5jaGFudC5jcHAKaW5kZXggZjUxYTEyZjIzOTZlY2EwMmFlNTViNDFjN2ZjMzYwZDQ1ZTExMGE5
ZC4uOWRkNjUzNTBhNDgzZDcyYjE3NWI4ZGIxYmQxMmMxMGE4MmJhZTZlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNw
cApAQCAtODgsNTggKzg4LDcwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2Vu
Y2hhbnRfaW5pdChXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50KiBjaGVja2VyCiAgICAgcHJpdi0+
ZW5jaGFudERpY3RzID0gMDsKIH0KIAorc3RhdGljIHNpemVfdCBmaW5kQnl0ZU9mZnNldFRvRmly
c3ROb25HcmFwaGFibGVDaGFyYWN0ZXIoY29uc3QgY2hhciogdXRmOFN0cmluZykKK3sKKyAgICBj
b25zdCBjaGFyKiBmaXJzdE5vbkdyYXBoYWJsZUNoYXJhY3RlciA9IHV0ZjhTdHJpbmc7CisgICAg
d2hpbGUgKGZpcnN0Tm9uR3JhcGhhYmxlQ2hhcmFjdGVyICYmICpmaXJzdE5vbkdyYXBoYWJsZUNo
YXJhY3RlciAmJiBnX3VuaWNoYXJfaXNncmFwaChnX3V0ZjhfZ2V0X2NoYXIoZmlyc3ROb25HcmFw
aGFibGVDaGFyYWN0ZXIpKSkKKyAgICAgICAgZmlyc3ROb25HcmFwaGFibGVDaGFyYWN0ZXIgPSBn
X3V0ZjhfZmluZF9uZXh0X2NoYXIoZmlyc3ROb25HcmFwaGFibGVDaGFyYWN0ZXIsIDApOworCisg
ICAgaWYgKCFmaXJzdE5vbkdyYXBoYWJsZUNoYXJhY3RlcikgLy8gSWYgdGhlcmUgd2FzIGFuIGVy
cm9yLCB0aGUgb2Zmc2V0IHdpbGwgYmUgemVyby4KKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBy
ZXR1cm4gZmlyc3ROb25HcmFwaGFibGVDaGFyYWN0ZXIgLSB1dGY4U3RyaW5nOworfQorCitzdGF0
aWMgdm9pZCBnZXRFeHRlbnRzT2ZOZXh0V29yZChjb25zdCBjaGFyKiB1dGY4U3RyaW5nLCBjb25z
dCBjaGFyKiYgd29yZFN0YXJ0LCBzaXplX3QmIGxlbmd0aCkKK3sKKyAgICB3b3JkU3RhcnQgPSB1
dGY4U3RyaW5nOworICAgIHdoaWxlICh3b3JkU3RhcnQgJiYgKndvcmRTdGFydCAmJiAhZ191bmlj
aGFyX2lzZ3JhcGgoZ191dGY4X2dldF9jaGFyKHdvcmRTdGFydCkpKQorICAgICAgICB3b3JkU3Rh
cnQgPSBnX3V0ZjhfZmluZF9uZXh0X2NoYXIod29yZFN0YXJ0LCBOVUxMKTsKKworICAgIGlmICgh
d29yZFN0YXJ0IHx8ICEqd29yZFN0YXJ0KSB7CisgICAgICAgIGxlbmd0aCA9IDA7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBsZW5ndGggPSBmaW5kQnl0ZU9mZnNldFRvRmlyc3ROb25H
cmFwaGFibGVDaGFyYWN0ZXIod29yZFN0YXJ0KTsKKyAgICByZXR1cm47Cit9CisKK3N0YXRpYyBi
b29sIHdvcmRJc1NwZWxsZWRDb3JyZWN0bHlJbkF0TGVhc3RPbmVEaWN0aW9uYXJ5KEdTTGlzdCog
ZGljdGlvbmFyaWVzLCBjb25zdCBjaGFyKiB3b3JkLCBzaXplX3QgbGVuZ3RoLCBpbnQqIG1pc3Nw
ZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpCit7CisgICAgZm9yICg7IGRp
Y3Rpb25hcmllczsgZGljdGlvbmFyaWVzID0gZGljdGlvbmFyaWVzLT5uZXh0KSB7CisgICAgICAg
IEVuY2hhbnREaWN0KiBkaWN0aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8RW5jaGFudERpY3QqPihkaWN0
aW9uYXJpZXMtPmRhdGEpOworICAgICAgICBpbnQgcmVzdWx0ID0gZW5jaGFudF9kaWN0X2NoZWNr
KGRpY3Rpb25hcnksIHdvcmQsIGxlbmd0aCk7CisKKyAgICAgICAgaWYgKHJlc3VsdCA8IDApIC8v
IEVycm9yIGR1cmluZyBjaGVja2luZy4KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBp
ZiAoIXJlc3VsdCkgLy8gU3RvcCBjaGVja2luZywgYXMgdGhpcyB3b3JkIGlzIGNvcnJlY3QgZm9y
IGF0IGxlYXN0IG9uZSBkaWN0aW9uYXJ5LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgdm9pZCBjaGVja1NwZWxsaW5nT2ZT
dHJpbmcoV2ViS2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiBzdHJpbmcsIGlu
dCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkKIHsKICAgICBX
ZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9TUEVMTF9DSEVD
S0VSX0VOQ0hBTlQoY2hlY2tlciktPnByaXY7CiAKLSAgICBHU0xpc3QqIGRpY3RzID0gcHJpdi0+
ZW5jaGFudERpY3RzOwotICAgIGlmICghZGljdHMpCisgICAgKm1pc3NwZWxsaW5nTG9jYXRpb24g
PSAtMTsKKyAgICAqbWlzc3BlbGxpbmdMZW5ndGggPSAwOworCisgICAgR1NMaXN0KiBkaWN0aW9u
YXJpZXMgPSBwcml2LT5lbmNoYW50RGljdHM7CisgICAgaWYgKCFkaWN0aW9uYXJpZXMpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGludCBsZW5ndGggPSBnX3V0Zjhfc3RybGVuKHN0cmluZywgLTEp
OwotCi0gICAgUGFuZ29MYW5ndWFnZSogbGFuZ3VhZ2UocGFuZ29fbGFuZ3VhZ2VfZ2V0X2RlZmF1
bHQoKSk7Ci0gICAgR093blB0cjxQYW5nb0xvZ0F0dHI+IGF0dHJzKGdfbmV3KFBhbmdvTG9nQXR0
ciwgbGVuZ3RoICsgMSkpOwotCi0gICAgLy8gcGFuZ29fZ2V0X2xvZ19hdHRycyB1c2VzIGFuIGFk
aXRpb25hbCBwb3NpdGlvbiBhdCB0aGUgZW5kIG9mIHRoZSB0ZXh0LgotICAgIHBhbmdvX2dldF9s
b2dfYXR0cnMoc3RyaW5nLCAtMSwgLTEsIGxhbmd1YWdlLCBhdHRycy5nZXQoKSwgbGVuZ3RoICsg
MSk7Ci0KLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aCArIDE7IGkrKykgewotICAgICAg
ICAvLyBXZSBnbyB0aHJvdWdoIGVhY2ggY2hhcmFjdGVyIHVudGlsIHdlIGZpbmQgYW4gaXNfd29y
ZF9zdGFydCwKLSAgICAgICAgLy8gdGhlbiB3ZSBnZXQgaW50byBhbiBpbm5lciBsb29wIHRvIGZp
bmQgdGhlIGlzX3dvcmRfZW5kIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgLy8gdG8gaXQuCi0gICAg
ICAgIGlmIChhdHRycy5nZXQoKVtpXS5pc193b3JkX3N0YXJ0KSB7Ci0gICAgICAgICAgICBpbnQg
c3RhcnQgPSBpOwotICAgICAgICAgICAgaW50IGVuZCA9IGk7Ci0gICAgICAgICAgICBpbnQgd29y
ZExlbmd0aDsKLQotICAgICAgICAgICAgd2hpbGUgKGF0dHJzLmdldCgpW2VuZF0uaXNfd29yZF9l
bmQgPCAxKQotICAgICAgICAgICAgICAgIGVuZCsrOwotCi0gICAgICAgICAgICB3b3JkTGVuZ3Ro
ID0gZW5kIC0gc3RhcnQ7Ci0gICAgICAgICAgICAvLyBTZXQgdGhlIGl0ZXJhdG9yIHRvIGJlIGF0
IHRoZSBjdXJyZW50IHdvcmQgZW5kLCBzbyB3ZSBkb24ndAotICAgICAgICAgICAgLy8gY2hlY2sg
Y2hhcmFjdGVycyB0d2ljZS4KLSAgICAgICAgICAgIGkgPSBlbmQ7Ci0KLSAgICAgICAgICAgIGdj
aGFyKiBjc3RhcnQgPSBnX3V0Zjhfb2Zmc2V0X3RvX3BvaW50ZXIoc3RyaW5nLCBzdGFydCk7Ci0g
ICAgICAgICAgICBnaW50IGJ5dGVzID0gc3RhdGljX2Nhc3Q8Z2ludD4oZ191dGY4X29mZnNldF90
b19wb2ludGVyKHN0cmluZywgZW5kKSAtIGNzdGFydCk7Ci0gICAgICAgICAgICBHT3duUHRyPGdj
aGFyPiB3b3JkKGdfbmV3MChnY2hhciwgYnl0ZXMgKyAxKSk7Ci0KLSAgICAgICAgICAgIGdfdXRm
OF9zdHJuY3B5KHdvcmQuZ2V0KCksIGNzdGFydCwgd29yZExlbmd0aCk7Ci0KLSAgICAgICAgICAg
IGZvciAoOyBkaWN0czsgZGljdHMgPSBkaWN0cy0+bmV4dCkgewotICAgICAgICAgICAgICAgIEVu
Y2hhbnREaWN0KiBkaWN0ID0gc3RhdGljX2Nhc3Q8RW5jaGFudERpY3QqPihkaWN0cy0+ZGF0YSk7
Ci0gICAgICAgICAgICAgICAgaWYgKGVuY2hhbnRfZGljdF9jaGVjayhkaWN0LCB3b3JkLmdldCgp
LCB3b3JkTGVuZ3RoKSkgewotICAgICAgICAgICAgICAgICAgICAqbWlzc3BlbGxpbmdMb2NhdGlv
biA9IHN0YXJ0OwotICAgICAgICAgICAgICAgICAgICAqbWlzc3BlbGxpbmdMZW5ndGggPSB3b3Jk
TGVuZ3RoOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIC8v
IFN0b3AgY2hlY2tpbmcsIHRoaXMgd29yZCBpcyBvayBpbiBhdCBsZWFzdCBvbmUgZGljdC4KLSAg
ICAgICAgICAgICAgICAgICAgKm1pc3NwZWxsaW5nTG9jYXRpb24gPSAtMTsKLSAgICAgICAgICAg
ICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQorICAgIGNvbnN0IGNoYXIqIHdv
cmRTdGFydCA9IHN0cmluZzsKKyAgICBzaXplX3Qgd29yZExlbmd0aDsKKyAgICBnZXRFeHRlbnRz
T2ZOZXh0V29yZCh3b3JkU3RhcnQsIHdvcmRTdGFydCwgd29yZExlbmd0aCk7CisgICAgd2hpbGUg
KHdvcmRMZW5ndGggPiAwKSB7CisgICAgICAgIGlmICghd29yZElzU3BlbGxlZENvcnJlY3RseUlu
QXRMZWFzdE9uZURpY3Rpb25hcnkoZGljdGlvbmFyaWVzLCB3b3JkU3RhcnQsIHdvcmRMZW5ndGgs
IG1pc3NwZWxsaW5nTG9jYXRpb24sIG1pc3NwZWxsaW5nTGVuZ3RoKSkgeworICAgICAgICAgICAg
Km1pc3NwZWxsaW5nTG9jYXRpb24gPSBnX3V0ZjhfcG9pbnRlcl90b19vZmZzZXQoc3RyaW5nLCB3
b3JkU3RhcnQpOworICAgICAgICAgICAgKm1pc3NwZWxsaW5nTGVuZ3RoID0gZ191dGY4X3BvaW50
ZXJfdG9fb2Zmc2V0KHN0cmluZywgd29yZFN0YXJ0ICsgd29yZExlbmd0aCkgLSAqbWlzc3BlbGxp
bmdMb2NhdGlvbjsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIGdl
dEV4dGVudHNPZk5leHRXb3JkKHdvcmRTdGFydCArIHdvcmRMZW5ndGgsIHdvcmRTdGFydCwgd29y
ZExlbmd0aCk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149770</attachid>
            <date>2012-06-27 10:06:02 -0700</date>
            <delta_ts>2012-06-27 13:22:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86118-20120627100602.patch</filename>
            <type>text/plain</type>
            <size>2741</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggZjI0NzhkNWEy
MzNkYTVjMDg4ZTA4OWJmZmIxZDgwOTc1YjRlOTgzYy4uZWFlNTBiMDhjYmRiY2NmMzQ5OTgwM2My
NThkMmE3YzdkMGE1MjhiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEy
LTA2LTI3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAg
ICBbZ3RrXSBTcGVsbCBjaGVja2VyIGRvZXNuJ3QgcmVjb2duaXplIGNvbnRyYWN0aW9ucyAoYXBv
c3Ryb3BoZXMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NjExOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdvcmstYXJvdW5kIGEgYnVnIGluIFBhbmdvIGJ5IHRyeWluZyB0byBkZXRlY3QgYXBvc3Ryb3Bo
ZXMKKyAgICAgICAgdGhhdCBjcmVhdGUgY29udHJhY3Rpb25zLiBUaGlzIHdvcmstYXJvdW5kIGlz
IHNpbWlsYXIgdG8gb25lCisgICAgICAgIGZvdW5kIGluIGd0a3NwZWxsLgorCisgICAgICAgICog
d2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwOgorICAgICAgICAod29yZEVuZElz
QUNvbnRyYWN0aW9uQXBvc3Ryb3BoZSk6IEFkZGVkIHRoaXMgaGVscGVyIHdoaWNoIHRyaWVzIHRv
IGRldGVjdAorICAgICAgICBzaXR1YXRpb25zIHdoZXJlIGEgd29yZCBlbmQgaXMgYm90aCBhbiBh
cG9zdHJvcGhlIGFuZCBmb2xsb3dlZCBieSBhIGFscGhhYmV0aWMKKyAgICAgICAgY2hhcmFjdGVy
LgorICAgICAgICAoY2hlY2tTcGVsbGluZ09mU3RyaW5nKTogV2hlbiBzZWFyY2hpbmcgZm9yIHRo
ZSBlbmQgb2YgYSB3b3JkLCBza2lwIG92ZXIKKyAgICAgICAgYXBvc3Ryb3BoZXMgdGhhdCBhcHBl
YXIgdG8gYmUgcGFydCBvZiBjb250cmFjdGlvbnMuCisKIDIwMTItMDYtMjUgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVw
ZGF0ZSBORVdTIGFuZCBjb25maWd1cmUuYWMgZm9yIDEuOS40IHJlbGVhc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcApp
bmRleCBmNTFhMTJmMjM5NmVjYTAyYWU1NWI0MWM3ZmMzNjBkNDVlMTEwYTlkLi4wZWI0OTg2ZDFk
OWJjMDk2ZDQzOWJhNWU5ZGExYmE2NGQ0OGE4MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwCkBAIC04OCw2ICs4
OCwxOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X2luaXQoV2Vi
S2l0U3BlbGxDaGVja2VyRW5jaGFudCogY2hlY2tlcgogICAgIHByaXYtPmVuY2hhbnREaWN0cyA9
IDA7CiB9CiAKK3N0YXRpYyBib29sIHdvcmRFbmRJc0FDb250cmFjdGlvbkFwb3N0cm9waGUoY29u
c3QgY2hhciogc3RyaW5nLCBsb25nIG9mZnNldCkKK3sKKyAgICBpZiAoZ191dGY4X2dldF9jaGFy
KGdfdXRmOF9vZmZzZXRfdG9fcG9pbnRlcihzdHJpbmcsIG9mZnNldCkpICE9IGdfdXRmOF9nZXRf
Y2hhcigiJyIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiB0aGlzIGlzIHRo
ZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nLCBpdCBjYW5ub3QgYmUgdGhlIGFwb3N0cm9w
aGUgcGFydCBvZiBhIGNvbnRyYWN0aW9uLgorICAgIGlmIChvZmZzZXQgPT0gZ191dGY4X3N0cmxl
bihzdHJpbmcsIC0xKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGdfdW5p
Y2hhcl9pc2FscGhhKGdfdXRmOF9nZXRfY2hhcihnX3V0Zjhfb2Zmc2V0X3RvX3BvaW50ZXIoc3Ry
aW5nLCBvZmZzZXQgKyAxKSkpOworfQorCiBzdGF0aWMgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJp
bmcoV2ViS2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiBzdHJpbmcsIGludCog
bWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkKIHsKICAgICBXZWJL
aXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9TUEVMTF9DSEVDS0VS
X0VOQ0hBTlQoY2hlY2tlciktPnByaXY7CkBAIC0xMTMsNyArMTI1LDcgQEAgc3RhdGljIHZvaWQg
Y2hlY2tTcGVsbGluZ09mU3RyaW5nKFdlYktpdFNwZWxsQ2hlY2tlciogY2hlY2tlciwgY29uc3Qg
Y2hhciogc3RyaW4KICAgICAgICAgICAgIGludCBlbmQgPSBpOwogICAgICAgICAgICAgaW50IHdv
cmRMZW5ndGg7CiAKLSAgICAgICAgICAgIHdoaWxlIChhdHRycy5nZXQoKVtlbmRdLmlzX3dvcmRf
ZW5kIDwgMSkKKyAgICAgICAgICAgIHdoaWxlIChhdHRycy5nZXQoKVtlbmRdLmlzX3dvcmRfZW5k
IDwgMSB8fCB3b3JkRW5kSXNBQ29udHJhY3Rpb25BcG9zdHJvcGhlKHN0cmluZywgZW5kKSkKICAg
ICAgICAgICAgICAgICBlbmQrKzsKIAogICAgICAgICAgICAgd29yZExlbmd0aCA9IGVuZCAtIHN0
YXJ0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>