<?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>41690</bug_id>
          
          <creation_ts>2010-07-06 06:02:30 -0700</creation_ts>
          <short_desc>[Qt] Close the WebProcess</short_desc>
          <delta_ts>2010-08-03 22:08:16 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kenneth</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>247043</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-06 06:02:30 -0700</bug_when>
    <thetext>The WebProcess should close itself when the client disconnected. We need to do this because the close message can not be delivered to the WebProcess when the client exited - at least I discovered it in Qt. In regard of this change the termination mechanism should be changed, for example wait for the WebProcess to exit instead of immediately killing it. I would implement it in a follow up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247047</commentid>
    <comment_count>1</comment_count>
      <attachid>60624</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-06 06:13:04 -0700</bug_when>
    <thetext>Created attachment 60624
proposed patch

This change contains the process closing mechanism and some final cleanup logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247094</commentid>
    <comment_count>2</comment_count>
      <attachid>60624</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-06 09:21:51 -0700</bug_when>
    <thetext>Comment on attachment 60624
proposed patch

Looks goood.

In the future I plan to have a special didClose handler that is executed directly on the work queue. This way we can still exit even if the web process is spinning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247096</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-06 09:26:55 -0700</bug_when>
    <thetext>regarding destroySharedMemory(), since we are using mmap, maybe unmapMemory would be a better name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247131</commentid>
    <comment_count>4</comment_count>
      <attachid>60640</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-06 10:45:48 -0700</bug_when>
    <thetext>Created attachment 60640
proposed patch

Ranamed destroySharedMemory to cleanup, create the temporal files in the temp dir. The changes was suggested by kenneth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247173</commentid>
    <comment_count>5</comment_count>
      <attachid>60640</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-06 12:23:53 -0700</bug_when>
    <thetext>Comment on attachment 60640
proposed patch

Rejecting patch 60640 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Kenneth Rohde Christiansen&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
pp
patching file WebKit2/Shared/qt/UpdateChunk.h
can&apos;t find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: WebKit2/UIProcess/Launcher/qt/WebProcessLauncherQt.cpp
|index 5e1e110..306eea3 100644
|--- WebKit2/UIProcess/Launcher/qt/WebProcessLauncherQt.cpp
|+++ WebKit2/UIProcess/Launcher/qt/WebProcessLauncherQt.cpp
--------------------------
No file to patch.  Skipping patch.
3 out of 3 hunks ignored

Full output: http://webkit-commit-queue.appspot.com/results/3381344</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247442</commentid>
    <comment_count>6</comment_count>
      <attachid>60624</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-07 03:15:57 -0700</bug_when>
    <thetext>Comment on attachment 60624
proposed patch

Cleared Anders Carlsson&apos;s review+ from obsolete attachment 60624 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248062</commentid>
    <comment_count>7</comment_count>
      <attachid>60848</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-08 01:15:24 -0700</bug_when>
    <thetext>Created attachment 60848
proposed patch - this time created on the trunk

The last one was created in the rebase-after-upstream branch, that&apos;s why it did not apply on trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248882</commentid>
    <comment_count>8</comment_count>
      <attachid>60640</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-09 03:16:35 -0700</bug_when>
    <thetext>Comment on attachment 60640
proposed patch

Cleared Kenneth Rohde Christiansen&apos;s review+ from obsolete attachment 60640 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256074</commentid>
    <comment_count>9</comment_count>
      <attachid>62582</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-26 09:46:25 -0700</bug_when>
    <thetext>Created attachment 62582
proposed patch (updated)

This time I kept only those changes that are related to the bug title - handling of the disconnection.
I will push the rest of the previous patch into a new bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256082</commentid>
    <comment_count>10</comment_count>
      <attachid>62582</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-26 10:02:36 -0700</bug_when>
    <thetext>Comment on attachment 62582
proposed patch (updated)

&gt;  
&gt; +void Connection::disconnectHandler()
&gt; +{
&gt; +    m_client-&gt;didClose(this);
&gt; +}
&gt; +

On which thread is this called?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256111</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-26 11:03:29 -0700</bug_when>
    <thetext>&gt; On which thread is this called?

Oops, on the WorkQueue&apos;s thread. It is strange that the patch worked for me (at least it did not crashed). I will fix it in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256173</commentid>
    <comment_count>12</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-26 12:41:26 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; On which thread is this called?
&gt; 
&gt; Oops, on the WorkQueue&apos;s thread. It is strange that the patch worked for me (at least it did not crashed). I will fix it in the next patch.

We actually quit the run loop when the last web page has been closed. Is there a reason why the web process doesn&apos;t exit when that happens?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256451</commentid>
    <comment_count>13</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-27 02:08:25 -0700</bug_when>
    <thetext>&gt; 
&gt; We actually quit the run loop when the last web page has been closed. Is there a reason why the web process doesn&apos;t exit when that happens?

