<?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>20254</bug_id>
          
          <creation_ts>2008-08-01 08:18:54 -0700</creation_ts>
          <short_desc>didBeginEditing / didEndEditing not always called on focus change</short_desc>
          <delta_ts>2010-06-10 16:21:15 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://en.wikipedia.org/w/index.php?title=Wikipedia:Sandbox&amp;action=edit</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joe Mason">joe</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>justin.garcia</cc>
    
    <cc>manyoso</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>87572</commentid>
    <comment_count>0</comment_count>
    <who name="Joe Mason">joe</who>
    <bug_when>2008-08-01 08:18:54 -0700</bug_when>
    <thetext>To diagnose this bug, add debug output to your platform&apos;s implementation of EditorClient::didBeginEditing and EditorClient::didEndEditing.  (I&apos;m using the Qt port, which helpfully has debug output there already if dumpEditingCallbacks is turned on.)

Expected: didBeginEditing is called when a textarea gains focus, and didEndEditing is called when it loses it.  textFieldDidBeginEditing is called when an input element gains focus, and textFieldDidEndEditing is called when it loses it.

Observed: didBeginEditing is never called.  didEndEditing is sometimes called.

The Wikipedia sandbox is a good page to use to test this, since it contains both types of text entry.

These methods are mainly used by the Qt port to send Qt signals that clients can catch, but WebEditorClient also implements textFieldDidBeginEditing and textFieldDidEndEditing to do domething with form delegates that I can&apos;t really follow.  (I *think* it&apos;s just passing the signal on.)

In the safari-3.1 branch textFieldDidBeginEditing and textFieldDidEndEditing were called consistently, but didBeginEditing and didEndEditing were not called when moving from a textarea to an input field, or a textarea to another textarea.  In the most recent version it doesn&apos;t work at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87573</commentid>
    <comment_count>1</comment_count>
      <attachid>22598</attachid>
    <who name="Joe Mason">joe</who>
    <bug_when>2008-08-01 08:25:18 -0700</bug_when>
    <thetext>Created attachment 22598
Patch to fix this bug

The attached patch fixes this as follows:

Added Frame::textAreaDidBeginEditing and Frame::textAreaDidEndEditing to
parallel textFieldDidBeginEditing and textFieldDidEndEditing.  (Now
textAreaDidBeginEditing calls EditorClient::didBeginEditing, as before, while
textFieldDidBeginEditing calls EditorClient::textFieldDidBeginEditing.)

Remove the calls to didBeginEditing() and didEndEditing() in
Document::setFocusedNode.  They were not being called consistently. 
didBeginEditing and didEndEditing are now called from a DOM node&apos;s
dispatchFocusEvent or dispatchBlurEvent, the same as textFieldDidBeginEditing
and textFieldDidEndEditing.  (I think this change is safe because no
EditorClient implementation overrode these functions except EditorClientQt,
which just uses it to send the startInput and stopInput signals, which I&apos;ve tested extensively.)

Add a missed call to textFieldDidBeginEditing in HTMLInputElement::dispatchFocusEvent.

Add calls to the new Frame::textAreaDidBeginEditing and
Frame::textAreaDidEndEditing to HTMLTextAreaElement to parallel the calls to
textFieldDidBeginEditing and textFieldDidEndEditing in HTMLInputElement.

Add a call to the new Frame::textAreaDidBeginEditing to
RenderTextControl::subtreeHasChanged to parallel the textFieldBeginEditing call
that&apos;s already there.


With these changes, EditorClient::didEditing and EditorClient::endEditing
should be called in exactly the same circumstances that
EditorClient::textFieldBeginEditing and EditorClient::textFieldEndEditing are,
except for textarea nodes instead of textfield nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87574</commentid>
    <comment_count>2</comment_count>
    <who name="Joe Mason">joe</who>
    <bug_when>2008-08-01 08:30:23 -0700</bug_when>
    <thetext>Forgot to mention, the above patch also adds a call to the inherited aboutToUnload() in HTMLInputElement::aboutToUnload().  This is just because most other methods involved (ie. dispatchFocusEvent and dispatchBlurEvent) call the inherited implementation, so I&apos;m assuming this call was just missed.  The inherited aboutToUnload() is empty, so this doesn&apos;t do anything now, but it&apos;s future-proofing in case someone adds code higher in the inheritance chain and expects it to be called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87797</commentid>
    <comment_count>3</comment_count>
      <attachid>22639</attachid>
    <who name="Joe Mason">joe</who>
    <bug_when>2008-08-04 14:40:41 -0700</bug_when>
    <thetext>Created attachment 22639
Patch that applies cleanly

The patch above didn&apos;t apply cleanly.  This one does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87801</commentid>
    <comment_count>4</comment_count>
      <attachid>22641</attachid>
    <who name="Joe Mason">joe</who>
    <bug_when>2008-08-04 15:20:55 -0700</bug_when>
    <thetext>Created attachment 22641
Same patch with ChangeLog

Added ChangeLog entries to patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87805</commentid>
    <comment_count>5</comment_count>
      <attachid>22641</attachid>
    <who name="Joe Mason">joe</who>
    <bug_when>2008-08-04 15:41:01 -0700</bug_when>
    <thetext>Comment on attachment 22641
Same patch with ChangeLog

