<?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>135220</bug_id>
          
          <creation_ts>2014-07-23 16:50:07 -0700</creation_ts>
          <short_desc>REGRESSION (r171376): Sometimes we detect less than the whole phone number</short_desc>
          <delta_ts>2014-07-23 17:25:13 -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>WebCore Misc.</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>beidson</cc>
    
    <cc>enrica</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1024382</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-23 16:50:07 -0700</bug_when>
    <thetext>This is happening because the detection code will happily say that (###) ###-### is a real phone number (it probably is, somewhere), and our approach of using TextIterator and adjusting the ranges sometimes results in a fragment of a number being matched against first — before the whole number is passed in. The code in scanSelectionForTelephoneNumbers doesn&apos;t really know how to merge these, and we have no way to predict what the detection code will do, so we should instead hand *the whole extended selection* in one chunk to the detection code, so it can eagerly detect all of the phone numbers.

Doing this made it clear that the code to extend the selection was quite broken in the case of a directional selection (if it was a selection from right to left, the extension code would actually squish the selection instead of expanding it).

I haven&apos;t found any cases that this makes *worse*, and it is significantly simpler.

&lt;rdar://problem/17783423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024383</commentid>
    <comment_count>1</comment_count>
      <attachid>235391</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-23 16:54:48 -0700</bug_when>
    <thetext>Created attachment 235391
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024389</commentid>
    <comment_count>2</comment_count>
      <attachid>235393</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-23 17:08:43 -0700</bug_when>
    <thetext>Created attachment 235393
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024390</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-07-23 17:12:42 -0700</bug_when>
    <thetext>This sounds great, and is probably what we should&apos;ve done in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024391</commentid>
    <comment_count>4</comment_count>
      <attachid>235393</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-07-23 17:14:08 -0700</bug_when>
    <thetext>Comment on attachment 235393
patch

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

&gt; Source/WebCore/editing/Editor.cpp:3438
&gt; +

Really necessary?  Paragraphing seemed okay before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024392</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-23 17:22:22 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 235393 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235393&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/Editor.cpp:3438
&gt; &gt; +
&gt; 
&gt; Really necessary?  Paragraphing seemed okay before.

Not necessary! Just left over from some debugging logging that I failed to remove entirely.

Thanks for your review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024394</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-23 17:24:47 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 235393 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235393&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/Editor.cpp:3438
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; Really necessary?  Paragraphing seemed okay before.
&gt; 
&gt; Not necessary! Just left over from some debugging logging that I failed to remove entirely.

Though somehow I managed to land it anyway :|

&gt; Thanks for your review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1024395</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-23 17:25:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/171499</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235391</attachid>
            <date>2014-07-23 16:54:48 -0700</date>
            <delta_ts>2014-07-23 17:08:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>phonenumber2.diff</filename>
            <type>text/plain</type>
            <size>6019</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMDc0ODNhLi4zZWJiZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDctMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTiAocjE3MTM3Nik6IFNvbWV0aW1lcyB3ZSBkZXRlY3QgbGVzcyB0
aGFuIHRoZSB3aG9sZSBwaG9uZSBudW1iZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNTIyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTc3ODM0
MjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNjYW5TZWxlY3Rp
b25Gb3JUZWxlcGhvbmVOdW1iZXJzKToKKyAgICAgICAgVXNlIHRoZSB2aXNpYmxlIHNlbGVjdGlv
bidzIHN0YXJ0IGFuZCBlbmQgaW5zdGVhZCBvZiBiYXNlIGFuZCBleHRlbnQsIGJlY2F1c2UgdGhl
eSdsbAorICAgICAgICBhbHdheXMgYmUgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBjYXNlIG9m
IGEgZGlyZWN0aW9uYWwgc2VsZWN0aW9uIChiYXNlIGNhbiBiZSAqYWZ0ZXIqIGV4dGVudAorICAg
ICAgICBpZiB5b3Ugc2VsZWN0IGZyb20gcmlnaHQgdG8gbGVmdCkuIFRoaXMgZml4ZXMgdGhlIGNv
ZGUgdGhhdCBleHBhbmRzIHRoZSBzZWxlY3Rpb24uCisKKyAgICAgICAgUGFzcyB0aGUgKmVudGly
ZSogZXhwYW5kZWQgc2VsZWN0aW9uIHRvIERhdGFEZXRlY3RvcnMsIGluc3RlYWQgb2YgdXNpbmcg
VGV4dEl0ZXJhdG9yLgorICAgICAgICBUaGlzIHdheSwgd2Ugd2lsbCBmaW5kIGVhY2ggbnVtYmVy
IG9ubHkgb25jZSwgYW5kIHdpbGwgbmV2ZXIgZ2V0IHBhcnQgb2YgYSBwaG9uZSBudW1iZXIgb25j
ZQorICAgICAgICBhbmQgdGhlbiB0aGUgd2hvbGUgcGhvbmUgbnVtYmVyIGxhdGVyLgorCiAyMDE0
LTA3LTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTcxNDU1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IDJjYTIzNjcuLjdkODdjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
QEAgLTMzNzMsNzIgKzMzNzMsMzUgQEAgdm9pZCBFZGl0b3I6OnNjYW5TZWxlY3Rpb25Gb3JUZWxl
cGhvbmVOdW1iZXJzKCkKIAogICAgIC8vIEV4dGVuZCB0aGUgcmFuZ2UgYSBmZXcgY2hhcmFjdGVy
cyBpbiBlYWNoIGRpcmVjdGlvbiB0byBkZXRlY3QgaW5jb21wbGV0ZWx5IHNlbGVjdGVkIHBob25l
IG51bWJlcnMuCiAgICAgc3RhdGljIGNvbnN0IGludCBjaGFyYWN0ZXJzVG9FeHRlbmQgPSAxNTsK
LSAgICBQb3NpdGlvbiBiYXNlID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuYmFzZSgpOwot
ICAgIFBvc2l0aW9uIGV4dGVudCA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmV4dGVudCgp
OworICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHZpc2libGVTZWxlY3Rpb24gPSBmcmFtZVNl
bGVjdGlvbi5zZWxlY3Rpb24oKTsKKyAgICBQb3NpdGlvbiBzdGFydCA9IHZpc2libGVTZWxlY3Rp
b24uc3RhcnQoKTsKKyAgICBQb3NpdGlvbiBlbmQgPSB2aXNpYmxlU2VsZWN0aW9uLmVuZCgpOwor
ICAgIFRleHREaXJlY3Rpb24gc2VsZWN0aW9uVGV4dERpcmVjdGlvbiA9IGRpcmVjdGlvbk9mRW5j
bG9zaW5nQmxvY2sodmlzaWJsZVNlbGVjdGlvbi5leHRlbnQoKSk7CiAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBjaGFyYWN0ZXJzVG9FeHRlbmQ7ICsraSkgewotICAgICAgICBiYXNlID0gYmFzZS5w
cmV2aW91cyhDaGFyYWN0ZXIpOwotICAgICAgICBleHRlbnQgPSBleHRlbnQubmV4dChDaGFyYWN0
ZXIpOworICAgICAgICBpZiAoc2VsZWN0aW9uVGV4dERpcmVjdGlvbiA9PSBMVFIpIHsKKyAgICAg
ICAgICAgIHN0YXJ0ID0gc3RhcnQucHJldmlvdXMoQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgIGVu
ZCA9IGVuZC5uZXh0KENoYXJhY3Rlcik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBz
dGFydCA9IHN0YXJ0Lm5leHQoQ2hhcmFjdGVyKTsKKyAgICAgICAgICAgIGVuZCA9IGVuZC5wcmV2
aW91cyhDaGFyYWN0ZXIpOworICAgICAgICB9CiAgICAgfQogCiAgICAgRnJhbWVTZWxlY3Rpb24g
ZXh0ZW5kZWRTZWxlY3Rpb247Ci0gICAgZXh0ZW5kZWRTZWxlY3Rpb24uc2V0QmFzZShiYXNlKTsK
LSAgICBleHRlbmRlZFNlbGVjdGlvbi5zZXRFeHRlbnQoZXh0ZW50KTsKKyAgICBleHRlbmRlZFNl
bGVjdGlvbi5zZXRTdGFydChzdGFydCk7CisgICAgZXh0ZW5kZWRTZWxlY3Rpb24uc2V0RW5kKGVu
ZCk7CiAgICAgUmVmUHRyPFJhbmdlPiBleHRlbmRlZFJhbmdlID0gZXh0ZW5kZWRTZWxlY3Rpb24u
dG9Ob3JtYWxpemVkUmFuZ2UoKTsKIAotICAgIGZvciAoVGV4dEl0ZXJhdG9yIHRleHRDaHVuayhl
eHRlbmRlZFJhbmdlLmdldCgpKTsgIXRleHRDaHVuay5hdEVuZCgpOyB0ZXh0Q2h1bmsuYWR2YW5j
ZSgpKSB7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBtYXJrZWRDaHVua1JhbmdlczsK
LSAgICAgICAgVmVjdG9yPFJlZlB0cjxSYW5nZT4+IG1hcmtlZEVkZ2VSYW5nZXM7Ci0KLSAgICAg
ICAgLy8gU2NhbiB0aGUgdGV4dCBpdGVyYXRvciByYW5nZS4KLSAgICAgICAgUmVmUHRyPFJhbmdl
PiByYW5nZSA9IHRleHRDaHVuay5yYW5nZSgpOwotICAgICAgICBzY2FuUmFuZ2VGb3JUZWxlcGhv
bmVOdW1iZXJzKCpyYW5nZSwgdGV4dENodW5rLnRleHQoKSwgbWFya2VkQ2h1bmtSYW5nZXMpOwot
Ci0gICAgICAgIC8vIElmIHRoaXMgdGV4dCBpdGVyYXRvciByYW5nZSdzIGVuZCBwb3NpdGlvbiBp
cyBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgZnVsbCByYW5nZSwKLSAgICAgICAgLy8gdGhlbiBzY2Fu
IGEgd2luZG93IHRoYXQgaXMgYSBiaXQgYmVmb3JlIGFuZCBhIGJpdCBhZnRlciB0aGlzIHRleHQg
aXRlcmF0b3IgcmFuZ2UuCi0gICAgICAgIFJlZlB0cjxSYW5nZT4gZWRnZVJhbmdlOwotICAgICAg
ICBpZiAocmFuZ2UtPmVuZFBvc2l0aW9uKCkgPCBleHRlbmRlZFJhbmdlLT5lbmRQb3NpdGlvbigp
KSB7Ci0gICAgICAgICAgICBQb3NpdGlvbiBlbmRQb3NpdGlvbiA9IHJhbmdlLT5lbmRQb3NpdGlv
bigpOwotICAgICAgICAgICAgUG9zaXRpb24gc3RhcnRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uOwot
ICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGFyYWN0ZXJzVG9FeHRlbmQ7ICsraSkg
ewotICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBzdGFydFBvc2l0aW9uLnByZXZpb3Vz
KENoYXJhY3Rlcik7Ci0gICAgICAgICAgICAgICAgZW5kUG9zaXRpb24gPSBlbmRQb3NpdGlvbi5u
ZXh0KENoYXJhY3Rlcik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGVkZ2VSYW5nZSA9
IFJhbmdlOjpjcmVhdGUocmFuZ2UtPm93bmVyRG9jdW1lbnQoKSwgc3RhcnRQb3NpdGlvbiwgZW5k
UG9zaXRpb24pOwotICAgICAgICAgICAgc2NhblJhbmdlRm9yVGVsZXBob25lTnVtYmVycygqZWRn
ZVJhbmdlLCBwbGFpblRleHQoZWRnZVJhbmdlLmdldCgpKSwgbWFya2VkRWRnZVJhbmdlcyk7Ci0g
ICAgICAgIH0KLQotICAgICAgICAvLyBBZGQgYm90aCBvZiB0aGVzZSBzZXRzIG9mIHJhbmdlcyB0
byB0aGUgZnVsbCBzZXQgb2YgbWFya2VkIHJhbmdlcywgZG91YmxlIGNoZWNraW5nIHRvCi0gICAg
ICAgIC8vIG1ha2Ugc3VyZSB3ZSBkb24ndCBlbmQgdXAgd2l0aCB0d28gZXF1aXZhbGVudCByYW5n
ZXMgaW4gdGhlIGZ1bGwgc2V0LgotICAgICAgICBmb3IgKGF1dG8mIGNodW5rUmFuZ2UgOiBtYXJr
ZWRDaHVua1JhbmdlcykgewotICAgICAgICAgICAgYm9vbCBtYXRjaGVzRWRnZVJhbmdlID0gZmFs
c2U7Ci0gICAgICAgICAgICBmb3IgKGF1dG8mIGVkZ2VSYW5nZSA6IG1hcmtlZEVkZ2VSYW5nZXMp
IHsKLSAgICAgICAgICAgICAgICBpZiAoYXJlUmFuZ2VzRXF1YWwoY2h1bmtSYW5nZS5nZXQoKSwg
ZWRnZVJhbmdlLmdldCgpKSkgewotICAgICAgICAgICAgICAgICAgICBtYXRjaGVzRWRnZVJhbmdl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoIW1hdGNoZXNFZGdlUmFuZ2UpCi0gICAg
ICAgICAgICAgICAgbWFya2VkUmFuZ2VzLmFwcGVuZChjaHVua1JhbmdlKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZvciAoYXV0byYgcmFuZ2UgOiBtYXJrZWRFZGdlUmFuZ2VzKQotICAgICAgICAg
ICAgbWFya2VkUmFuZ2VzLmFwcGVuZChyYW5nZSk7Ci0KLSAgICAgICAgLy8gSWYgdGhlIGVkZ2Ug
cmFuZ2UncyBlbmQgcG9zaXRpb24gaXMgcGFzdCB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBvcmln
aW5hbCByYW5nZSwgd2UncmUgZG9uZSBzY2FubmluZy4KLSAgICAgICAgaWYgKGVkZ2VSYW5nZSAm
JiBlZGdlUmFuZ2UtPmVuZFBvc2l0aW9uKCkgPj0gZXh0ZW5kZWRSYW5nZS0+ZW5kUG9zaXRpb24o
KSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KKyAgICBzY2FuUmFuZ2VGb3JUZWxlcGhvbmVO
dW1iZXJzKCpleHRlbmRlZFJhbmdlLCBleHRlbmRlZFJhbmdlLT50ZXh0KCksIG1hcmtlZFJhbmdl
cyk7CiAKICAgICAvLyBPbmx5IGNvbnNpZGVyIHJhbmdlcyB3aXRoIGEgZGV0ZWN0ZWQgdGVsZXBo
b25lIG51bWJlciBpZiB0aGV5IG92ZXJsYXAgd2l0aCB0aGUgYWN0dWFsIHNlbGVjdGlvbiByYW5n
ZS4KLSAgICBWZWN0b3I8UmVmUHRyPFJhbmdlPj4gZXh0ZW5kZWRNYXJrZWRSYW5nZXM7CisgICAg
VmVjdG9yPFJlZlB0cjxSYW5nZT4+IG1hcmtlZFJhbmdlc0ludGVyc2VjdGluZ1NlbGVjdGlvbjsK
ICAgICBmb3IgKGF1dG8mIHJhbmdlIDogbWFya2VkUmFuZ2VzKSB7CiAgICAgICAgIGlmIChyYW5n
ZXNPdmVybGFwKHJhbmdlLmdldCgpLCBzZWxlY3RlZFJhbmdlLmdldCgpKSkKLSAgICAgICAgICAg
IGV4dGVuZGVkTWFya2VkUmFuZ2VzLmFwcGVuZChyYW5nZSk7CisgICAgICAgICAgICBtYXJrZWRS
YW5nZXNJbnRlcnNlY3RpbmdTZWxlY3Rpb24uYXBwZW5kKHJhbmdlKTsKICAgICB9CiAKLSAgICBj
bGllbnQoKS0+c2VsZWN0ZWRUZWxlcGhvbmVOdW1iZXJSYW5nZXNDaGFuZ2VkKGV4dGVuZGVkTWFy
a2VkUmFuZ2VzKTsKKyAgICBjbGllbnQoKS0+c2VsZWN0ZWRUZWxlcGhvbmVOdW1iZXJSYW5nZXND
aGFuZ2VkKG1hcmtlZFJhbmdlc0ludGVyc2VjdGluZ1NlbGVjdGlvbik7CiB9CiAKIHZvaWQgRWRp
dG9yOjpzY2FuUmFuZ2VGb3JUZWxlcGhvbmVOdW1iZXJzKFJhbmdlJiByYW5nZSwgY29uc3QgU3Ry
aW5nVmlldyYgc3RyaW5nVmlldywgVmVjdG9yPFJlZlB0cjxSYW5nZT4+JiBtYXJrZWRSYW5nZXMp
CkBAIC0zNDcxLDYgKzM0MzQsNyBAQCB2b2lkIEVkaXRvcjo6c2NhblJhbmdlRm9yVGVsZXBob25l
TnVtYmVycyhSYW5nZSYgcmFuZ2UsIGNvbnN0IFN0cmluZ1ZpZXcmIHN0cmluZwogICAgICAgICB1
bnNpZ25lZCBzdWJyYW5nZUxlbmd0aCA9IHJlbGF0aXZlRW5kUG9zaXRpb24gLSByZWxhdGl2ZVN0
YXJ0UG9zaXRpb24gKyAxOwogCiAgICAgICAgIFJlZlB0cjxSYW5nZT4gc3VicmFuZ2UgPSBUZXh0
SXRlcmF0b3I6OnN1YnJhbmdlKCZyYW5nZSwgc3VicmFuZ2VPZmZzZXQsIHN1YnJhbmdlTGVuZ3Ro
KTsKKwogICAgICAgICBtYXJrZWRSYW5nZXMuYXBwZW5kKHN1YnJhbmdlKTsKICAgICAgICAgcmFu
Z2Uub3duZXJEb2N1bWVudCgpLm1hcmtlcnMoKS5hZGRNYXJrZXIoc3VicmFuZ2UuZ2V0KCksIERv
Y3VtZW50TWFya2VyOjpUZWxlcGhvbmVOdW1iZXIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235393</attachid>
            <date>2014-07-23 17:08:43 -0700</date>
            <delta_ts>2014-07-23 17:14:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>phonenumber2.diff</filename>
            <type>text/plain</type>
            <size>5982</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMDc0ODNhLi4zZWJiZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTQtMDctMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTiAocjE3MTM3Nik6IFNvbWV0aW1lcyB3ZSBkZXRlY3QgbGVzcyB0
aGFuIHRoZSB3aG9sZSBwaG9uZSBudW1iZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNTIyMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTc3ODM0
MjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNjYW5TZWxlY3Rp
b25Gb3JUZWxlcGhvbmVOdW1iZXJzKToKKyAgICAgICAgVXNlIHRoZSB2aXNpYmxlIHNlbGVjdGlv
bidzIHN0YXJ0IGFuZCBlbmQgaW5zdGVhZCBvZiBiYXNlIGFuZCBleHRlbnQsIGJlY2F1c2UgdGhl
eSdsbAorICAgICAgICBhbHdheXMgYmUgaW4gdGhlIHJpZ2h0IG9yZGVyIGluIHRoZSBjYXNlIG9m
IGEgZGlyZWN0aW9uYWwgc2VsZWN0aW9uIChiYXNlIGNhbiBiZSAqYWZ0ZXIqIGV4dGVudAorICAg
ICAgICBpZiB5b3Ugc2VsZWN0IGZyb20gcmlnaHQgdG8gbGVmdCkuIFRoaXMgZml4ZXMgdGhlIGNv
ZGUgdGhhdCBleHBhbmRzIHRoZSBzZWxlY3Rpb24uCisKKyAgICAgICAgUGFzcyB0aGUgKmVudGly
ZSogZXhwYW5kZWQgc2VsZWN0aW9uIHRvIERhdGFEZXRlY3RvcnMsIGluc3RlYWQgb2YgdXNpbmcg
VGV4dEl0ZXJhdG9yLgorICAgICAgICBUaGlzIHdheSwgd2Ugd2lsbCBmaW5kIGVhY2ggbnVtYmVy
IG9ubHkgb25jZSwgYW5kIHdpbGwgbmV2ZXIgZ2V0IHBhcnQgb2YgYSBwaG9uZSBudW1iZXIgb25j
ZQorICAgICAgICBhbmQgdGhlbiB0aGUgd2hvbGUgcGhvbmUgbnVtYmVyIGxhdGVyLgorCiAyMDE0
LTA3LTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTcxNDU1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IDJjYTIzNjcuLmZlYTg5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
QEAgLTMzNzMsNzIgKzMzNzMsMzYgQEAgdm9pZCBFZGl0b3I6OnNjYW5TZWxlY3Rpb25Gb3JUZWxl
cGhvbmVOdW1iZXJzKCkKIAogICAgIC8vIEV4dGVuZCB0aGUgcmFuZ2UgYSBmZXcgY2hhcmFjdGVy
cyBpbiBlYWNoIGRpcmVjdGlvbiB0byBkZXRlY3QgaW5jb21wbGV0ZWx5IHNlbGVjdGVkIHBob25l
IG51bWJlcnMuCiAgICAgc3RhdGljIGNvbnN0IGludCBjaGFyYWN0ZXJzVG9FeHRlbmQgPSAxNTsK
LSAgICBQb3NpdGlvbiBiYXNlID0gZnJhbWVTZWxlY3Rpb24uc2VsZWN0aW9uKCkuYmFzZSgpOwot
ICAgIFBvc2l0aW9uIGV4dGVudCA9IGZyYW1lU2VsZWN0aW9uLnNlbGVjdGlvbigpLmV4dGVudCgp
OworICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHZpc2libGVTZWxlY3Rpb24gPSBmcmFtZVNl
bGVjdGlvbi5zZWxlY3Rpb24oKTsKKyAgICBQb3NpdGlvbiBzdGFydCA9IHZpc2libGVTZWxlY3Rp
b24uc3RhcnQoKTsKKyAgICBQb3NpdGlvbiBlbmQgPSB2aXNpYmxlU2VsZWN0aW9uLmVuZCgpOwog
ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhcmFjdGVyc1RvRXh0ZW5kOyArK2kpIHsKLSAgICAg
ICAgYmFzZSA9IGJhc2UucHJldmlvdXMoQ2hhcmFjdGVyKTsKLSAgICAgICAgZXh0ZW50ID0gZXh0
ZW50Lm5leHQoQ2hhcmFjdGVyKTsKKyAgICAgICAgaWYgKGRpcmVjdGlvbk9mRW5jbG9zaW5nQmxv
Y2soc3RhcnQpID09IExUUikKKyAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnQucHJldmlvdXMoQ2hh
cmFjdGVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3RhcnQgPSBzdGFydC5uZXh0KENo
YXJhY3Rlcik7CisKKyAgICAgICAgaWYgKGRpcmVjdGlvbk9mRW5jbG9zaW5nQmxvY2soZW5kKSA9
PSBMVFIpCisgICAgICAgICAgICBlbmQgPSBlbmQubmV4dChDaGFyYWN0ZXIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBlbmQgPSBlbmQucHJldmlvdXMoQ2hhcmFjdGVyKTsKICAgICB9CiAK
ICAgICBGcmFtZVNlbGVjdGlvbiBleHRlbmRlZFNlbGVjdGlvbjsKLSAgICBleHRlbmRlZFNlbGVj
dGlvbi5zZXRCYXNlKGJhc2UpOwotICAgIGV4dGVuZGVkU2VsZWN0aW9uLnNldEV4dGVudChleHRl
bnQpOworICAgIGV4dGVuZGVkU2VsZWN0aW9uLnNldFN0YXJ0KHN0YXJ0KTsKKyAgICBleHRlbmRl
ZFNlbGVjdGlvbi5zZXRFbmQoZW5kKTsKICAgICBSZWZQdHI8UmFuZ2U+IGV4dGVuZGVkUmFuZ2Ug
PSBleHRlbmRlZFNlbGVjdGlvbi50b05vcm1hbGl6ZWRSYW5nZSgpOwogCi0gICAgZm9yIChUZXh0
SXRlcmF0b3IgdGV4dENodW5rKGV4dGVuZGVkUmFuZ2UuZ2V0KCkpOyAhdGV4dENodW5rLmF0RW5k
KCk7IHRleHRDaHVuay5hZHZhbmNlKCkpIHsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxSYW5nZT4+
IG1hcmtlZENodW5rUmFuZ2VzOwotICAgICAgICBWZWN0b3I8UmVmUHRyPFJhbmdlPj4gbWFya2Vk
RWRnZVJhbmdlczsKLQotICAgICAgICAvLyBTY2FuIHRoZSB0ZXh0IGl0ZXJhdG9yIHJhbmdlLgot
ICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gdGV4dENodW5rLnJhbmdlKCk7Ci0gICAgICAg
IHNjYW5SYW5nZUZvclRlbGVwaG9uZU51bWJlcnMoKnJhbmdlLCB0ZXh0Q2h1bmsudGV4dCgpLCBt
YXJrZWRDaHVua1Jhbmdlcyk7Ci0KLSAgICAgICAgLy8gSWYgdGhpcyB0ZXh0IGl0ZXJhdG9yIHJh
bmdlJ3MgZW5kIHBvc2l0aW9uIGlzIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBmdWxsIHJhbmdlLAot
ICAgICAgICAvLyB0aGVuIHNjYW4gYSB3aW5kb3cgdGhhdCBpcyBhIGJpdCBiZWZvcmUgYW5kIGEg
Yml0IGFmdGVyIHRoaXMgdGV4dCBpdGVyYXRvciByYW5nZS4KLSAgICAgICAgUmVmUHRyPFJhbmdl
PiBlZGdlUmFuZ2U7Ci0gICAgICAgIGlmIChyYW5nZS0+ZW5kUG9zaXRpb24oKSA8IGV4dGVuZGVk
UmFuZ2UtPmVuZFBvc2l0aW9uKCkpIHsKLSAgICAgICAgICAgIFBvc2l0aW9uIGVuZFBvc2l0aW9u
ID0gcmFuZ2UtPmVuZFBvc2l0aW9uKCk7Ci0gICAgICAgICAgICBQb3NpdGlvbiBzdGFydFBvc2l0
aW9uID0gZW5kUG9zaXRpb247Ci0gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYXJh
Y3RlcnNUb0V4dGVuZDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IHN0
YXJ0UG9zaXRpb24ucHJldmlvdXMoQ2hhcmFjdGVyKTsKLSAgICAgICAgICAgICAgICBlbmRQb3Np
dGlvbiA9IGVuZFBvc2l0aW9uLm5leHQoQ2hhcmFjdGVyKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgZWRnZVJhbmdlID0gUmFuZ2U6OmNyZWF0ZShyYW5nZS0+b3duZXJEb2N1bWVudCgp
LCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7Ci0gICAgICAgICAgICBzY2FuUmFuZ2VGb3JU
ZWxlcGhvbmVOdW1iZXJzKCplZGdlUmFuZ2UsIHBsYWluVGV4dChlZGdlUmFuZ2UuZ2V0KCkpLCBt
YXJrZWRFZGdlUmFuZ2VzKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEFkZCBib3RoIG9mIHRo
ZXNlIHNldHMgb2YgcmFuZ2VzIHRvIHRoZSBmdWxsIHNldCBvZiBtYXJrZWQgcmFuZ2VzLCBkb3Vi
bGUgY2hlY2tpbmcgdG8KLSAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGRvbid0IGVuZCB1cCB3aXRo
IHR3byBlcXVpdmFsZW50IHJhbmdlcyBpbiB0aGUgZnVsbCBzZXQuCi0gICAgICAgIGZvciAoYXV0
byYgY2h1bmtSYW5nZSA6IG1hcmtlZENodW5rUmFuZ2VzKSB7Ci0gICAgICAgICAgICBib29sIG1h
dGNoZXNFZGdlUmFuZ2UgPSBmYWxzZTsKLSAgICAgICAgICAgIGZvciAoYXV0byYgZWRnZVJhbmdl
IDogbWFya2VkRWRnZVJhbmdlcykgewotICAgICAgICAgICAgICAgIGlmIChhcmVSYW5nZXNFcXVh
bChjaHVua1JhbmdlLmdldCgpLCBlZGdlUmFuZ2UuZ2V0KCkpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIG1hdGNoZXNFZGdlUmFuZ2UgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghbWF0
Y2hlc0VkZ2VSYW5nZSkKLSAgICAgICAgICAgICAgICBtYXJrZWRSYW5nZXMuYXBwZW5kKGNodW5r
UmFuZ2UpOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChhdXRvJiByYW5nZSA6IG1hcmtlZEVk
Z2VSYW5nZXMpCi0gICAgICAgICAgICBtYXJrZWRSYW5nZXMuYXBwZW5kKHJhbmdlKTsKLQotICAg
ICAgICAvLyBJZiB0aGUgZWRnZSByYW5nZSdzIGVuZCBwb3NpdGlvbiBpcyBwYXN0IHRoZSBlbmQg
cG9zaXRpb24gb2YgdGhlIG9yaWdpbmFsIHJhbmdlLCB3ZSdyZSBkb25lIHNjYW5uaW5nLgotICAg
ICAgICBpZiAoZWRnZVJhbmdlICYmIGVkZ2VSYW5nZS0+ZW5kUG9zaXRpb24oKSA+PSBleHRlbmRl
ZFJhbmdlLT5lbmRQb3NpdGlvbigpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHNj
YW5SYW5nZUZvclRlbGVwaG9uZU51bWJlcnMoKmV4dGVuZGVkUmFuZ2UsIGV4dGVuZGVkUmFuZ2Ut
PnRleHQoKSwgbWFya2VkUmFuZ2VzKTsKIAogICAgIC8vIE9ubHkgY29uc2lkZXIgcmFuZ2VzIHdp
dGggYSBkZXRlY3RlZCB0ZWxlcGhvbmUgbnVtYmVyIGlmIHRoZXkgb3ZlcmxhcCB3aXRoIHRoZSBh
Y3R1YWwgc2VsZWN0aW9uIHJhbmdlLgotICAgIFZlY3RvcjxSZWZQdHI8UmFuZ2U+PiBleHRlbmRl
ZE1hcmtlZFJhbmdlczsKKyAgICBWZWN0b3I8UmVmUHRyPFJhbmdlPj4gbWFya2VkUmFuZ2VzSW50
ZXJzZWN0aW5nU2VsZWN0aW9uOwogICAgIGZvciAoYXV0byYgcmFuZ2UgOiBtYXJrZWRSYW5nZXMp
IHsKICAgICAgICAgaWYgKHJhbmdlc092ZXJsYXAocmFuZ2UuZ2V0KCksIHNlbGVjdGVkUmFuZ2Uu
Z2V0KCkpKQotICAgICAgICAgICAgZXh0ZW5kZWRNYXJrZWRSYW5nZXMuYXBwZW5kKHJhbmdlKTsK
KyAgICAgICAgICAgIG1hcmtlZFJhbmdlc0ludGVyc2VjdGluZ1NlbGVjdGlvbi5hcHBlbmQocmFu
Z2UpOwogICAgIH0KIAotICAgIGNsaWVudCgpLT5zZWxlY3RlZFRlbGVwaG9uZU51bWJlclJhbmdl
c0NoYW5nZWQoZXh0ZW5kZWRNYXJrZWRSYW5nZXMpOworICAgIGNsaWVudCgpLT5zZWxlY3RlZFRl
bGVwaG9uZU51bWJlclJhbmdlc0NoYW5nZWQobWFya2VkUmFuZ2VzSW50ZXJzZWN0aW5nU2VsZWN0
aW9uKTsKIH0KIAogdm9pZCBFZGl0b3I6OnNjYW5SYW5nZUZvclRlbGVwaG9uZU51bWJlcnMoUmFu
Z2UmIHJhbmdlLCBjb25zdCBTdHJpbmdWaWV3JiBzdHJpbmdWaWV3LCBWZWN0b3I8UmVmUHRyPFJh
bmdlPj4mIG1hcmtlZFJhbmdlcykKQEAgLTM0NzEsNiArMzQzNSw3IEBAIHZvaWQgRWRpdG9yOjpz
Y2FuUmFuZ2VGb3JUZWxlcGhvbmVOdW1iZXJzKFJhbmdlJiByYW5nZSwgY29uc3QgU3RyaW5nVmll
dyYgc3RyaW5nCiAgICAgICAgIHVuc2lnbmVkIHN1YnJhbmdlTGVuZ3RoID0gcmVsYXRpdmVFbmRQ
b3NpdGlvbiAtIHJlbGF0aXZlU3RhcnRQb3NpdGlvbiArIDE7CiAKICAgICAgICAgUmVmUHRyPFJh
bmdlPiBzdWJyYW5nZSA9IFRleHRJdGVyYXRvcjo6c3VicmFuZ2UoJnJhbmdlLCBzdWJyYW5nZU9m
ZnNldCwgc3VicmFuZ2VMZW5ndGgpOworCiAgICAgICAgIG1hcmtlZFJhbmdlcy5hcHBlbmQoc3Vi
cmFuZ2UpOwogICAgICAgICByYW5nZS5vd25lckRvY3VtZW50KCkubWFya2VycygpLmFkZE1hcmtl
cihzdWJyYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlRlbGVwaG9uZU51bWJlcik7CiAK
</data>
<flag name="review"
          id="259968"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>