Huh, seems like I get confused while working on this. There was various problems with our implementation of Connection but it seems like these have been fixed. So, to be able to exit from the web process when it gets the close message, we should just implement RunLoop::exit. The other parts of the patch assures that the web process would exit even when the client did not tear down correctly (killed or crashed). Don&apos;t you think this is something we should implement? Actually, I would introduce a common method of Connection what would look like this:
void didDisconnect()
{
    m_client-&gt;didClose();
}
Maybe didClose would be a better name. This way all port can schedule to call this on the main run loop when the connection became broken.
Do you like the idea? (I mean the whole concept not just the new function.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256465</commentid>
    <comment_count>14</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-27 02:23:57 -0700</bug_when>
    <thetext>Oh, I have just realized that connectionDidClose and dispatchConnectionDidClose fit my needs!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256507</commentid>
    <comment_count>15</comment_count>
      <attachid>62678</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-07-27 04:16:40 -0700</bug_when>
    <thetext>Created attachment 62678
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259868</commentid>
    <comment_count>16</comment_count>
      <attachid>62678</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-03 22:08:11 -0700</bug_when>
    <thetext>Comment on attachment 62678
proposed patch

Clearing flags on attachment: 62678

Committed r64628: &lt;http://trac.webkit.org/changeset/64628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>259869</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-03 22:08:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60624</attachid>
            <date>2010-07-06 06:13:04 -0700</date>
            <delta_ts>2010-07-07 03:15:57 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>close.diff</filename>
            <type>text/plain</type>
            <size>5984</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
Yzg5YTdjNC4uMjg5OWExNCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wNy0wNiAgQmFsYXpzIEtlbGVt
ZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBDbG9zZSB0aGUgV2ViUHJvY2VzcyB3aGVuIHRoZSBjbGll
bnQgZGlzY29ubmVjdGVkIGZyb20gdGhlIHNvY2tldC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE2OTAKKworICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVj
dGlvblF0LmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246Om5ld0Nvbm5lY3Rpb25I
YW5kbGVyKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OmRpc2Nvbm5lY3RIYW5kbGVy
KToKKyAgICAgICAgKiBQbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwOgorICAgICAgICAoUnVuTG9v
cDo6c3RvcCk6CisgICAgICAgICogU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXBkYXRlQ2h1bms6OmRlc3Ryb3lTaGFyZWRNZW1vcnkpOgorICAgICAgICAqIFNo
YXJlZC9xdC9VcGRhdGVDaHVuay5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9X
ZWJQcm9jZXNzTGF1bmNoZXJRdC5jcHA6CisgICAgICAgICh3ZWJQcm9jZXNzTWFpbik6CisKIDIw
MTAtMDctMDEgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFdmVuIG1vcmUgV2luZG93cyBidWlsZCBmaXhpbmcuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nv
bm5lY3Rpb24uaAppbmRleCA1ODI3ZDNkLi4yMTQ4MjQzIDEwMDY0NAotLS0gYS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmgKQEAgLTE3Niw2ICsxNzYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgb3Bl
bkNvbm5lY3Rpb25IYW5kbGVyKCk7CiAgICAgdm9pZCBuZXdDb25uZWN0aW9uSGFuZGxlcigpOwog
ICAgIHZvaWQgcmVhZHlSZWFkSGFuZGxlcigpOworICAgIHZvaWQgZGlzY29ubmVjdEhhbmRsZXIo
KTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiBtX3JlYWRCdWZmZXI7CiAgICAgc2l6ZV90IG1fY3Vy
cmVudE1lc3NhZ2VTaXplOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL3F0
L0Nvbm5lY3Rpb25RdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlv
blF0LmNwcAppbmRleCA3NGY2YzI1Li4zZTY1M2E3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQor
ICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTYwLDggKzYxLDE1IEBAIHZvaWQgQ29ubmVjdGlvbjo6bmV3
Q29ubmVjdGlvbkhhbmRsZXIoKQogewogICAgIG1fc29ja2V0ID0gbV9zZXJ2ZXItPm5leHRQZW5k
aW5nQ29ubmVjdGlvbigpOwogICAgIG1faXNDb25uZWN0ZWQgPSBtX3NvY2tldDsKLSAgICBpZiAo
bV9pc0Nvbm5lY3RlZCkKKyAgICBpZiAobV9pc0Nvbm5lY3RlZCkgewogICAgICAgICBtX2Nvbm5l
Y3Rpb25RdWV1ZS5jb25uZWN0U2lnbmFsKG1fc29ja2V0LCBTSUdOQUwocmVhZHlSZWFkKCkpLCBX
b3JrSXRlbTo6Y3JlYXRlKHRoaXMsICZDb25uZWN0aW9uOjpyZWFkeVJlYWRIYW5kbGVyKSk7Cisg
ICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLmNvbm5lY3RTaWduYWwobV9zb2NrZXQsIFNJR05BTChk
aXNjb25uZWN0ZWQoKSksIFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNvbm5lY3Rpb246OmRpc2Nv
bm5lY3RIYW5kbGVyKSk7CisgICAgfQorfQorCit2b2lkIENvbm5lY3Rpb246OmRpc2Nvbm5lY3RI
YW5kbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+ZGlkQ2xvc2UodGhpcyk7CiB9CiAKIHZvaWQgQ29u
bmVjdGlvbjo6cmVhZHlSZWFkSGFuZGxlcigpCmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3Jt
L3F0L1J1bkxvb3BRdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKaW5k
ZXggNjlkNGRiMi4uNDBmYjJhZiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5M
b29wUXQuY3BwCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcApAQCAtMSw2
ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkg
b2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY2LDcgKzY3LDcg
QEAgdm9pZCBSdW5Mb29wOjpydW4oKQogCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQogewotICAgIC8v
IGltcGxlbWVudAorICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQoMCk7CiB9CiAKIFJ1bkxvb3A6
OlJ1bkxvb3AoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3Bw
IGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwCmluZGV4IDQ0ZDExYjIuLjY1ZTQy
ODQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcAorKysgYi9X
ZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMDEsNiArMTAyLDE5IEBAIHN0YXRpYyBNYXBw
ZWRNZW1vcnkqIG1hcEZpbGUoUVN0cmluZyBmaWxlTmFtZSwgc2l6ZV90IHNpemUpCiAgICAgcmV0
dXJuICZtbWFwUG9vbC0+bGFzdCgpOwogfQogCit2b2lkIFVwZGF0ZUNodW5rOjpkZXN0cm95U2hh
cmVkTWVtb3J5KCkKK3sKKyAgICBpZiAoIW1tYXBQb29sKQorICAgICAgICByZXR1cm47CisKKyAg
ICBzaXplX3Qgc2l6ZSA9IG1tYXBQb29sLT5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgTWFwcGVkTWVtb3J5JiBjaHVuayA9IG1tYXBQb29s
LT5hdChpKTsKKyAgICAgICAgY2h1bmsuZmlsZS0+dW5tYXAoY2h1bmsuZGF0YSk7CisgICAgICAg
IGRlbGV0ZSBjaHVuay5maWxlOworICAgIH0KK30KKwogVXBkYXRlQ2h1bms6OlVwZGF0ZUNodW5r
KCkKICAgICA6IG1fbWFwcGVkTWVtb3J5KDApCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJl
ZC9xdC9VcGRhdGVDaHVuay5oIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuaAppbmRl
eCBkMTRmNjkwLi5lNzc2YTNmIDEwMDY0NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVD
aHVuay5oCisrKyBiL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmgKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5IG9mIFN6
ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Miw2ICs1Myw4IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwg
VXBkYXRlQ2h1bmsmKTsKICAgICAKICAgICBRSW1hZ2UgY3JlYXRlSW1hZ2UoKTsKKworICAgIHN0
YXRpYyB2b2lkIGRlc3Ryb3lTaGFyZWRNZW1vcnkoKTsKICAgICAKIHByaXZhdGU6CiAgICAgc2l6
ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgoKSAqIDQgKiBtX3JlY3QuaGVp
Z2h0KCk7IH0KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1dlYlBy
b2Nlc3NMYXVuY2hlclF0LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1dlYlBy
b2Nlc3NMYXVuY2hlclF0LmNwcAppbmRleCA1ZTFlMTEwLi42ZWM1ZGIzIDEwMDY0NAotLS0gYS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9XZWJQcm9jZXNzTGF1bmNoZXJRdC5jcHAKKysr
IGIvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvV2ViUHJvY2Vzc0xhdW5jaGVyUXQuY3Bw
CkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVW5p
dmVyc2l0eSBvZiBTemVnZWQKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKKyNpbmNsdWRlICJVcGRhdGVDaHVuay5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CkBAIC0xNDksNyArMTUxLDcgQEAgUVdFQktJVF9FWFBPUlQgaW50
IHdlYlByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIAogICAgIFJ1bkxvb3A6OnJ1
bigpOwogCi0gICAgLy8gRklYTUU6IERvIG1vcmUgY2xlYW51cCBoZXJlLgorICAgIFdlYktpdDo6
VXBkYXRlQ2h1bms6OmRlc3Ryb3lTaGFyZWRNZW1vcnkoKTsKIAogICAgIHJldHVybiAwOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60640</attachid>
            <date>2010-07-06 10:45:48 -0700</date>
            <delta_ts>2010-07-09 03:16:35 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>close2.diff</filename>
            <type>text/plain</type>
            <size>6604</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
Yzg5YTdjNC4uZDgyOWQ3MCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0wNiAgQmFsYXpzIEtlbGVt
ZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBDbG9zZSB0aGUgV2ViUHJvY2VzcyB3aGVuIHRoZSBjbGll
bnQgZGlzY29ubmVjdGVkIGZyb20gdGhlIHNvY2tldC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE2OTAKKworICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVj
dGlvblF0LmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246Om5ld0Nvbm5lY3Rpb25I
YW5kbGVyKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OmRpc2Nvbm5lY3RIYW5kbGVy
KToKKyAgICAgICAgKiBQbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwOgorICAgICAgICAoUnVuTG9v
cDo6c3RvcCk6CisgICAgICAgICogU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6bWFwTWVtb3J5KToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQ2h1bms6OmNsZWFu
dXApOgorICAgICAgICAqIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9MYXVuY2hlci9xdC9XZWJQcm9jZXNzTGF1bmNoZXJRdC5jcHA6CisgICAgICAgICh3ZWJQ
cm9jZXNzTWFpbik6CisKIDIwMTAtMDctMDEgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFw
cGxlLmNvbT4KIAogICAgICAgICBFdmVuIG1vcmUgV2luZG93cyBidWlsZCBmaXhpbmcuCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAppbmRleCA1ODI3ZDNkLi4yMTQ4MjQzIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCisrKyBiL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTE3Niw2ICsxNzYsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgb3BlbkNvbm5lY3Rpb25IYW5kbGVyKCk7CiAgICAgdm9pZCBuZXdDb25u
ZWN0aW9uSGFuZGxlcigpOwogICAgIHZvaWQgcmVhZHlSZWFkSGFuZGxlcigpOworICAgIHZvaWQg
ZGlzY29ubmVjdEhhbmRsZXIoKTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiBtX3JlYWRCdWZmZXI7
CiAgICAgc2l6ZV90IG1fY3VycmVudE1lc3NhZ2VTaXplOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL3F0L0Nvbm5lY3Rpb25RdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL0Nv
cmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAppbmRleCA3NGY2YzI1Li4zZTY1M2E3IDEwMDY0NAot
LS0gYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAorKysgYi9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcApAQCAtMSw2ICsxLDcg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3pl
Z2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYwLDggKzYxLDE1IEBAIHZv
aWQgQ29ubmVjdGlvbjo6bmV3Q29ubmVjdGlvbkhhbmRsZXIoKQogewogICAgIG1fc29ja2V0ID0g
bV9zZXJ2ZXItPm5leHRQZW5kaW5nQ29ubmVjdGlvbigpOwogICAgIG1faXNDb25uZWN0ZWQgPSBt
X3NvY2tldDsKLSAgICBpZiAobV9pc0Nvbm5lY3RlZCkKKyAgICBpZiAobV9pc0Nvbm5lY3RlZCkg
ewogICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZS5jb25uZWN0U2lnbmFsKG1fc29ja2V0LCBTSUdO
QUwocmVhZHlSZWFkKCkpLCBXb3JrSXRlbTo6Y3JlYXRlKHRoaXMsICZDb25uZWN0aW9uOjpyZWFk
eVJlYWRIYW5kbGVyKSk7CisgICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLmNvbm5lY3RTaWduYWwo
bV9zb2NrZXQsIFNJR05BTChkaXNjb25uZWN0ZWQoKSksIFdvcmtJdGVtOjpjcmVhdGUodGhpcywg
JkNvbm5lY3Rpb246OmRpc2Nvbm5lY3RIYW5kbGVyKSk7CisgICAgfQorfQorCit2b2lkIENvbm5l
Y3Rpb246OmRpc2Nvbm5lY3RIYW5kbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+ZGlkQ2xvc2UodGhp
cyk7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6cmVhZHlSZWFkSGFuZGxlcigpCmRpZmYgLS1naXQg
YS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3JtL3F0
L1J1bkxvb3BRdC5jcHAKaW5kZXggNjlkNGRiMi4uNDBmYjJhZiAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChD
KSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTY2LDcgKzY3LDcgQEAgdm9pZCBSdW5Mb29wOjpydW4oKQogCiB2b2lkIFJ1bkxvb3A6
OnN0b3AoKQogewotICAgIC8vIGltcGxlbWVudAorICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQo
MCk7CiB9CiAKIFJ1bkxvb3A6OlJ1bkxvb3AoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQv
cXQvVXBkYXRlQ2h1bmsuY3BwIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwCmlu
ZGV4IDQ0ZDExYjIuLmVhY2Y5MDkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0
ZUNodW5rLmNwcAorKysgYi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJzaXR5
IG9mIFN6ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw2ICszMiw3
IEBACiAjaW5jbHVkZSAiQXR0YWNobWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgPFFEZWJ1Zz4KKyNpbmNsdWRlIDxRRGlyPgogI2luY2x1ZGUgPFFG
aWxlPgogI2luY2x1ZGUgPFFJbWFnZT4KICNpbmNsdWRlIDxRVGVtcG9yYXJ5RmlsZT4KQEAgLTY5
LDcgKzcxLDcgQEAgc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwTWVtb3J5KHNpemVfdCBzaXplKQog
ICAgIE1hcHBlZE1lbW9yeSBuZXdNYXA7CiAgICAgbmV3TWFwLnNpemUgPSBzaXplOwogICAgIC8v
IEZJWE1FOiBDbGVhbiB1cCBvciByZXVzZSBsZWZ0b3ZlciBtYXAgZmlsZXMgZnJvbSB0aGUgZGlz
ay4KLSAgICBuZXdNYXAuZmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZSgiV2ViS2l0MlVwZGF0ZUNo
dW5rIik7CisgICAgbmV3TWFwLmZpbGUgPSBuZXcgUVRlbXBvcmFyeUZpbGUoUURpcjo6dGVtcFBh
dGgoKSArICJXZWJLaXQyVXBkYXRlQ2h1bmsiKTsKICAgICBuZXdNYXAuZmlsZS0+b3BlbihRSU9E
ZXZpY2U6OlJlYWRXcml0ZSk7CiAgICAgbmV3TWFwLmZpbGUtPnJlc2l6ZShuZXdNYXAuc2l6ZSk7
CiAgICAgbmV3TWFwLmRhdGEgPSBuZXdNYXAuZmlsZS0+bWFwKDAsIG5ld01hcC5zaXplKTsKQEAg
LTEwMSw2ICsxMDMsMTkgQEAgc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwRmlsZShRU3RyaW5nIGZp
bGVOYW1lLCBzaXplX3Qgc2l6ZSkKICAgICByZXR1cm4gJm1tYXBQb29sLT5sYXN0KCk7CiB9CiAK
K3ZvaWQgVXBkYXRlQ2h1bms6OmNsZWFudXAoKQoreworICAgIGlmICghbW1hcFBvb2wpCisgICAg
ICAgIHJldHVybjsKKworICAgIHNpemVfdCBzaXplID0gbW1hcFBvb2wtPnNpemUoKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBNYXBwZWRNZW1vcnkm
IGNodW5rID0gbW1hcFBvb2wtPmF0KGkpOworICAgICAgICBjaHVuay5maWxlLT51bm1hcChjaHVu
ay5kYXRhKTsKKyAgICAgICAgZGVsZXRlIGNodW5rLmZpbGU7CisgICAgfQorfQorCiBVcGRhdGVD
aHVuazo6VXBkYXRlQ2h1bmsoKQogICAgIDogbV9tYXBwZWRNZW1vcnkoMCkKIHsKZGlmZiAtLWdp
dCBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmggYi9XZWJLaXQyL1NoYXJlZC9xdC9V
cGRhdGVDaHVuay5oCmluZGV4IGQxNGY2OTAuLjJjNWJlZDAgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
U2hhcmVkL3F0L1VwZGF0ZUNodW5rLmgKKysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1
bmsuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEw
IFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTUyLDYgKzUzLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImLCBVcGRhdGVDaHVuayYpOwogICAgIAogICAgIFFJbWFnZSBjcmVhdGVJ
bWFnZSgpOworCisgICAgc3RhdGljIHZvaWQgY2xlYW51cCgpOwogICAgIAogcHJpdmF0ZToKICAg
ICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC53aWR0aCgpICogNCAqIG1fcmVj
dC5oZWlnaHQoKTsgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQv
V2ViUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQv
V2ViUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCmluZGV4IDVlMWUxMTAuLjMwNmVlYTMgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1dlYlByb2Nlc3NMYXVuY2hlclF0LmNw
cAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9XZWJQcm9jZXNzTGF1bmNoZXJR
dC5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOCw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUnVu
TG9vcC5oIgorI2luY2x1ZGUgIlVwZGF0ZUNodW5rLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KICNpbmNsdWRlIDxydW50aW1l
L0luaXRpYWxpemVUaHJlYWRpbmcuaD4KQEAgLTE0OSw3ICsxNTEsNyBAQCBRV0VCS0lUX0VYUE9S
VCBpbnQgd2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogCiAgICAgUnVuTG9v
cDo6cnVuKCk7CiAKLSAgICAvLyBGSVhNRTogRG8gbW9yZSBjbGVhbnVwIGhlcmUuCisgICAgV2Vi
S2l0OjpVcGRhdGVDaHVuazo6Y2xlYW51cCgpOwogCiAgICAgcmV0dXJuIDA7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60848</attachid>
            <date>2010-07-08 01:15:24 -0700</date>
            <delta_ts>2010-07-26 09:46:25 -0700</delta_ts>
            <desc>proposed patch - this time created on the trunk</desc>
            <filename>close3.diff</filename>
            <type>text/plain</type>
            <size>6655</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NzM3YTRmMS4uM2FmMWU3YyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0wOCAgQmFsYXpzIEtlbGVt
ZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBDbG9zZSB0aGUgV2ViUHJvY2VzcyB3aGVuIHRoZSBjbGll
bnQgZGlzY29ubmVjdGVkIGZyb20gdGhlIHNvY2tldC4KKworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE2OTAKKworICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVj
dGlvblF0LmNwcDoKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246Om5ld0Nvbm5lY3Rpb25I
YW5kbGVyKToKKyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OmRpc2Nvbm5lY3RIYW5kbGVy
KToKKyAgICAgICAgKiBQbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwOgorICAgICAgICAoUnVuTG9v
cDo6c3RvcCk6CisgICAgICAgICogU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6bWFwTWVtb3J5KToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQ2h1bms6OmNsZWFu
dXApOgorICAgICAgICAqIFNoYXJlZC9xdC9VcGRhdGVDaHVuay5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6CisgICAgICAgICh3ZWJQcm9j
ZXNzTWFpbik6CisKIDIwMTAtMDctMDcgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRp
ZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAppbmRleCA1ODI3ZDNkLi4yMTQ4MjQzIDEw
MDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCisrKyBiL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTE3Niw2ICsxNzYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgb3BlbkNvbm5lY3Rpb25IYW5kbGVyKCk7CiAgICAgdm9pZCBuZXdD
b25uZWN0aW9uSGFuZGxlcigpOwogICAgIHZvaWQgcmVhZHlSZWFkSGFuZGxlcigpOworICAgIHZv
aWQgZGlzY29ubmVjdEhhbmRsZXIoKTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiBtX3JlYWRCdWZm
ZXI7CiAgICAgc2l6ZV90IG1fY3VycmVudE1lc3NhZ2VTaXplOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL3F0L0Nvbm5lY3Rpb25RdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAppbmRleCA0YzgzMzc5Li5mMTFjMWE4IDEwMDY0
NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcAorKysg
Yi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVjdGlvblF0LmNwcApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2Yg
U3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDggKzYwLDE1IEBA
IHZvaWQgQ29ubmVjdGlvbjo6bmV3Q29ubmVjdGlvbkhhbmRsZXIoKQogewogICAgIG1fc29ja2V0
ID0gbV9zZXJ2ZXItPm5leHRQZW5kaW5nQ29ubmVjdGlvbigpOwogICAgIG1faXNDb25uZWN0ZWQg
PSBtX3NvY2tldDsKLSAgICBpZiAobV9pc0Nvbm5lY3RlZCkKKyAgICBpZiAobV9pc0Nvbm5lY3Rl
ZCkgewogICAgICAgICBtX2Nvbm5lY3Rpb25RdWV1ZS5jb25uZWN0U2lnbmFsKG1fc29ja2V0LCBT
SUdOQUwocmVhZHlSZWFkKCkpLCBXb3JrSXRlbTo6Y3JlYXRlKHRoaXMsICZDb25uZWN0aW9uOjpy
ZWFkeVJlYWRIYW5kbGVyKSk7CisgICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLmNvbm5lY3RTaWdu
YWwobV9zb2NrZXQsIFNJR05BTChkaXNjb25uZWN0ZWQoKSksIFdvcmtJdGVtOjpjcmVhdGUodGhp
cywgJkNvbm5lY3Rpb246OmRpc2Nvbm5lY3RIYW5kbGVyKSk7CisgICAgfQorfQorCit2b2lkIENv
bm5lY3Rpb246OmRpc2Nvbm5lY3RIYW5kbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+ZGlkQ2xvc2Uo
dGhpcyk7CiB9CiAKIHZvaWQgQ29ubmVjdGlvbjo6cmVhZHlSZWFkSGFuZGxlcigpCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAgYi9XZWJLaXQyL1BsYXRmb3Jt
L3F0L1J1bkxvb3BRdC5jcHAKaW5kZXggNjlkNGRiMi4uNDBmYjJhZiAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vcXQv
UnVuTG9vcFF0LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0
IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTY2LDcgKzY3LDcgQEAgdm9pZCBSdW5Mb29wOjpydW4oKQogCiB2b2lkIFJ1bkxv
b3A6OnN0b3AoKQogewotICAgIC8vIGltcGxlbWVudAorICAgIFFDb3JlQXBwbGljYXRpb246OmV4
aXQoMCk7CiB9CiAKIFJ1bkxvb3A6OlJ1bkxvb3AoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFy
ZWQvcXQvVXBkYXRlQ2h1bmsuY3BwIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3Bw
CmluZGV4IDQ0ZDExYjIuLmVhY2Y5MDkgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL3F0L1Vw
ZGF0ZUNodW5rLmNwcAorKysgYi9XZWJLaXQyL1NoYXJlZC9xdC9VcGRhdGVDaHVuay5jcHAKQEAg
LTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2ZXJz
aXR5IG9mIFN6ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiQXR0YWNobWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgPFFEZWJ1Zz4KKyNpbmNsdWRlIDxRRGlyPgogI2luY2x1ZGUg
PFFGaWxlPgogI2luY2x1ZGUgPFFJbWFnZT4KICNpbmNsdWRlIDxRVGVtcG9yYXJ5RmlsZT4KQEAg
LTY5LDcgKzcxLDcgQEAgc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwTWVtb3J5KHNpemVfdCBzaXpl
KQogICAgIE1hcHBlZE1lbW9yeSBuZXdNYXA7CiAgICAgbmV3TWFwLnNpemUgPSBzaXplOwogICAg
IC8vIEZJWE1FOiBDbGVhbiB1cCBvciByZXVzZSBsZWZ0b3ZlciBtYXAgZmlsZXMgZnJvbSB0aGUg
ZGlzay4KLSAgICBuZXdNYXAuZmlsZSA9IG5ldyBRVGVtcG9yYXJ5RmlsZSgiV2ViS2l0MlVwZGF0
ZUNodW5rIik7CisgICAgbmV3TWFwLmZpbGUgPSBuZXcgUVRlbXBvcmFyeUZpbGUoUURpcjo6dGVt
cFBhdGgoKSArICJXZWJLaXQyVXBkYXRlQ2h1bmsiKTsKICAgICBuZXdNYXAuZmlsZS0+b3BlbihR
SU9EZXZpY2U6OlJlYWRXcml0ZSk7CiAgICAgbmV3TWFwLmZpbGUtPnJlc2l6ZShuZXdNYXAuc2l6
ZSk7CiAgICAgbmV3TWFwLmRhdGEgPSBuZXdNYXAuZmlsZS0+bWFwKDAsIG5ld01hcC5zaXplKTsK
QEAgLTEwMSw2ICsxMDMsMTkgQEAgc3RhdGljIE1hcHBlZE1lbW9yeSogbWFwRmlsZShRU3RyaW5n
IGZpbGVOYW1lLCBzaXplX3Qgc2l6ZSkKICAgICByZXR1cm4gJm1tYXBQb29sLT5sYXN0KCk7CiB9
CiAKK3ZvaWQgVXBkYXRlQ2h1bms6OmNsZWFudXAoKQoreworICAgIGlmICghbW1hcFBvb2wpCisg
ICAgICAgIHJldHVybjsKKworICAgIHNpemVfdCBzaXplID0gbW1hcFBvb2wtPnNpemUoKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBNYXBwZWRNZW1v
cnkmIGNodW5rID0gbW1hcFBvb2wtPmF0KGkpOworICAgICAgICBjaHVuay5maWxlLT51bm1hcChj
aHVuay5kYXRhKTsKKyAgICAgICAgZGVsZXRlIGNodW5rLmZpbGU7CisgICAgfQorfQorCiBVcGRh
dGVDaHVuazo6VXBkYXRlQ2h1bmsoKQogICAgIDogbV9tYXBwZWRNZW1vcnkoMCkKIHsKZGlmZiAt
LWdpdCBhL1dlYktpdDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmggYi9XZWJLaXQyL1NoYXJlZC9x
dC9VcGRhdGVDaHVuay5oCmluZGV4IGQxNGY2OTAuLjk2ODAzYTUgMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmgKKysrIGIvV2ViS2l0Mi9TaGFyZWQvcXQvVXBkYXRl
Q2h1bmsuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAy
MDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTUwLDkgKzUxLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXImLCBVcGRhdGVDaHVuayYpOwotICAgIAorCiAgICAgUUltYWdlIGNyZWF0
ZUltYWdlKCk7Ci0gICAgCisKKyAgICBzdGF0aWMgdm9pZCBjbGVhbnVwKCk7CisKIHByaXZhdGU6
CiAgICAgc2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlY3Qud2lkdGgoKSAqIDQgKiBt
X3JlY3QuaGVpZ2h0KCk7IH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
cXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCmluZGV4IDIzYWYxZjAuLjJkMGExYjQgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAor
KysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAK
QEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAxMCBVbml2
ZXJzaXR5IG9mIFN6ZWdlZAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2
ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5o
IgorI2luY2x1ZGUgIlVwZGF0ZUNodW5rLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KQEAgLTE0OCw3ICsxNTAsNyBAQCBRV0VCS0lUX0VYUE9SVCBpbnQg
d2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogCiAgICAgUnVuTG9vcDo6cnVu
KCk7CiAKLSAgICAvLyBGSVhNRTogRG8gbW9yZSBjbGVhbnVwIGhlcmUuCisgICAgV2ViS2l0OjpV
cGRhdGVDaHVuazo6Y2xlYW51cCgpOwogCiAgICAgcmV0dXJuIDA7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62582</attachid>
            <date>2010-07-26 09:46:25 -0700</date>
            <delta_ts>2010-07-26 11:04:49 -0700</delta_ts>
            <desc>proposed patch (updated)</desc>
            <filename>close_wp_ch.diff</filename>
            <type>text/plain</type>
            <size>2752</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODI3YmUxYy4uZmI1M2RhYyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNy0yNiAgQmFsYXpzIEtlbGVt
ZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBDbG9zZSB0aGUgV2ViUHJvY2VzcyB3aGVuIHRoZSBjbGll
bnQgZGlzY29ubmVjdHMgZnJvbSB0aGUgc29ja2V0CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNjkwCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL3F0L0Nvbm5lY3Rp
b25RdC5jcHA6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpkaXNjb25uZWN0SGFuZGxl
cik6CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpvcGVuKToKKyAgICAgICAgKiBQbGF0
Zm9ybS9xdC9SdW5Mb29wUXQuY3BwOgorICAgICAgICAoUnVuTG9vcDo6c3RvcCk6CisKIDIwMTAt
MDctMTkgQmFsYXpzIEtlbGVtZW4gPGtiQGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
Q29ubmVjdGlvbi5oCmluZGV4IGVhY2U2ZTkuLjcwY2YxNzggMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaApAQCAtMTczLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAjZWxpZiBQTEFU
Rk9STShRVCkKICAgICAvLyBDYWxsZWQgb24gdGhlIGNvbm5lY3Rpb24gcXVldWUuCiAgICAgdm9p
ZCByZWFkeVJlYWRIYW5kbGVyKCk7CisgICAgdm9pZCBkaXNjb25uZWN0SGFuZGxlcigpOwogCiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IG1fcmVhZEJ1ZmZlcjsKICAgICBzaXplX3QgbV9jdXJyZW50TWVz
c2FnZVNpemU7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvcXQvQ29ubmVj
dGlvblF0LmNwcCBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9xdC9Db25uZWN0aW9uUXQuY3Bw
CmluZGV4IDJlZTIwYmMuLjdkNzY4YmEgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9xdC9Db25uZWN0aW9uUXQuY3BwCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9x
dC9Db25uZWN0aW9uUXQuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtODMsNiArODQsMTEgQEAgdm9pZCBDb25uZWN0aW9uOjpyZWFkeVJlYWRI
YW5kbGVyKCkKICAgICB9CiB9CiAKK3ZvaWQgQ29ubmVjdGlvbjo6ZGlzY29ubmVjdEhhbmRsZXIo
KQoreworICAgIG1fY2xpZW50LT5kaWRDbG9zZSh0aGlzKTsKK30KKwogYm9vbCBDb25uZWN0aW9u
OjpvcGVuKCkKIHsKICAgICBBU1NFUlQoIW1fc29ja2V0KTsKQEAgLTk5LDYgKzEwNSw3IEBAIGJv
b2wgQ29ubmVjdGlvbjo6b3BlbigpCiAgICAgICAgIG1fc29ja2V0LT5jb25uZWN0VG9TZXJ2ZXIo
bV9zZXJ2ZXJOYW1lKTsKICAgICAgICAgbV9jb25uZWN0aW9uUXVldWUubW92ZVNvY2tldFRvV29y
a1RocmVhZChtX3NvY2tldCk7CiAgICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLmNvbm5lY3RTaWdu
YWwobV9zb2NrZXQsIFNJR05BTChyZWFkeVJlYWQoKSksIFdvcmtJdGVtOjpjcmVhdGUodGhpcywg
JkNvbm5lY3Rpb246OnJlYWR5UmVhZEhhbmRsZXIpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uUXVl
dWUuY29ubmVjdFNpZ25hbChtX3NvY2tldCwgU0lHTkFMKGRpc2Nvbm5lY3RlZCgpKSwgV29ya0l0
ZW06OmNyZWF0ZSh0aGlzLCAmQ29ubmVjdGlvbjo6ZGlzY29ubmVjdEhhbmRsZXIpKTsKICAgICAg
ICAgbV9pc0Nvbm5lY3RlZCA9IG1fc29ja2V0LT53YWl0Rm9yQ29ubmVjdGVkKCk7CiAgICAgfQog
ICAgIHJldHVybiBtX2lzQ29ubmVjdGVkOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9x
dC9SdW5Mb29wUXQuY3BwIGIvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCmluZGV4
IDY5ZDRkYjIuLjQ5NTM5OGQgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9v
cFF0LmNwcAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKQEAgLTY2LDcg
KzY2LDcgQEAgdm9pZCBSdW5Mb29wOjpydW4oKQogCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQogewot
ICAgIC8vIGltcGxlbWVudAorICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQoKTsKIH0KIAogUnVu
TG9vcDo6UnVuTG9vcCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62678</attachid>
            <date>2010-07-27 04:16:40 -0700</date>
            <delta_ts>2010-08-03 22:08:10 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>close_ch.diff</filename>
            <type>text/plain</type>
            <size>1775</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ODI3YmUxYy4uMmVmOTJkOCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNy0yNyAgQmFsYXpzIEtlbGVt
ZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBDbG9zZSB0aGUgV2ViUHJvY2VzcworCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTY5MAorCisgICAgICAgICog
UGxhdGZvcm0vQ29yZUlQQy9xdC9Db25uZWN0aW9uUXQuY3BwOgorICAgICAgICAoQ29yZUlQQzo6
Q29ubmVjdGlvbjo6b3Blbik6IFJlZ2lzdGVyZWQgY29ubmVjdGlvbkRpZENsb3NlIHRvIGJlIGNh
bGxlZCB3aGVuIHRoZSBjbGllbnQgZGlzY29ubmVjdGVkLgorICAgICAgICAqIFBsYXRmb3JtL3F0
L1J1bkxvb3BRdC5jcHA6CisgICAgICAgIChSdW5Mb29wOjpzdG9wKTogSW1wbGVtZW50ZWQgYnkg
Y2FsbGluZyBRQ29yZUFwcGxpY2F0aW9uOjpleGl0LgorCiAyMDEwLTA3LTE5IEJhbGF6cyBLZWxl
bWVuIDxrYkBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMv
cXQvQ29ubmVjdGlvblF0LmNwcCBiL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9xdC9Db25uZWN0
aW9uUXQuY3BwCmluZGV4IDJlZTIwYmMuLmNjOWUzN2QgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9xdC9Db25uZWN0aW9uUXQuY3BwCisrKyBiL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9xdC9Db25uZWN0aW9uUXQuY3BwCkBAIC05OSw2ICs5OSw3IEBAIGJvb2wgQ29ubmVj
dGlvbjo6b3BlbigpCiAgICAgICAgIG1fc29ja2V0LT5jb25uZWN0VG9TZXJ2ZXIobV9zZXJ2ZXJO
YW1lKTsKICAgICAgICAgbV9jb25uZWN0aW9uUXVldWUubW92ZVNvY2tldFRvV29ya1RocmVhZCht
X3NvY2tldCk7CiAgICAgICAgIG1fY29ubmVjdGlvblF1ZXVlLmNvbm5lY3RTaWduYWwobV9zb2Nr
ZXQsIFNJR05BTChyZWFkeVJlYWQoKSksIFdvcmtJdGVtOjpjcmVhdGUodGhpcywgJkNvbm5lY3Rp
b246OnJlYWR5UmVhZEhhbmRsZXIpKTsKKyAgICAgICAgbV9jb25uZWN0aW9uUXVldWUuY29ubmVj
dFNpZ25hbChtX3NvY2tldCwgU0lHTkFMKGRpc2Nvbm5lY3RlZCgpKSwgV29ya0l0ZW06OmNyZWF0
ZSh0aGlzLCAmQ29ubmVjdGlvbjo6Y29ubmVjdGlvbkRpZENsb3NlKSk7CiAgICAgICAgIG1faXND
b25uZWN0ZWQgPSBtX3NvY2tldC0+d2FpdEZvckNvbm5lY3RlZCgpOwogICAgIH0KICAgICByZXR1
cm4gbV9pc0Nvbm5lY3RlZDsKZGlmZiAtLWdpdCBhL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9v
cFF0LmNwcCBiL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAppbmRleCA2OWQ0ZGIy
Li40OTUzOThkIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAK
KysrIGIvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCkBAIC02Niw3ICs2Niw3IEBA
IHZvaWQgUnVuTG9vcDo6cnVuKCkKIAogdm9pZCBSdW5Mb29wOjpzdG9wKCkKIHsKLSAgICAvLyBp
bXBsZW1lbnQKKyAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGl0KCk7CiB9CiAKIFJ1bkxvb3A6OlJ1
bkxvb3AoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>