Sigh, I can&apos;t read - that&apos;s requestEE, not requestER.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87828</commentid>
    <comment_count>6</comment_count>
      <attachid>22641</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-08-04 20:44:32 -0700</bug_when>
    <thetext>Comment on attachment 22641
Same patch with ChangeLog

Justin should look at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89573</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-08-27 17:32:51 -0700</bug_when>
    <thetext>Ping, justin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>91926</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-09-20 13:38:59 -0700</bug_when>
    <thetext>Ping, Justin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92079</commentid>
    <comment_count>9</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2008-09-21 21:50:23 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Ping, Justin?

Did you run the editing layout test?  I don&apos;t think you call didBegin/EndEditing when the editable region was a contentEditable element.
Could you explain why calling didBegin/EndEditing from setFocusedNode isn&apos;t good enough?  In what situations do we fail to call didBegin/EndEditing on a focus change?
Before we called editor()-&gt;didBegin/EndEditing, now we call editor()-&gt;client()-&gt;didBegin/EndEditing(), is that OK/intended?
Why are we naming this new functions textAreaBegin/EndEditing?  It isn&apos;t always in a text area that we are doing editing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100461</commentid>
    <comment_count>10</comment_count>
      <attachid>22641</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-11-26 15:20:10 -0800</bug_when>
    <thetext>Comment on attachment 22641
Same patch with ChangeLog

Since this is now waiting pending comments from Joe, I&apos;m marking this r- to remove it from the queue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22598</attachid>
            <date>2008-08-01 08:25:18 -0700</date>
            <delta_ts>2008-08-04 14:40:41 -0700</delta_ts>
            <desc>Patch to fix this bug</desc>
            <filename>editing_callbacks.patch</filename>
            <type>text/plain</type>
            <size>6467</size>
            <attacher name="Joe Mason">joe</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCAwZmQ5ZjJiLi4xMWU0MWUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMjMyLDkgKzIy
MzIsNiBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5l
d0ZvY3VzZWROb2RlKQogICAgICAgICB9CiAgICAgICAgIGlmICgob2xkRm9jdXNlZE5vZGUuZ2V0
KCkgPT0gdGhpcykgJiYgb2xkRm9jdXNlZE5vZGUtPmhhc09uZVJlZigpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKG9sZEZvY3VzZWROb2RlLmdl
dCgpID09IG9sZEZvY3VzZWROb2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkpCi0gICAgICAgICAg
ICBmcmFtZSgpLT5lZGl0b3IoKS0+ZGlkRW5kRWRpdGluZygpOwogICAgIH0KIAogICAgIGlmIChu
ZXdGb2N1c2VkTm9kZSkgewpAQCAtMjI2Miw5ICsyMjU5LDYgQEAgYm9vbCBEb2N1bWVudDo6c2V0
Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKICAgICAgICAgfQog
ICAgICAgICBtX2ZvY3VzZWROb2RlLT5zZXRGb2N1cygpOwogCi0gICAgICAgIGlmIChtX2ZvY3Vz
ZWROb2RlLmdldCgpID09IG1fZm9jdXNlZE5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKLSAg
ICAgICAgICAgIGZyYW1lKCktPmVkaXRvcigpLT5kaWRCZWdpbkVkaXRpbmcoKTsKLQogICAgICAg
ICAvLyBld3csIEkgc3Vjay4gc2V0IHRoZSBxdCBmb2N1cyBjb3JyZWN0bHkKICAgICAgICAgLy8g
IyMjIGZpbmQgYSBiZXR0ZXIgcGxhY2UgaW4gdGhlIGNvZGUgZm9yIHRoaXMKICAgICAgICAgaWYg
KHZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDUyZmQ5MmQuLjAxZTg2
NjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTIxOSw2ICsyMTksNyBAQCB2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OmFib3V0VG9VbmxvYWQoKQogewogICAgIGlmIChpc1RleHRGaWVs
ZCgpICYmIGZvY3VzZWQoKSAmJiBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVu
dCgpLT5mcmFtZSgpLT50ZXh0RmllbGREaWRFbmRFZGl0aW5nKHRoaXMpOworICAgIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmFib3V0VG9VbmxvYWQoKTsKIH0KIAogYm9vbCBIVE1M
SW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0CkBAIC0yMzAsOCArMjMx
LDExIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkKIHsKICAg
ICBpZiAoaXNUZXh0RmllbGQoKSkgewogICAgICAgICBzZXRBdXRvZmlsbGVkKGZhbHNlKTsKLSAg
ICAgICAgaWYgKGlucHV0VHlwZSgpID09IFBBU1NXT1JEICYmIGRvY3VtZW50KCktPmZyYW1lKCkp
Ci0gICAgICAgICAgICBkb2N1bWVudCgpLT5zZXRVc2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFj
dGl2ZSh0cnVlKTsKKyAgICAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAgICAg
ICAgIGlmIChpbnB1dFR5cGUoKSA9PSBQQVNTV09SRCkKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dCgpLT5zZXRVc2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFjdGl2ZSh0cnVlKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50KCktPmZyYW1lKCktPnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyh0aGlzKTsK
KyAgICAgICAgfQogICAgIH0KICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpk
aXNwYXRjaEZvY3VzRXZlbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApp
bmRleCAxY2NlYTVlLi44MDc0MTgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
CkBAIC0yMjMsNiArMjIzLDI3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlRm9j
dXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQogICAgICAgICBkb2N1
bWVudCgpLT5mcmFtZSgpLT5yZXZlYWxTZWxlY3Rpb24oKTsKIH0KIAordm9pZCBIVE1MVGV4dEFy
ZWFFbGVtZW50OjphYm91dFRvVW5sb2FkKCkKK3sKKyAgICBpZiAoZm9jdXNlZCgpICYmIGRvY3Vt
ZW50KCktPmZyYW1lKCkpCisgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPnRleHRBcmVhRGlk
RW5kRWRpdGluZyh0aGlzKTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjph
Ym91dFRvVW5sb2FkKCk7Cit9CisKK3ZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6ZGlzcGF0Y2hG
b2N1c0V2ZW50KCkKK3sKKyAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+dGV4dEFyZWFEaWRCZWdpbkVkaXRpbmcodGhpcyk7CisgICAgSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCk7Cit9CisK
K3ZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoKQoreworICAgIGlm
IChkb2N1bWVudCgpLT5mcmFtZSgpKQorICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT50ZXh0
QXJlYURpZEVuZEVkaXRpbmcodGhpcyk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoKTsKK30KKwogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50ICpldnQpCiB7CiAgICAgaWYgKHJlbmRlcmVyKCkg
JiYgKGV2dC0+aXNNb3VzZUV2ZW50KCkgfHwgZXZ0LT5pc0RyYWdFdmVudCgpIHx8IGV2dC0+aXNX
aGVlbEV2ZW50KCkgfHwgZXZ0LT50eXBlKCkgPT0gYmx1ckV2ZW50KSkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5oCmluZGV4IGJiN2E5ZWQuLjhiZDJmYzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuaApAQCAtNjksNyArNjksMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1
c2FibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXli
b2FyZEV2ZW50KikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgp
OworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pOwor
ICAgIHZpcnR1YWwgdm9pZCBhYm91dFRvVW5sb2FkKCk7CiAKICAgICBTdHJpbmcgdmFsdWUoKSBj
b25zdDsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcCBiL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggYmJlZWIx
ZS4uOTM2YjhjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC05NTMsNiArOTUzLDE4IEBAIENTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbiAqRnJhbWU6OnNlbGVjdGlvbkNvbXB1dGVkU3R5bGUoTm9kZSAqJm5vZGVUb1Jl
bW92ZSkKICAgICByZXR1cm4gbmV3IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbihzdHlsZUVs
ZW1lbnQpOwogfQogCit2b2lkIEZyYW1lOjp0ZXh0QXJlYURpZEJlZ2luRWRpdGluZyhFbGVtZW50
KiBlKQoreworICAgIGlmIChlZGl0b3IoKS0+Y2xpZW50KCkpCisgICAgICAgIGVkaXRvcigpLT5j
bGllbnQoKS0+ZGlkQmVnaW5FZGl0aW5nKCk7Cit9CisKK3ZvaWQgRnJhbWU6OnRleHRBcmVhRGlk
RW5kRWRpdGluZyhFbGVtZW50KiBlKQoreworICAgIGlmIChlZGl0b3IoKS0+Y2xpZW50KCkpCisg
ICAgICAgIGVkaXRvcigpLT5jbGllbnQoKS0+ZGlkRW5kRWRpdGluZygpOworfQorCiB2b2lkIEZy
YW1lOjp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoRWxlbWVudCogZSkKIHsKICAgICBpZiAoZWRp
dG9yKCktPmNsaWVudCgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9XZWJD
b3JlL3BhZ2UvRnJhbWUuaAppbmRleCAwZDE1NjNiLi41OGIyODhjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvRnJhbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMjk1LDYgKzI5
NSw4IEBAIHB1YmxpYzoKIAogICAgIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbiogc2VsZWN0
aW9uQ29tcHV0ZWRTdHlsZShOb2RlKiYgbm9kZVRvUmVtb3ZlKSBjb25zdDsKIAorICAgIHZvaWQg
dGV4dEFyZWFEaWRCZWdpbkVkaXRpbmcoRWxlbWVudCopOworICAgIHZvaWQgdGV4dEFyZWFEaWRF
bmRFZGl0aW5nKEVsZW1lbnQqKTsKICAgICB2b2lkIHRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhF
bGVtZW50Kik7CiAgICAgdm9pZCB0ZXh0RmllbGREaWRFbmRFZGl0aW5nKEVsZW1lbnQqKTsKICAg
ICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKaW5kZXggMmFlNjg1Yi4uYjc0OGY3MCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcApAQCAtNTI0LDYgKzUyNCwxMSBAQCB2b2lk
IFJlbmRlclRleHRDb250cm9sOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpCiAgICAgSFRNTEdlbmVyaWNG
b3JtRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxHZW5lcmljRm9ybUVsZW1lbnQq
Pihub2RlKCkpOwogICAgIGlmIChtX211bHRpTGluZSkgewogICAgICAgICBlbGVtZW50LT5zZXRW
YWx1ZU1hdGNoZXNSZW5kZXJlcihmYWxzZSk7CisgICAgICAgIGlmICghd2FzRGlydHkpIHsKKyAg
ICAgICAgICAgIGlmIChlbGVtZW50LT5mb2N1c2VkKCkpCisgICAgICAgICAgICAgICAgaWYgKEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgICAgICAgICAgICAgIGZy
YW1lLT50ZXh0QXJlYURpZEJlZ2luRWRpdGluZyhlbGVtZW50KTsKKyAgICAgICAgfQogICAgICAg
ICBpZiAoZWxlbWVudC0+Zm9jdXNlZCgpKQogICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50KCktPmZyYW1lKCkpCiAgICAgICAgICAgICAgICAgZnJhbWUtPnRleHREaWRDaGFu
Z2VJblRleHRBcmVhKGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5jcHAKaW5kZXggMDdmMDM4MC4uODk0YThmYSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCkBAIC00NjksMTIgKzQ2OSwxNiBAQCBFZGl0b3JD
bGllbnRRdDo6RWRpdG9yQ2xpZW50UXQoUVdlYlBhZ2UqIHBhZ2UpCiAKIHZvaWQgRWRpdG9yQ2xp
ZW50UXQ6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhFbGVtZW50KikKIHsKKyAgICBpZiAoZHVt
cEVkaXRpbmdDYWxsYmFja3MpCisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTogdGV4
dEZpZWxkRGlkQmVnaW5FZGl0aW5nOldlYlZpZXdEaWRCZWdpbkVkaXRpbmdOb3RpZmljYXRpb25c
biIpOwogICAgIG1fZWRpdGluZyA9IHRydWU7CiAgICAgZW1pdCBtX3BhZ2UtPmJlZ2luRWRpdGlu
ZygpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudFF0Ojp0ZXh0RmllbGREaWRFbmRFZGl0aW5nKEVs
ZW1lbnQqKQogeworICAgIGlmIChkdW1wRWRpdGluZ0NhbGxiYWNrcykKKyAgICAgICAgcHJpbnRm
KCJFRElUSU5HIERFTEVHQVRFOiB0ZXh0RmllbGREaWRFbmRFZGl0aW5nOldlYlZpZXdEaWRFbmRF
ZGl0aW5nTm90aWZpY2F0aW9uXG4iKTsKICAgICBtX2VkaXRpbmcgPSBmYWxzZTsKICAgICBlbWl0
IG1fcGFnZS0+ZW5kRWRpdGluZygpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22639</attachid>
            <date>2008-08-04 14:40:41 -0700</date>
            <delta_ts>2008-08-04 15:20:55 -0700</delta_ts>
            <desc>Patch that applies cleanly</desc>
            <filename>editing_callbacks2.patch</filename>
            <type>text/plain</type>
            <size>6417</size>
            <attacher name="Joe Mason">joe</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCAyY2U2NzM0Li5jM2EyZDQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNDI3LDkgKzI0
MjcsNiBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5l
d0ZvY3VzZWROb2RlKQogICAgICAgICB9CiAgICAgICAgIGlmICgob2xkRm9jdXNlZE5vZGUuZ2V0
KCkgPT0gdGhpcykgJiYgb2xkRm9jdXNlZE5vZGUtPmhhc09uZVJlZigpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKG9sZEZvY3VzZWROb2RlLmdl
dCgpID09IG9sZEZvY3VzZWROb2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkpCi0gICAgICAgICAg
ICBmcmFtZSgpLT5lZGl0b3IoKS0+ZGlkRW5kRWRpdGluZygpOwogICAgIH0KIAogICAgIGlmIChu
ZXdGb2N1c2VkTm9kZSkgewpAQCAtMjQ1Nyw5ICsyNDU0LDYgQEAgYm9vbCBEb2N1bWVudDo6c2V0
Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKICAgICAgICAgfQog
ICAgICAgICBtX2ZvY3VzZWROb2RlLT5zZXRGb2N1cygpOwogCi0gICAgICAgIGlmIChtX2ZvY3Vz
ZWROb2RlLmdldCgpID09IG1fZm9jdXNlZE5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKLSAg
ICAgICAgICAgIGZyYW1lKCktPmVkaXRvcigpLT5kaWRCZWdpbkVkaXRpbmcoKTsKLQogICAgICAg
ICAvLyBld3csIEkgc3Vjay4gc2V0IHRoZSBxdCBmb2N1cyBjb3JyZWN0bHkKICAgICAgICAgLy8g
IyMjIGZpbmQgYSBiZXR0ZXIgcGxhY2UgaW4gdGhlIGNvZGUgZm9yIHRoaXMKICAgICAgICAgaWYg
KHZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDY5NjFhZDIuLjIwNTkx
YzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTIzNCw2ICsyMzQsNyBAQCB2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OmFib3V0VG9VbmxvYWQoKQogewogICAgIGlmIChpc1RleHRGaWVs
ZCgpICYmIGZvY3VzZWQoKSAmJiBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVu
dCgpLT5mcmFtZSgpLT50ZXh0RmllbGREaWRFbmRFZGl0aW5nKHRoaXMpOworICAgIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmFib3V0VG9VbmxvYWQoKTsKIH0KIAogYm9vbCBIVE1M
SW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0CkBAIC0yNDUsOCArMjQ2
LDExIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkKIHsKICAg
ICBpZiAoaXNUZXh0RmllbGQoKSkgewogICAgICAgICBzZXRBdXRvZmlsbGVkKGZhbHNlKTsKLSAg
ICAgICAgaWYgKGlucHV0VHlwZSgpID09IFBBU1NXT1JEICYmIGRvY3VtZW50KCktPmZyYW1lKCkp
Ci0gICAgICAgICAgICBkb2N1bWVudCgpLT5zZXRVc2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFj
dGl2ZSh0cnVlKTsKKyAgICAgICAgaWYgKGRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAgICAg
ICAgIGlmIChpbnB1dFR5cGUoKSA9PSBQQVNTV09SRCkKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dCgpLT5zZXRVc2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFjdGl2ZSh0cnVlKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50KCktPmZyYW1lKCktPnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyh0aGlzKTsK
KyAgICAgICAgfQogICAgIH0KICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpk
aXNwYXRjaEZvY3VzRXZlbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEFyZWFFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApp
bmRleCBkZTE2NWIzLi45NzAwN2YwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
CkBAIC0yMzEsNiArMjMxLDI3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlRm9j
dXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKQogICAgICAgICBkb2N1
bWVudCgpLT5mcmFtZSgpLT5yZXZlYWxTZWxlY3Rpb24oKTsKIH0KIAordm9pZCBIVE1MVGV4dEFy
ZWFFbGVtZW50OjphYm91dFRvVW5sb2FkKCkKK3sKKyAgICBpZiAoZm9jdXNlZCgpICYmIGRvY3Vt
ZW50KCktPmZyYW1lKCkpCisgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPnRleHRBcmVhRGlk
RW5kRWRpdGluZyh0aGlzKTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjph
Ym91dFRvVW5sb2FkKCk7Cit9CisKK3ZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6ZGlzcGF0Y2hG
b2N1c0V2ZW50KCkKK3sKKyAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+dGV4dEFyZWFEaWRCZWdpbkVkaXRpbmcodGhpcyk7CisgICAgSFRN
TEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCk7Cit9CisK
K3ZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoKQoreworICAgIGlm
IChkb2N1bWVudCgpLT5mcmFtZSgpKQorICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT50ZXh0
QXJlYURpZEVuZEVkaXRpbmcodGhpcyk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoKTsKK30KKwogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAocmVuZGVyZXIo
KSAmJiAoZXZlbnQtPmlzTW91c2VFdmVudCgpIHx8IGV2ZW50LT5pc0RyYWdFdmVudCgpIHx8IGV2
ZW50LT5pc1doZWVsRXZlbnQoKSB8fCBldmVudC0+dHlwZSgpID09IGJsdXJFdmVudCkpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRleCBkNWIwNmZhLi45OWUyYjM4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTY5LDcgKzY5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgYm9vbCBp
c01vdXNlRm9jdXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1
c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZv
Y3VzRXZlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvdXRUb1VubG9hZCgpOwogCiAgICAgU3RyaW5n
IHZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmlu
ZGV4IGNkMjk3ZGYuLjg2MjFiNzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtOTM1LDYgKzkzNSwxOCBAQCBQYXNzUmVm
UHRyPENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbj4gRnJhbWU6OnNlbGVjdGlvbkNvbXB1dGVk
U3R5bGUoTm9kZSomIG5vZAogICAgIHJldHVybiBjb21wdXRlZFN0eWxlKHN0eWxlRWxlbWVudC5y
ZWxlYXNlKCkpOwogfQogCit2b2lkIEZyYW1lOjp0ZXh0QXJlYURpZEJlZ2luRWRpdGluZyhFbGVt
ZW50KiBlKQoreworICAgIGlmIChlZGl0b3IoKS0+Y2xpZW50KCkpCisgICAgICAgIGVkaXRvcigp
LT5jbGllbnQoKS0+ZGlkQmVnaW5FZGl0aW5nKCk7Cit9CisKK3ZvaWQgRnJhbWU6OnRleHRBcmVh
RGlkRW5kRWRpdGluZyhFbGVtZW50KiBlKQoreworICAgIGlmIChlZGl0b3IoKS0+Y2xpZW50KCkp
CisgICAgICAgIGVkaXRvcigpLT5jbGllbnQoKS0+ZGlkRW5kRWRpdGluZygpOworfQorCiB2b2lk
IEZyYW1lOjp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoRWxlbWVudCogZSkKIHsKICAgICBpZiAo
ZWRpdG9yKCktPmNsaWVudCgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCA1ZjI1YWZkLi42ZDYzZWNlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMjY5LDYg
KzI2OSw4IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uPiBzZWxlY3Rpb25Db21wdXRlZFN0eWxlKE5vZGUqJiBub2RlVG9SZW1vdmUpIGNvbnN0
OwogCisgICAgdm9pZCB0ZXh0QXJlYURpZEJlZ2luRWRpdGluZyhFbGVtZW50Kik7CisgICAgdm9p
ZCB0ZXh0QXJlYURpZEVuZEVkaXRpbmcoRWxlbWVudCopOwogICAgIHZvaWQgdGV4dEZpZWxkRGlk
QmVnaW5FZGl0aW5nKEVsZW1lbnQqKTsKICAgICB2b2lkIHRleHRGaWVsZERpZEVuZEVkaXRpbmco
RWxlbWVudCopOwogICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEZpZWxkKEVsZW1lbnQqKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcCBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAppbmRleCA5NGJhYzI4Li42ZWMw
NjcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCkBAIC01MzUsNiAr
NTM1LDExIEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKICAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1D
b250cm9sRWxlbWVudCo+KG5vZGUoKSk7CiAgICAgaWYgKG1fbXVsdGlMaW5lKSB7CiAgICAgICAg
IGVsZW1lbnQtPnNldFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKKyAgICAgICAgaWYgKCF3
YXNEaXJ0eSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmZvY3VzZWQoKSkKKyAgICAgICAg
ICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgZnJhbWUtPnRleHRBcmVhRGlkQmVnaW5FZGl0aW5nKGVsZW1lbnQpOworICAg
ICAgICB9CiAgICAgICAgIGlmIChlbGVtZW50LT5mb2N1c2VkKCkpCiAgICAgICAgICAgICBpZiAo
RnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgICAgICAgICBmcmFt
ZS0+dGV4dERpZENoYW5nZUluVGV4dEFyZWEoZWxlbWVudCk7CmRpZmYgLS1naXQgYS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAppbmRleCAxYWJjNTQyLi5lZTc4NjlmIDEwMDY0NAot
LS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCisrKyBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTQ3NCwxMSArNDc0
LDE1IEBAIEVkaXRvckNsaWVudFF0OjpFZGl0b3JDbGllbnRRdChRV2ViUGFnZSogcGFnZSkKIAog
dm9pZCBFZGl0b3JDbGllbnRRdDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKEVsZW1lbnQqKQog
eworICAgIGlmIChkdW1wRWRpdGluZ0NhbGxiYWNrcykKKyAgICAgICAgcHJpbnRmKCJFRElUSU5H
IERFTEVHQVRFOiB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGlu
Z05vdGlmaWNhdGlvblxuIik7CiAgICAgbV9lZGl0aW5nID0gdHJ1ZTsKIH0KIAogdm9pZCBFZGl0
b3JDbGllbnRRdDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyhFbGVtZW50KikKIHsKKyAgICBpZiAo
ZHVtcEVkaXRpbmdDYWxsYmFja3MpCisgICAgICAgIHByaW50ZigiRURJVElORyBERUxFR0FURTog
dGV4dEZpZWxkRGlkRW5kRWRpdGluZzpXZWJWaWV3RGlkRW5kRWRpdGluZ05vdGlmaWNhdGlvblxu
Iik7CiAgICAgbV9lZGl0aW5nID0gZmFsc2U7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22641</attachid>
            <date>2008-08-04 15:20:55 -0700</date>
            <delta_ts>2010-06-10 16:21:15 -0700</delta_ts>
            <desc>Same patch with ChangeLog</desc>
            <filename>editing_callbacks3.patch</filename>
            <type>text/plain</type>
            <size>8535</size>
            <attacher name="Joe Mason">joe</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTJjMGY5ZS4uZWRiYTExZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOC0wOC0wNCAgSm9lIE1hc29uICA8
am9lQHN0YWlrb3MubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI1NAor
CisgICAgICAgIENhbGwgZGlkQmVnaW5FZGl0aW5nIGFuZCBkaWRFbmRFZGl0aW5nIGNvbnNpc3Rl
bnRseSB3aGVuIGEgdGV4dGFyZWEKKyAgICAgICAgZ2FpbnMgb3IgbG9zZXMgZm9jdXMsIGFuZCB0
ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcgYW5kCisgICAgICAgIHRleHRGaWVsZERpZEVuZEVkaXRp
bmcgY29uc2lzdGVudGx5IHdoZW4gYSB0ZXh0ZmllbGQgZ2FpbnMgb3IgbG9zZXMKKyAgICAgICAg
Zm9jdXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6YWJvdXRUb1VubG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZl
bnQpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjphYm91dFRvVW5sb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudCk6CisgICAg
ICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9GcmFtZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6dGV4dEFyZWFEaWRCZWdpbkVkaXRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnRleHRBcmVhRGlkRW5kRWRpdGluZyk6CisgICAgICAg
ICogcGFnZS9GcmFtZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6c3VidHJlZUhhc0NoYW5n
ZWQpOgorCiAyMDA4LTA4LTAyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyY2U2NzM0Li5jM2Ey
ZDQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC0yNDI3LDkgKzI0MjcsNiBAQCBib29sIERvY3VtZW50OjpzZXRG
b2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKQogICAgICAgICB9CiAg
ICAgICAgIGlmICgob2xkRm9jdXNlZE5vZGUuZ2V0KCkgPT0gdGhpcykgJiYgb2xkRm9jdXNlZE5v
ZGUtPmhhc09uZVJlZigpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICAK
LSAgICAgICAgaWYgKG9sZEZvY3VzZWROb2RlLmdldCgpID09IG9sZEZvY3VzZWROb2RlLT5yb290
RWRpdGFibGVFbGVtZW50KCkpCi0gICAgICAgICAgICBmcmFtZSgpLT5lZGl0b3IoKS0+ZGlkRW5k
RWRpdGluZygpOwogICAgIH0KIAogICAgIGlmIChuZXdGb2N1c2VkTm9kZSkgewpAQCAtMjQ1Nyw5
ICsyNDU0LDYgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2Rl
PiBuZXdGb2N1c2VkTm9kZSkKICAgICAgICAgfQogICAgICAgICBtX2ZvY3VzZWROb2RlLT5zZXRG
b2N1cygpOwogCi0gICAgICAgIGlmIChtX2ZvY3VzZWROb2RlLmdldCgpID09IG1fZm9jdXNlZE5v
ZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSkKLSAgICAgICAgICAgIGZyYW1lKCktPmVkaXRvcigp
LT5kaWRCZWdpbkVkaXRpbmcoKTsKLQogICAgICAgICAvLyBld3csIEkgc3Vjay4gc2V0IHRoZSBx
dCBmb2N1cyBjb3JyZWN0bHkKICAgICAgICAgLy8gIyMjIGZpbmQgYSBiZXR0ZXIgcGxhY2UgaW4g
dGhlIGNvZGUgZm9yIHRoaXMKICAgICAgICAgaWYgKHZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDY5NjFhZDIuLjIwNTkxYzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKQEAgLTIzNCw2ICsyMzQsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFib3V0VG9V
bmxvYWQoKQogewogICAgIGlmIChpc1RleHRGaWVsZCgpICYmIGZvY3VzZWQoKSAmJiBkb2N1bWVu
dCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT50ZXh0RmllbGREaWRF
bmRFZGl0aW5nKHRoaXMpOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmFi
b3V0VG9VbmxvYWQoKTsKIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzaG91bGRVc2VJbnB1
dE1ldGhvZCgpIGNvbnN0CkBAIC0yNDUsOCArMjQ2LDExIEBAIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkKIHsKICAgICBpZiAoaXNUZXh0RmllbGQoKSkgewogICAg
ICAgICBzZXRBdXRvZmlsbGVkKGZhbHNlKTsKLSAgICAgICAgaWYgKGlucHV0VHlwZSgpID09IFBB
U1NXT1JEICYmIGRvY3VtZW50KCktPmZyYW1lKCkpCi0gICAgICAgICAgICBkb2N1bWVudCgpLT5z
ZXRVc2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFjdGl2ZSh0cnVlKTsKKyAgICAgICAgaWYgKGRv
Y3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGlmIChpbnB1dFR5cGUoKSA9PSBQQVNT
V09SRCkKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLT5zZXRVc2VTZWN1cmVLZXlib2FyZEVu
dHJ5V2hlbkFjdGl2ZSh0cnVlKTsKKyAgICAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPnRl
eHRGaWVsZERpZEJlZ2luRWRpdGluZyh0aGlzKTsKKyAgICAgICAgfQogICAgIH0KICAgICBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpkaXNwYXRjaEZvY3VzRXZlbnQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBkZTE2NWIzLi45NzAwN2YwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC0yMzEsNiArMjMxLDI3IEBAIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6dXBkYXRlRm9jdXNBcHBlYXJhbmNlKGJvb2wgcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5yZXZlYWxTZWxl
Y3Rpb24oKTsKIH0KIAordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjphYm91dFRvVW5sb2FkKCkK
K3sKKyAgICBpZiAoZm9jdXNlZCgpICYmIGRvY3VtZW50KCktPmZyYW1lKCkpCisgICAgICAgIGRv
Y3VtZW50KCktPmZyYW1lKCktPnRleHRBcmVhRGlkRW5kRWRpdGluZyh0aGlzKTsKKyAgICBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjphYm91dFRvVW5sb2FkKCk7Cit9CisKK3ZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkKK3sKKyAgICBpZiAoZG9j
dW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+dGV4dEFyZWFE
aWRCZWdpbkVkaXRpbmcodGhpcyk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCk7Cit9CisKK3ZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6
ZGlzcGF0Y2hCbHVyRXZlbnQoKQoreworICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpKQorICAg
ICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT50ZXh0QXJlYURpZEVuZEVkaXRpbmcodGhpcyk7Cisg
ICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoKTsK
K30KKwogdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBldmVudCkKIHsKICAgICBpZiAocmVuZGVyZXIoKSAmJiAoZXZlbnQtPmlzTW91c2VFdmVudCgp
IHx8IGV2ZW50LT5pc0RyYWdFdmVudCgpIHx8IGV2ZW50LT5pc1doZWVsRXZlbnQoKSB8fCBldmVu
dC0+dHlwZSgpID09IGJsdXJFdmVudCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRBcmVhRWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRl
eCBkNWIwNmZhLi45OWUyYjM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTY5
LDcgKzY5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCopOwogICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0
OworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hCbHVyRXZlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRm9jdXNBcHBl
YXJhbmNlKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uKTsKKyAgICB2aXJ0dWFsIHZvaWQg
YWJvdXRUb1VubG9hZCgpOwogCiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAgYi9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGNkMjk3ZGYuLjg2MjFiNzYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cApAQCAtOTM1LDYgKzkzNSwxOCBAQCBQYXNzUmVmUHRyPENTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbj4gRnJhbWU6OnNlbGVjdGlvbkNvbXB1dGVkU3R5bGUoTm9kZSomIG5vZAogICAgIHJldHVy
biBjb21wdXRlZFN0eWxlKHN0eWxlRWxlbWVudC5yZWxlYXNlKCkpOwogfQogCit2b2lkIEZyYW1l
Ojp0ZXh0QXJlYURpZEJlZ2luRWRpdGluZyhFbGVtZW50KiBlKQoreworICAgIGlmIChlZGl0b3Io
KS0+Y2xpZW50KCkpCisgICAgICAgIGVkaXRvcigpLT5jbGllbnQoKS0+ZGlkQmVnaW5FZGl0aW5n
KCk7Cit9CisKK3ZvaWQgRnJhbWU6OnRleHRBcmVhRGlkRW5kRWRpdGluZyhFbGVtZW50KiBlKQor
eworICAgIGlmIChlZGl0b3IoKS0+Y2xpZW50KCkpCisgICAgICAgIGVkaXRvcigpLT5jbGllbnQo
KS0+ZGlkRW5kRWRpdGluZygpOworfQorCiB2b2lkIEZyYW1lOjp0ZXh0RmllbGREaWRCZWdpbkVk
aXRpbmcoRWxlbWVudCogZSkKIHsKICAgICBpZiAoZWRpdG9yKCktPmNsaWVudCgpKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCA1
ZjI1YWZkLi42ZDYzZWNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMjY5LDYgKzI2OSw4IEBAIHB1YmxpYzoKIAogICAgIFBh
c3NSZWZQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBzZWxlY3Rpb25Db21wdXRlZFN0
eWxlKE5vZGUqJiBub2RlVG9SZW1vdmUpIGNvbnN0OwogCisgICAgdm9pZCB0ZXh0QXJlYURpZEJl
Z2luRWRpdGluZyhFbGVtZW50Kik7CisgICAgdm9pZCB0ZXh0QXJlYURpZEVuZEVkaXRpbmcoRWxl
bWVudCopOwogICAgIHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKEVsZW1lbnQqKTsKICAg
ICB2b2lkIHRleHRGaWVsZERpZEVuZEVkaXRpbmcoRWxlbWVudCopOwogICAgIHZvaWQgdGV4dERp
ZENoYW5nZUluVGV4dEZpZWxkKEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sLmNwcAppbmRleCA5NGJhYzI4Li42ZWMwNjcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2wuY3BwCkBAIC01MzUsNiArNTM1LDExIEBAIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2w6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBl
bGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KG5vZGUoKSk7CiAg
ICAgaWYgKG1fbXVsdGlMaW5lKSB7CiAgICAgICAgIGVsZW1lbnQtPnNldFZhbHVlTWF0Y2hlc1Jl
bmRlcmVyKGZhbHNlKTsKKyAgICAgICAgaWYgKCF3YXNEaXJ0eSkgeworICAgICAgICAgICAgaWYg
KGVsZW1lbnQtPmZvY3VzZWQoKSkKKyAgICAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0g
ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPnRleHRBcmVh
RGlkQmVnaW5FZGl0aW5nKGVsZW1lbnQpOworICAgICAgICB9CiAgICAgICAgIGlmIChlbGVtZW50
LT5mb2N1c2VkKCkpCiAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+
ZnJhbWUoKSkKICAgICAgICAgICAgICAgICBmcmFtZS0+dGV4dERpZENoYW5nZUluVGV4dEFyZWEo
ZWxlbWVudCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCBmNzkwNTFmLi42ODY0OWIzIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOC0w
OC0wNCAgSm9lIE1hc29uICA8am9lQHN0YWlrb3MubmV0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI1NAorCisgICAgICAgIENhbGwgZGlkQmVnaW5FZGl0aW5nIGFuZCBkaWRF
bmRFZGl0aW5nIGNvbnNpc3RlbnRseSB3aGVuIGEgdGV4dGFyZWEKKyAgICAgICAgZ2FpbnMgb3Ig
bG9zZXMgZm9jdXMsIGFuZCB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcgYW5kCisgICAgICAgIHRl
eHRGaWVsZERpZEVuZEVkaXRpbmcgY29uc2lzdGVudGx5IHdoZW4gYSB0ZXh0ZmllbGQgZ2FpbnMg
b3IgbG9zZXMKKyAgICAgICAgZm9jdXMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6dGV4dEZp
ZWxkRGlkQmVnaW5FZGl0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0
ZXh0RmllbGREaWRFbmRFZGl0aW5nKToKKwogMjAwOC0wOC0wNCAgRXJpayBCdW5jZSAgPGVsYnVu
Y2VAdGhlaGl2ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24uCmRpZmYgLS1naXQg
YS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwIGIvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAppbmRleCAxYWJjNTQyLi5lZTc4Njlm
IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3Bw
CisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTQ3
NCwxMSArNDc0LDE1IEBAIEVkaXRvckNsaWVudFF0OjpFZGl0b3JDbGllbnRRdChRV2ViUGFnZSog
cGFnZSkKIAogdm9pZCBFZGl0b3JDbGllbnRRdDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKEVs
ZW1lbnQqKQogeworICAgIGlmIChkdW1wRWRpdGluZ0NhbGxiYWNrcykKKyAgICAgICAgcHJpbnRm
KCJFRElUSU5HIERFTEVHQVRFOiB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJl
Z2luRWRpdGluZ05vdGlmaWNhdGlvblxuIik7CiAgICAgbV9lZGl0aW5nID0gdHJ1ZTsKIH0KIAog
dm9pZCBFZGl0b3JDbGllbnRRdDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyhFbGVtZW50KikKIHsK
KyAgICBpZiAoZHVtcEVkaXRpbmdDYWxsYmFja3MpCisgICAgICAgIHByaW50ZigiRURJVElORyBE
RUxFR0FURTogdGV4dEZpZWxkRGlkRW5kRWRpdGluZzpXZWJWaWV3RGlkRW5kRWRpdGluZ05vdGlm
aWNhdGlvblxuIik7CiAgICAgbV9lZGl0aW5nID0gZmFsc2U7CiB9CiAK
</data>
<flag name="review"
          id="10017"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>