<?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>40301</bug_id>
          
          <creation_ts>2010-06-08 07:59:14 -0700</creation_ts>
          <short_desc>DOM storage should only create databases when needed</short_desc>
          <delta_ts>2010-06-11 09:17:22 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Hans Wennborg">hans</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235257</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-08 07:59:14 -0700</bug_when>
    <thetext>As soon as a page attempts to use localstorage, StorageAreaSync will create an empty database if one does not already exist. This can lead to lots of unnecessary database files. In particular, they are created even when the privacy settings or private browsing mode disallow localstorage data, which may seem odd to the user.

For example, visit http://people.w3.org/mike/localstorage.html and note that ~/Library/Safari/LocalStorage/http_people.w3.org_0.localstorage is created even though no attempt to store any data has been made.

Database creation should be put off in StorageAreaSync until it is time to actually write something to the database.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235260</commentid>
    <comment_count>1</comment_count>
      <attachid>58140</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-08 08:15:55 -0700</bug_when>
    <thetext>Created attachment 58140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235261</commentid>
    <comment_count>2</comment_count>
      <attachid>58140</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-08 08:24:06 -0700</bug_when>
    <thetext>Comment on attachment 58140
Patch

WebCore/storage/StorageAreaSync.cpp:306
 +      if (!m_database.isOpen())
Is it safe to do this?  What happens if it fails the first 2 times (the HD is full or something) but later starts succeeding.  Please verify it&apos;ll do the right thing.

I&apos;d lean towards a m_initialized flag.

But is any of this needed?  Isn&apos;t the initial import guaranteed to run first?

WebCore/storage/StorageAreaSync.cpp:202
 +  void StorageAreaSync::openDatabase(bool create)
Create an enum instead of a bool for create and don&apos;t create.  It makes code easier to read.

WebCore/ChangeLog:12
 +          Tested by visiting e.g. http://people.w3.org/mike/localstorage.html and verifying that no file is created in ~/Library/Safari/LocalStorage until something is stored.
Create a manual-test in WebCore/manual-tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235323</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-08 10:30:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 58140 [details])
&gt; WebCore/storage/StorageAreaSync.cpp:306
&gt;  +      if (!m_database.isOpen())
&gt; Is it safe to do this?  What happens if it fails the first 2 times (the HD is full or something) but later starts succeeding.  Please verify it&apos;ll do the right thing.
It&apos;s not safe in that if it first fails to open the database, and later starts succeeding, it will have dropped some sync items and the database contents might not correctly represent the state of the storage. Changing so that if it fails to open the database once, it will not retry.

&gt; 
&gt; I&apos;d lean towards a m_initialized flag.
&gt; 
&gt; But is any of this needed?  Isn&apos;t the initial import guaranteed to run first?
&gt; 
Yes, but the initial import no longer always opens the database; that&apos;s why it&apos;s needed.

&gt; WebCore/storage/StorageAreaSync.cpp:202
&gt;  +  void StorageAreaSync::openDatabase(bool create)
&gt; Create an enum instead of a bool for create and don&apos;t create.  It makes code easier to read.
Done. Suggestions for better naming welcome.

&gt; 
&gt; WebCore/ChangeLog:12
&gt;  +          Tested by visiting e.g. http://people.w3.org/mike/localstorage.html and verifying that no file is created in ~/Library/Safari/LocalStorage until something is stored.
&gt; Create a manual-test in WebCore/manual-tests
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235325</commentid>
    <comment_count>4</comment_count>
      <attachid>58154</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-08 10:31:24 -0700</bug_when>
    <thetext>Created attachment 58154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235721</commentid>
    <comment_count>5</comment_count>
      <attachid>58154</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-09 03:00:00 -0700</bug_when>
    <thetext>Comment on attachment 58154
Patch

WebCore/storage/StorageAreaSync.cpp:66
 +      , m_triedOpeningDatabase(false)
How about m_databaseOpenFailed

WebCore/storage/StorageAreaSync.cpp:206
 +      ASSERT(!m_database.isOpen());
Assert we haven&apos;t tried yet.

WebCore/storage/StorageAreaSync.h:79
 +            CreateDatabase,
These names are not very clear.  The point is that creation is allowed, but this sounds like you&apos;re saying always create it.

WebCore/storage/StorageAreaSync.cpp:307
 +      if (!m_database.isOpen() &amp;&amp; !m_triedOpeningDatabase)
If you change the name as I suggested, then you can simply do &quot;if m_databaseOpenFailed return;&quot; before this statement.  I think it&apos;s more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235738</commentid>
    <comment_count>6</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-09 04:17:44 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 58154 [details])
&gt; WebCore/storage/StorageAreaSync.cpp:66
&gt;  +      , m_triedOpeningDatabase(false)
&gt; How about m_databaseOpenFailed
Done.

&gt; WebCore/storage/StorageAreaSync.cpp:206
&gt;  +      ASSERT(!m_database.isOpen());
&gt; Assert we haven&apos;t tried yet.
Done.

&gt; WebCore/storage/StorageAreaSync.h:79
&gt;  +            CreateDatabase,
&gt; These names are not very clear.  The point is that creation is allowed, but this sounds like you&apos;re saying always create it.
Done. Trying new names.

&gt; WebCore/storage/StorageAreaSync.cpp:307
&gt;  +      if (!m_database.isOpen() &amp;&amp; !m_triedOpeningDatabase)
&gt; If you change the name as I suggested, then you can simply do &quot;if m_databaseOpenFailed return;&quot; before this statement.  I think it&apos;s more clear.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235739</commentid>
    <comment_count>7</comment_count>
      <attachid>58233</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-09 04:18:12 -0700</bug_when>
    <thetext>Created attachment 58233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236767</commentid>
    <comment_count>8</comment_count>
      <attachid>58233</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-11 03:40:46 -0700</bug_when>
    <thetext>Comment on attachment 58233
Patch

WebCore/ChangeLog:8
 +          As soon as a page attempts to use localstorage, StorageAreaSync will create an empty database if one doesn&apos;t already exist. This can lead to lots of unnecessary database files. In particular, they are created even when the privacy settings or private browsing mode disallow localstorage data, which may seem odd to the user.
This is all on one line.  Please wrap.

WebCore/manual-tests/localstorage-empty-database.html:6
 +  &lt;/body&gt;
Why end the body before the body?  :-)

WebCore/storage/StorageAreaSync.cpp:203
 +  void StorageAreaSync::openDatabase(OpenDatabaseParamType create)
Create is probably not the best name for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236771</commentid>
    <comment_count>9</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-11 04:24:58 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 58233 [details])
&gt; WebCore/ChangeLog:8
&gt;  +          As soon as a page attempts to use localstorage, StorageAreaSync will create an empty database if one doesn&apos;t already exist. This can lead to lots of unnecessary database files. In particular, they are created even when the privacy settings or private browsing mode disallow localstorage data, which may seem odd to the user.
&gt; This is all on one line.  Please wrap.
Done.

&gt; WebCore/manual-tests/localstorage-empty-database.html:6
&gt;  +  &lt;/body&gt;
&gt; Why end the body before the body?  :-)
Fixed.

&gt; WebCore/storage/StorageAreaSync.cpp:203
&gt;  +  void StorageAreaSync::openDatabase(OpenDatabaseParamType create)
&gt; Create is probably not the best name for this.
Trying new name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236773</commentid>
    <comment_count>10</comment_count>
      <attachid>58463</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-06-11 04:25:26 -0700</bug_when>
    <thetext>Created attachment 58463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236776</commentid>
    <comment_count>11</comment_count>
      <attachid>58463</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-11 04:33:38 -0700</bug_when>
    <thetext>Comment on attachment 58463
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236863</commentid>
    <comment_count>12</comment_count>
      <attachid>58463</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-11 09:17:15 -0700</bug_when>
    <thetext>Comment on attachment 58463
Patch

Clearing flags on attachment: 58463

Committed r61023: &lt;http://trac.webkit.org/changeset/61023&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236864</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-11 09:17:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58140</attachid>
            <date>2010-06-08 08:15:55 -0700</date>
            <delta_ts>2010-06-08 10:31:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40301-20100608161553.patch</filename>
            <type>text/plain</type>
            <size>3728</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Yzc5M2QxNTliYTdjNjJiYzgzMzAwODkzZDUwZDk0NTFhOGJjZTdkMy4uYWQ3ZWI5NDM1NjY5Y2E3
ZTg3NWU3ZWZjYjU1MWM3MjZjYTI5M2YwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wNi0wOCAgSGFu
cyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERPTSBzdG9yYWdlIHNob3VsZCBvbmx5IGNyZWF0ZSBk
YXRhYmFzZXMgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwMzAxCisKKyAgICAgICAgQXMgc29vbiBhcyBhIHBhZ2UgYXR0ZW1wdHMg
dG8gdXNlIGxvY2Fsc3RvcmFnZSwgU3RvcmFnZUFyZWFTeW5jIHdpbGwgY3JlYXRlIGFuIGVtcHR5
IGRhdGFiYXNlIGlmIG9uZSBkb2Vzbid0IGFscmVhZHkgZXhpc3QuIFRoaXMgY2FuIGxlYWQgdG8g
bG90cyBvZiB1bm5lY2Vzc2FyeSBkYXRhYmFzZSBmaWxlcy4gSW4gcGFydGljdWxhciwgdGhleSBh
cmUgY3JlYXRlZCBldmVuIHdoZW4gdGhlIHByaXZhY3kgc2V0dGluZ3Mgb3IgcHJpdmF0ZSBicm93
c2luZyBtb2RlIGRpc2FsbG93IGxvY2Fsc3RvcmFnZSBkYXRhLCB3aGljaCBtYXkgc2VlbSBvZGQg
dG8gdGhlIHVzZXIuCisKKyAgICAgICAgRGF0YWJhc2UgY3JlYXRpb24gc2hvdWxkIGJlIHB1dCBv
ZmYgaW4gU3RvcmFnZUFyZWFTeW5jIHVudGlsIGl0IGlzIHRpbWUgdG8gYWN0dWFsbHkgd3JpdGUg
c29tZXRoaW5nIHRvIHRoZSBkYXRhYmFzZS4KKworICAgICAgICBUZXN0ZWQgYnkgdmlzaXRpbmcg
ZS5nLiBodHRwOi8vcGVvcGxlLnczLm9yZy9taWtlL2xvY2Fsc3RvcmFnZS5odG1sIGFuZCB2ZXJp
ZnlpbmcgdGhhdCBubyBmaWxlIGlzIGNyZWF0ZWQgaW4gfi9MaWJyYXJ5L1NhZmFyaS9Mb2NhbFN0
b3JhZ2UgdW50aWwgc29tZXRoaW5nIGlzIHN0b3JlZC4KKworICAgICAgICAqIHN0b3JhZ2UvU3Rv
cmFnZUFyZWFTeW5jLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6b3Bl
bkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybUlt
cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6OnN5bmMpOgorICAgICAg
ICAqIHN0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmg6CisKIDIwMTAtMDYtMDggIFl1cnkgU2VtaWto
YXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwg
RmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3Bw
IGIvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKaW5kZXggNGMzODViNzYxMjZh
YjY4ZjU3NWMyYTBkNmMwZGU3NmZmMWY4MGU3Ni4uOGZhNDQ0OWEzM2M5YzcxYzk2YzgyMWY3ZjEx
OGY4YTM5M2Q5NGYzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3lu
Yy5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTUUxpdGVTdGF0ZW1lbnQuaCIK
QEAgLTE5OCwxMyArMTk5LDE2IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzeW5jVGltZXJGaXJl
ZChUaW1lcjxTdG9yYWdlQXJlYVN5bmM+KikKICAgICB9CiB9CiAKLXZvaWQgU3RvcmFnZUFyZWFT
eW5jOjpwZXJmb3JtSW1wb3J0KCkKK3ZvaWQgU3RvcmFnZUFyZWFTeW5jOjpvcGVuRGF0YWJhc2Uo
Ym9vbCBjcmVhdGUpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KCFtX2RhdGFiYXNlLmlzT3BlbigpKTsKIAogICAgIFN0cmluZyBkYXRhYmFzZUZpbGVuYW1lID0g
bV9zeW5jTWFuYWdlci0+ZnVsbERhdGFiYXNlRmlsZW5hbWUobV9kYXRhYmFzZUlkZW50aWZpZXIp
OwogCisgICAgaWYgKCFjcmVhdGUgJiYgIWZpbGVFeGlzdHMoZGF0YWJhc2VGaWxlbmFtZSkpCisg
ICAgICAgIHJldHVybjsKKwogICAgIGlmIChkYXRhYmFzZUZpbGVuYW1lLmlzRW1wdHkoKSkgewog
ICAgICAgICBMT0dfRVJST1IoIkZpbGVuYW1lIGZvciBsb2NhbCBzdG9yYWdlIGRhdGFiYXNlIGlz
IGVtcHR5IC0gY2Fubm90IG9wZW4gZm9yIHBlcnNpc3RlbnQgc3RvcmFnZSIpOwogICAgICAgICBt
YXJrSW1wb3J0ZWQoKTsKQEAgLTIyMiw2ICsyMjYsMTggQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6
OnBlcmZvcm1JbXBvcnQoKQogICAgICAgICBtYXJrSW1wb3J0ZWQoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KK30KKwordm9pZCBTdG9yYWdlQXJlYVN5bmM6OnBlcmZvcm1JbXBvcnQoKQorewor
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghbV9kYXRhYmFzZS5pc09w
ZW4oKSk7CisKKyAgICBvcGVuRGF0YWJhc2UoZmFsc2UpOworICAgIGlmICghbV9kYXRhYmFzZS5p
c09wZW4oKSkgeworICAgICAgICBtYXJrSW1wb3J0ZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIFNRTGl0ZVN0YXRlbWVudCBxdWVyeShtX2RhdGFiYXNlLCAiU0VMRUNUIGtleSwg
dmFsdWUgRlJPTSBJdGVtVGFibGUiKTsKICAgICBpZiAocXVlcnkucHJlcGFyZSgpICE9IFNRTFJl
c3VsdE9rKSB7CkBAIC0yODYsNiArMzAyLDggQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6OnN5bmMo
Ym9vbCBjbGVhckl0ZW1zLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgaXRlbXMKICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4o
KSkKKyAgICAgICAgb3BlbkRhdGFiYXNlKHRydWUpOworICAgIGlmICghbV9kYXRhYmFzZS5pc09w
ZW4oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgdGhlIGNsZWFyIGZsYWcgaXMgc2V0
LCB0aGVuIHdlIGNsZWFyIGFsbCBpdGVtcyBvdXQgYmVmb3JlIHdlIHdyaXRlIGFueSBuZXcgb25l
cyBpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaCBiL1dl
YkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaAppbmRleCAwZTQ2NzYzMGViOGUzYTNiNjNm
YjQwOTdjZjY2MjJlNzlmYTEzM2FjLi40YjQ0NjY2ZjVmYjFjYzhhNzAwMDNhNTQ1ODc5NGQ3YmU3
YzM4NGM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKKysr
IGIvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCkBAIC03Niw2ICs3Niw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc3luY1RpbWVy
RmlyZWQoVGltZXI8U3RvcmFnZUFyZWFTeW5jPiopOworICAgICAgICB2b2lkIG9wZW5EYXRhYmFz
ZShib29sIGNyZWF0ZSk7CiAgICAgICAgIHZvaWQgc3luYyhib29sIGNsZWFySXRlbXMsIGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBpdGVtcyk7CiAKICAgICAgICAgY29uc3QgU3RyaW5n
IG1fZGF0YWJhc2VJZGVudGlmaWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58154</attachid>
            <date>2010-06-08 10:31:24 -0700</date>
            <delta_ts>2010-06-09 04:18:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40301-20100608183122.patch</filename>
            <type>text/plain</type>
            <size>4545</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Yzc5M2QxNTliYTdjNjJiYzgzMzAwODkzZDUwZDk0NTFhOGJjZTdkMy4uMzY1MjJjZjQzNjkwYjRm
NDViMmU3ZDY3MzFlYWY1Y2FiMzUwYWJhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wNi0wOCAgSGFu
cyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERPTSBzdG9yYWdlIHNob3VsZCBvbmx5IGNyZWF0ZSBk
YXRhYmFzZXMgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwMzAxCisKKyAgICAgICAgQXMgc29vbiBhcyBhIHBhZ2UgYXR0ZW1wdHMg
dG8gdXNlIGxvY2Fsc3RvcmFnZSwgU3RvcmFnZUFyZWFTeW5jIHdpbGwgY3JlYXRlIGFuIGVtcHR5
IGRhdGFiYXNlIGlmIG9uZSBkb2Vzbid0IGFscmVhZHkgZXhpc3QuIFRoaXMgY2FuIGxlYWQgdG8g
bG90cyBvZiB1bm5lY2Vzc2FyeSBkYXRhYmFzZSBmaWxlcy4gSW4gcGFydGljdWxhciwgdGhleSBh
cmUgY3JlYXRlZCBldmVuIHdoZW4gdGhlIHByaXZhY3kgc2V0dGluZ3Mgb3IgcHJpdmF0ZSBicm93
c2luZyBtb2RlIGRpc2FsbG93IGxvY2Fsc3RvcmFnZSBkYXRhLCB3aGljaCBtYXkgc2VlbSBvZGQg
dG8gdGhlIHVzZXIuCisKKyAgICAgICAgRGF0YWJhc2UgY3JlYXRpb24gc2hvdWxkIGJlIHB1dCBv
ZmYgaW4gU3RvcmFnZUFyZWFTeW5jIHVudGlsIGl0IGlzIHRpbWUgdG8gYWN0dWFsbHkgd3JpdGUg
c29tZXRoaW5nIHRvIHRoZSBkYXRhYmFzZS4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgIG1h
bnVhbC10ZXN0cy9sb2NhbHN0b3JhZ2UtZW1wdHktZGF0YWJhc2UuaHRtbAorCisgICAgICAgICog
bWFudWFsLXRlc3RzL2xvY2Fsc3RvcmFnZS1lbXB0eS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlQXJlYVN5bmM6OlN0b3JhZ2VBcmVhU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlQXJlYVN5bmM6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJl
YVN5bmM6OnBlcmZvcm1JbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5j
OjpzeW5jKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjopOgorCiAyMDEwLTA2LTA4ICBZdXJ5IFNlbWlraGF0
c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZl
bGRtYW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmNwcCBi
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4IDRjMzg1Yjc2MTI2YWI2
OGY1NzVjMmEwZDZjMGRlNzZmZjFmODBlNzYuLmNjZTEzYjZmYTljOGYxZmRhMDFkODhjZTIzNTlh
YjQyOTJkYmM3MjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMu
Y3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgorI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCkBA
IC02Miw2ICs2Myw3IEBAIFN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFTeW5jKFBhc3NSZWZQ
dHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3luY01hbmFnCiAgICAgLCBtX2NsZWFySXRl
bXNXaGlsZVN5bmNpbmcoZmFsc2UpCiAgICAgLCBtX3N5bmNTY2hlZHVsZWQoZmFsc2UpCiAgICAg
LCBtX3N5bmNJblByb2dyZXNzKGZhbHNlKQorICAgICwgbV90cmllZE9wZW5pbmdEYXRhYmFzZShm
YWxzZSkKICAgICAsIG1faW1wb3J0Q29tcGxldGUoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKQEAgLTE5OCwxMyArMjAwLDE4IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpz
eW5jVGltZXJGaXJlZChUaW1lcjxTdG9yYWdlQXJlYVN5bmM+KikKICAgICB9CiB9CiAKLXZvaWQg
U3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtSW1wb3J0KCkKK3ZvaWQgU3RvcmFnZUFyZWFTeW5jOjpv
cGVuRGF0YWJhc2UoT3BlbkRhdGFiYXNlUGFyYW1UeXBlIGNyZWF0ZSkKIHsKICAgICBBU1NFUlQo
IWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UuaXNPcGVuKCkpOwogCiAg
ICAgU3RyaW5nIGRhdGFiYXNlRmlsZW5hbWUgPSBtX3N5bmNNYW5hZ2VyLT5mdWxsRGF0YWJhc2VG
aWxlbmFtZShtX2RhdGFiYXNlSWRlbnRpZmllcik7CiAKKyAgICBpZiAoIWZpbGVFeGlzdHMoZGF0
YWJhc2VGaWxlbmFtZSkgJiYgY3JlYXRlID09IERvTm90Q3JlYXRlRGF0YWJhc2UpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fdHJpZWRPcGVuaW5nRGF0YWJhc2UgPSB0cnVlOworCiAgICAgaWYg
KGRhdGFiYXNlRmlsZW5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIExPR19FUlJPUigiRmlsZW5h
bWUgZm9yIGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2UgaXMgZW1wdHkgLSBjYW5ub3Qgb3BlbiBmb3Ig
cGVyc2lzdGVudCBzdG9yYWdlIik7CiAgICAgICAgIG1hcmtJbXBvcnRlZCgpOwpAQCAtMjIyLDYg
KzIyOSwxOCBAQCB2b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybUltcG9ydCgpCiAgICAgICAg
IG1hcmtJbXBvcnRlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorfQorCit2b2lkIFN0b3Jh
Z2VBcmVhU3luYzo6cGVyZm9ybUltcG9ydCgpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKCFtX2RhdGFiYXNlLmlzT3BlbigpKTsKKworICAgIG9wZW5EYXRhYmFz
ZShEb05vdENyZWF0ZURhdGFiYXNlKTsKKyAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpIHsK
KyAgICAgICAgbWFya0ltcG9ydGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBT
UUxpdGVTdGF0ZW1lbnQgcXVlcnkobV9kYXRhYmFzZSwgIlNFTEVDVCBrZXksIHZhbHVlIEZST00g
SXRlbVRhYmxlIik7CiAgICAgaWYgKHF1ZXJ5LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykgewpA
QCAtMjg1LDYgKzMwNCw4IEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzeW5jKGJvb2wgY2xlYXJJ
dGVtcywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGl0ZW1zCiB7CiAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CiAKKyAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkgJiYgIW1f
dHJpZWRPcGVuaW5nRGF0YWJhc2UpCisgICAgICAgIG9wZW5EYXRhYmFzZShDcmVhdGVEYXRhYmFz
ZSk7CiAgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3BlbigpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuaCBiL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlQXJlYVN5bmMuaAppbmRleCAwZTQ2NzYzMGViOGUzYTNiNjNmYjQwOTdjZjY2
MjJlNzlmYTEzM2FjLi4xNGJkOTc5Y2IwNDg3ODJlNzU3NjRlM2I4NzZiMzgyNGE2YTU2ZDgxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCkBAIC03NSw3ICs3NSwxMyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgcGVyZm9ybVN5bmMoKTsKIAogICAgIHByaXZhdGU6Cisg
ICAgICAgIGVudW0gT3BlbkRhdGFiYXNlUGFyYW1UeXBlIHsKKyAgICAgICAgICBDcmVhdGVEYXRh
YmFzZSwKKyAgICAgICAgICBEb05vdENyZWF0ZURhdGFiYXNlCisgICAgICAgIH07CisKICAgICAg
ICAgdm9pZCBzeW5jVGltZXJGaXJlZChUaW1lcjxTdG9yYWdlQXJlYVN5bmM+Kik7CisgICAgICAg
IHZvaWQgb3BlbkRhdGFiYXNlKE9wZW5EYXRhYmFzZVBhcmFtVHlwZSBjcmVhdGUpOwogICAgICAg
ICB2b2lkIHN5bmMoYm9vbCBjbGVhckl0ZW1zLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiYgaXRlbXMpOwogCiAgICAgICAgIGNvbnN0IFN0cmluZyBtX2RhdGFiYXNlSWRlbnRpZmllcjsK
QEAgLTg1LDYgKzkxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fY2xl
YXJJdGVtc1doaWxlU3luY2luZzsKICAgICAgICAgYm9vbCBtX3N5bmNTY2hlZHVsZWQ7CiAgICAg
ICAgIGJvb2wgbV9zeW5jSW5Qcm9ncmVzczsKKyAgICAgICAgYm9vbCBtX3RyaWVkT3BlbmluZ0Rh
dGFiYXNlOwogCiAgICAgICAgIG11dGFibGUgTXV0ZXggbV9pbXBvcnRMb2NrOwogICAgICAgICBt
dXRhYmxlIFRocmVhZENvbmRpdGlvbiBtX2ltcG9ydENvbmRpdGlvbjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58233</attachid>
            <date>2010-06-09 04:18:12 -0700</date>
            <delta_ts>2010-06-11 04:25:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40301-20100609121810.patch</filename>
            <type>text/plain</type>
            <size>5826</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWMwYTU2MTNiMjg1MmJlNjc2NzRjNGQ4N2Y2NzM3MGIwNGQxNDE3NS4uNTYwZGQyZjBhYjM3Yzg2
OTdjYzQ2Nzk4ZTM0MDliNzJmNWQ5MWNlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wNi0wOSAgSGFu
cyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERPTSBzdG9yYWdlIHNob3VsZCBvbmx5IGNyZWF0ZSBk
YXRhYmFzZXMgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwMzAxCisKKyAgICAgICAgQXMgc29vbiBhcyBhIHBhZ2UgYXR0ZW1wdHMg
dG8gdXNlIGxvY2Fsc3RvcmFnZSwgU3RvcmFnZUFyZWFTeW5jIHdpbGwgY3JlYXRlIGFuIGVtcHR5
IGRhdGFiYXNlIGlmIG9uZSBkb2Vzbid0IGFscmVhZHkgZXhpc3QuIFRoaXMgY2FuIGxlYWQgdG8g
bG90cyBvZiB1bm5lY2Vzc2FyeSBkYXRhYmFzZSBmaWxlcy4gSW4gcGFydGljdWxhciwgdGhleSBh
cmUgY3JlYXRlZCBldmVuIHdoZW4gdGhlIHByaXZhY3kgc2V0dGluZ3Mgb3IgcHJpdmF0ZSBicm93
c2luZyBtb2RlIGRpc2FsbG93IGxvY2Fsc3RvcmFnZSBkYXRhLCB3aGljaCBtYXkgc2VlbSBvZGQg
dG8gdGhlIHVzZXIuCisKKyAgICAgICAgRGF0YWJhc2UgY3JlYXRpb24gc2hvdWxkIGJlIHB1dCBv
ZmYgaW4gU3RvcmFnZUFyZWFTeW5jIHVudGlsIGl0IGlzIHRpbWUgdG8gYWN0dWFsbHkgd3JpdGUg
c29tZXRoaW5nIHRvIHRoZSBkYXRhYmFzZS4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgIG1h
bnVhbC10ZXN0cy9sb2NhbHN0b3JhZ2UtZW1wdHktZGF0YWJhc2UuaHRtbAorCisgICAgICAgICog
bWFudWFsLXRlc3RzL2xvY2Fsc3RvcmFnZS1lbXB0eS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlQXJlYVN5bmM6OlN0b3JhZ2VBcmVhU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9y
YWdlQXJlYVN5bmM6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJl
YVN5bmM6OnBlcmZvcm1JbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5j
OjpzeW5jKToKKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oOgorICAgICAgICAo
V2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjopOgorCiAyMDEwLTA2LTA5ICBDc2FiYSBPc3p0cm9n
b27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1
bHplLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwtdGVzdHMvbG9jYWxzdG9yYWdlLWVtcHR5
LWRhdGFiYXNlLmh0bWwgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9sb2NhbHN0b3JhZ2UtZW1wdHkt
ZGF0YWJhc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDQ0NjYwY2M2M2VkN2E3NTI1OGRhMzY4ZTBiMzlj
MTA5MjlhZjIwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvbG9jYWxz
dG9yYWdlLWVtcHR5LWRhdGFiYXNlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgdmFyIHggPSBsb2NhbFN0b3Jh
Z2UuZ2V0SXRlbSgnZm9vJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzxwPlRoaXMgcGFnZSBoYXMg
Y2FsbGVkIDxjb2RlPmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdmb28nKTwvY29kZT4uIFNpbmNlIG5v
IGRhdGEgaGFzCitiZWVuIHN0b3JlZCwgbm8gZGF0YWJhc2UgZmlsZSBzaG91bGQgaGF2ZSBiZWVu
IGNyZWF0ZWQuPC9wPgorCis8cD5JZiB5b3UgY2xpY2sgPGEgaHJlZj0iamF2YXNjcmlwdDpsb2Nh
bFN0b3JhZ2Uuc2V0SXRlbSgnYmFyJywgJ2JheicpOyI+aGVyZTwvYT4sIGRhdGEgd2lsbCBiZSBz
dG9yZWQsIGFuZCBhIGRhdGFiYXNlIGZpbGUgc2hvdWxkIGJlIGNyZWF0ZWQuPC9wPgorCis8cD4o
VGhpcyBpcyBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMzAxIj5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzMDE8
L2E+Lik8L3A+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFy
ZWFTeW5jLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3BwCmluZGV4IDRj
Mzg1Yjc2MTI2YWI2OGY1NzVjMmEwZDZjMGRlNzZmZjFmODBlNzYuLmU3ZjI1ZTFkNmI1MzhkZTFi
OTUxN2VmMGYyM2UzMWZmNTY2NDk4MjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYVN5bmMuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYVN5bmMuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQogCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3Rh
dGVtZW50LmgiCkBAIC02Miw2ICs2Myw3IEBAIFN0b3JhZ2VBcmVhU3luYzo6U3RvcmFnZUFyZWFT
eW5jKFBhc3NSZWZQdHI8U3RvcmFnZVN5bmNNYW5hZ2VyPiBzdG9yYWdlU3luY01hbmFnCiAgICAg
LCBtX2NsZWFySXRlbXNXaGlsZVN5bmNpbmcoZmFsc2UpCiAgICAgLCBtX3N5bmNTY2hlZHVsZWQo
ZmFsc2UpCiAgICAgLCBtX3N5bmNJblByb2dyZXNzKGZhbHNlKQorICAgICwgbV9kYXRhYmFzZU9w
ZW5GYWlsZWQoZmFsc2UpCiAgICAgLCBtX2ltcG9ydENvbXBsZXRlKGZhbHNlKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xOTgsMjggKzIwMCw0NyBAQCB2b2lkIFN0b3JhZ2VB
cmVhU3luYzo6c3luY1RpbWVyRmlyZWQoVGltZXI8U3RvcmFnZUFyZWFTeW5jPiopCiAgICAgfQog
fQogCi12b2lkIFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybUltcG9ydCgpCit2b2lkIFN0b3JhZ2VB
cmVhU3luYzo6b3BlbkRhdGFiYXNlKE9wZW5EYXRhYmFzZVBhcmFtVHlwZSBjcmVhdGUpCiB7CiAg
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLmlzT3Bl
bigpKTsKKyAgICBBU1NFUlQoIW1fZGF0YWJhc2VPcGVuRmFpbGVkKTsKIAogICAgIFN0cmluZyBk
YXRhYmFzZUZpbGVuYW1lID0gbV9zeW5jTWFuYWdlci0+ZnVsbERhdGFiYXNlRmlsZW5hbWUobV9k
YXRhYmFzZUlkZW50aWZpZXIpOwogCisgICAgaWYgKCFmaWxlRXhpc3RzKGRhdGFiYXNlRmlsZW5h
bWUpICYmIGNyZWF0ZSA9PSBTa2lwSWZOb25FeGlzdGVudCkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgaWYgKGRhdGFiYXNlRmlsZW5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIExPR19FUlJPUigi
RmlsZW5hbWUgZm9yIGxvY2FsIHN0b3JhZ2UgZGF0YWJhc2UgaXMgZW1wdHkgLSBjYW5ub3Qgb3Bl
biBmb3IgcGVyc2lzdGVudCBzdG9yYWdlIik7CiAgICAgICAgIG1hcmtJbXBvcnRlZCgpOworICAg
ICAgICBtX2RhdGFiYXNlT3BlbkZhaWxlZCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAoIW1fZGF0YWJhc2Uub3BlbihkYXRhYmFzZUZpbGVuYW1lKSkgewogICAgICAg
ICBMT0dfRVJST1IoIkZhaWxlZCB0byBvcGVuIGRhdGFiYXNlIGZpbGUgJXMgZm9yIGxvY2FsIHN0
b3JhZ2UiLCBkYXRhYmFzZUZpbGVuYW1lLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBtYXJrSW1w
b3J0ZWQoKTsKKyAgICAgICAgbV9kYXRhYmFzZU9wZW5GYWlsZWQgPSB0cnVlOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVB
VEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBJdGVtVGFibGUgKGtleSBURVhUIFVOSVFVRSBPTiBDT05G
TElDVCBSRVBMQUNFLCB2YWx1ZSBURVhUIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIikpIHsK
ICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIHRhYmxlIEl0ZW1UYWJsZSBmb3Ig
bG9jYWwgc3RvcmFnZSIpOwogICAgICAgICBtYXJrSW1wb3J0ZWQoKTsKKyAgICAgICAgbV9kYXRh
YmFzZU9wZW5GYWlsZWQgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lk
IFN0b3JhZ2VBcmVhU3luYzo6cGVyZm9ybUltcG9ydCgpCit7CisgICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7CisgICAgQVNTRVJUKCFtX2RhdGFiYXNlLmlzT3BlbigpKTsKKworICAgIG9wZW5E
YXRhYmFzZShTa2lwSWZOb25FeGlzdGVudCk7CisgICAgaWYgKCFtX2RhdGFiYXNlLmlzT3Blbigp
KSB7CisgICAgICAgIG1hcmtJbXBvcnRlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0yODUsNiArMzA2LDEwIEBAIHZvaWQgU3RvcmFnZUFyZWFTeW5jOjpzeW5jKGJvb2wgY2xlYXJJ
dGVtcywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGl0ZW1zCiB7CiAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CiAKKyAgICBpZiAobV9kYXRhYmFzZU9wZW5GYWlsZWQpCisgICAg
ICAgIHJldHVybjsKKyAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCisgICAgICAgIG9wZW5E
YXRhYmFzZShDcmVhdGVJZk5vbkV4aXN0ZW50KTsKICAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVu
KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VBcmVhU3luYy5oIGIvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCmluZGV4IDBl
NDY3NjMwZWI4ZTNhM2I2M2ZiNDA5N2NmNjYyMmU3OWZhMTMzYWMuLmNiMDYzOWYzZGIxM2VjNjE5
ZTJkYTlmYTNkZTU5ZmU0MTk5NzRiMTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYVN5bmMuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmgKQEAg
LTc1LDcgKzc1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBwZXJmb3Jt
U3luYygpOwogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgZW51bSBPcGVuRGF0YWJhc2VQYXJhbVR5
cGUgeworICAgICAgICAgIENyZWF0ZUlmTm9uRXhpc3RlbnQsCisgICAgICAgICAgU2tpcElmTm9u
RXhpc3RlbnQKKyAgICAgICAgfTsKKwogICAgICAgICB2b2lkIHN5bmNUaW1lckZpcmVkKFRpbWVy
PFN0b3JhZ2VBcmVhU3luYz4qKTsKKyAgICAgICAgdm9pZCBvcGVuRGF0YWJhc2UoT3BlbkRhdGFi
YXNlUGFyYW1UeXBlIGNyZWF0ZSk7CiAgICAgICAgIHZvaWQgc3luYyhib29sIGNsZWFySXRlbXMs
IGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBpdGVtcyk7CiAKICAgICAgICAgY29uc3Qg
U3RyaW5nIG1fZGF0YWJhc2VJZGVudGlmaWVyOwpAQCAtODUsNiArOTEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9jbGVhckl0ZW1zV2hpbGVTeW5jaW5nOwogICAgICAg
ICBib29sIG1fc3luY1NjaGVkdWxlZDsKICAgICAgICAgYm9vbCBtX3N5bmNJblByb2dyZXNzOwor
ICAgICAgICBib29sIG1fZGF0YWJhc2VPcGVuRmFpbGVkOwogCiAgICAgICAgIG11dGFibGUgTXV0
ZXggbV9pbXBvcnRMb2NrOwogICAgICAgICBtdXRhYmxlIFRocmVhZENvbmRpdGlvbiBtX2ltcG9y
dENvbmRpdGlvbjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58463</attachid>
            <date>2010-06-11 04:25:26 -0700</date>
            <delta_ts>2010-06-11 09:17:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40301-20100611122524.patch</filename>
            <type>text/plain</type>
            <size>5909</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWYyYzgwNjM0ZjE3MDA5NzVkZTAxMmMzNTRjMzc4ZGIyNTE0MTE0ZC4uYjMzYTViNmRmNWVmODhi
ODkyMzU2MDRiZTIzY2U4NDA0OWQ3NWQyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wNi0xMSAgSGFu
cyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIERPTSBzdG9yYWdlIHNob3VsZCBvbmx5IGNyZWF0ZSBk
YXRhYmFzZXMgd2hlbiBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwMzAxCisKKyAgICAgICAgQXMgc29vbiBhcyBhIHBhZ2UgYXR0ZW1wdHMg
dG8gdXNlIGxvY2Fsc3RvcmFnZSwgU3RvcmFnZUFyZWFTeW5jIHdpbGwKKyAgICAgICAgY3JlYXRl
IGFuIGVtcHR5IGRhdGFiYXNlIGlmIG9uZSBkb2Vzbid0IGFscmVhZHkgZXhpc3QuIFRoaXMgY2Fu
IGxlYWQgdG8KKyAgICAgICAgbG90cyBvZiB1bm5lY2Vzc2FyeSBkYXRhYmFzZSBmaWxlcy4gSW4g
cGFydGljdWxhciwgdGhleSBhcmUgY3JlYXRlZAorICAgICAgICBldmVuIHdoZW4gdGhlIHByaXZh
Y3kgc2V0dGluZ3Mgb3IgcHJpdmF0ZSBicm93c2luZyBtb2RlIGRpc2FsbG93CisgICAgICAgIGxv
Y2Fsc3RvcmFnZSBkYXRhLCB3aGljaCBtYXkgc2VlbSBvZGQgdG8gdGhlIHVzZXIuCisKKyAgICAg
ICAgRGF0YWJhc2UgY3JlYXRpb24gc2hvdWxkIGJlIHB1dCBvZmYgaW4gU3RvcmFnZUFyZWFTeW5j
IHVudGlsIGl0IGlzIHRpbWUKKyAgICAgICAgdG8gYWN0dWFsbHkgd3JpdGUgc29tZXRoaW5nIHRv
IHRoZSBkYXRhYmFzZS4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgIG1hbnVhbC10ZXN0cy9s
b2NhbHN0b3JhZ2UtZW1wdHktZGF0YWJhc2UuaHRtbAorCisgICAgICAgICogbWFudWFsLXRlc3Rz
L2xvY2Fsc3RvcmFnZS1lbXB0eS1kYXRhYmFzZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9y
YWdlL1N0b3JhZ2VBcmVhU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5
bmM6OlN0b3JhZ2VBcmVhU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6
Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVN5bmM6OnBlcmZv
cm1JbXBvcnQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFTeW5jOjpzeW5jKToKKyAg
ICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oOgorICAgICAgICAoV2ViQ29yZTo6U3Rv
cmFnZUFyZWFTeW5jOjopOgorCiAyMDEwLTA1LTMxICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5
bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21h
bm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy9sb2NhbHN0b3JhZ2UtZW1wdHkt
ZGF0YWJhc2UuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL2xvY2Fsc3RvcmFnZS1lbXB0eS1k
YXRhYmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNjQxMjc1YmFkMTdjNmE1YWQ5ZWQ4YTczYWFjMTky
NzE5MDRhZmIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL21hbnVhbC10ZXN0cy9sb2NhbHN0
b3JhZ2UtZW1wdHktZGF0YWJhc2UuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICB2YXIgeCA9IGxvY2FsU3RvcmFn
ZS5nZXRJdGVtKCdmb28nKTsKKzwvc2NyaXB0PgorPHA+VGhpcyBwYWdlIGhhcyBjYWxsZWQgPGNv
ZGU+bG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZvbycpPC9jb2RlPi4KK1NpbmNlIG5vIGRhdGEgaGFz
IGJlZW4gc3RvcmVkLCBubyBkYXRhYmFzZSBmaWxlIHNob3VsZCBoYXZlIGJlZW4gY3JlYXRlZC48
L3A+CisKKzxwPklmIHlvdSBjbGljayA8YSBocmVmPSJqYXZhc2NyaXB0OmxvY2FsU3RvcmFnZS5z
ZXRJdGVtKCdiYXInLCAnYmF6Jyk7Ij5oZXJlPC9hPiwgZGF0YSB3aWxsIGJlIHN0b3JlZCwgYW5k
IGEgZGF0YWJhc2UgZmlsZSBzaG91bGQgYmUgY3JlYXRlZC48L3A+CisKKzxwPihUaGlzIGlzIGZv
ciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzMDEi
Pmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDMwMTwvYT4uKTwvcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJl
YVN5bmMuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAKaW5kZXggNGMz
ODViNzYxMjZhYjY4ZjU3NWMyYTBkNmMwZGU3NmZmMWY4MGU3Ni4uNTlmNTU4YmZhMTlkZTE1MzM5
MThiNjA0YmVmMDdiM2UzMjFhNGY1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VBcmVhU3luYy5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5jcHAK
QEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTUUxpdGVTdGF0
ZW1lbnQuaCIKQEAgLTYyLDYgKzYzLDcgQEAgU3RvcmFnZUFyZWFTeW5jOjpTdG9yYWdlQXJlYVN5
bmMoUGFzc1JlZlB0cjxTdG9yYWdlU3luY01hbmFnZXI+IHN0b3JhZ2VTeW5jTWFuYWcKICAgICAs
IG1fY2xlYXJJdGVtc1doaWxlU3luY2luZyhmYWxzZSkKICAgICAsIG1fc3luY1NjaGVkdWxlZChm
YWxzZSkKICAgICAsIG1fc3luY0luUHJvZ3Jlc3MoZmFsc2UpCisgICAgLCBtX2RhdGFiYXNlT3Bl
bkZhaWxlZChmYWxzZSkKICAgICAsIG1faW1wb3J0Q29tcGxldGUoZmFsc2UpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE5OCwyOCArMjAwLDQ3IEBAIHZvaWQgU3RvcmFnZUFy
ZWFTeW5jOjpzeW5jVGltZXJGaXJlZChUaW1lcjxTdG9yYWdlQXJlYVN5bmM+KikKICAgICB9CiB9
CiAKLXZvaWQgU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtSW1wb3J0KCkKK3ZvaWQgU3RvcmFnZUFy
ZWFTeW5jOjpvcGVuRGF0YWJhc2UoT3BlbkRhdGFiYXNlUGFyYW1UeXBlIG9wZW5pbmdTdHJhdGVn
eSkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoIW1fZGF0YWJh
c2UuaXNPcGVuKCkpOworICAgIEFTU0VSVCghbV9kYXRhYmFzZU9wZW5GYWlsZWQpOwogCiAgICAg
U3RyaW5nIGRhdGFiYXNlRmlsZW5hbWUgPSBtX3N5bmNNYW5hZ2VyLT5mdWxsRGF0YWJhc2VGaWxl
bmFtZShtX2RhdGFiYXNlSWRlbnRpZmllcik7CiAKKyAgICBpZiAoIWZpbGVFeGlzdHMoZGF0YWJh
c2VGaWxlbmFtZSkgJiYgb3BlbmluZ1N0cmF0ZWd5ID09IFNraXBJZk5vbkV4aXN0ZW50KQorICAg
ICAgICByZXR1cm47CisKICAgICBpZiAoZGF0YWJhc2VGaWxlbmFtZS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgTE9HX0VSUk9SKCJGaWxlbmFtZSBmb3IgbG9jYWwgc3RvcmFnZSBkYXRhYmFzZSBpcyBl
bXB0eSAtIGNhbm5vdCBvcGVuIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UiKTsKICAgICAgICAgbWFy
a0ltcG9ydGVkKCk7CisgICAgICAgIG1fZGF0YWJhc2VPcGVuRmFpbGVkID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICghbV9kYXRhYmFzZS5vcGVuKGRhdGFiYXNlRmls
ZW5hbWUpKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIG9wZW4gZGF0YWJhc2UgZmls
ZSAlcyBmb3IgbG9jYWwgc3RvcmFnZSIsIGRhdGFiYXNlRmlsZW5hbWUudXRmOCgpLmRhdGEoKSk7
CiAgICAgICAgIG1hcmtJbXBvcnRlZCgpOworICAgICAgICBtX2RhdGFiYXNlT3BlbkZhaWxlZCA9
IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIW1fZGF0YWJhc2UuZXhl
Y3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIEl0ZW1UYWJsZSAoa2V5IFRF
WFQgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0UsIHZhbHVlIFRFWFQgTk9UIE5VTEwgT04gQ09O
RkxJQ1QgRkFJTCkiKSkgewogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgdGFi
bGUgSXRlbVRhYmxlIGZvciBsb2NhbCBzdG9yYWdlIik7CiAgICAgICAgIG1hcmtJbXBvcnRlZCgp
OworICAgICAgICBtX2RhdGFiYXNlT3BlbkZhaWxlZCA9IHRydWU7CisgICAgICAgIHJldHVybjsK
KyAgICB9Cit9CisKK3ZvaWQgU3RvcmFnZUFyZWFTeW5jOjpwZXJmb3JtSW1wb3J0KCkKK3sKKyAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIW1fZGF0YWJhc2UuaXNPcGVu
KCkpOworCisgICAgb3BlbkRhdGFiYXNlKFNraXBJZk5vbkV4aXN0ZW50KTsKKyAgICBpZiAoIW1f
ZGF0YWJhc2UuaXNPcGVuKCkpIHsKKyAgICAgICAgbWFya0ltcG9ydGVkKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTI4NSw2ICszMDYsMTAgQEAgdm9pZCBTdG9yYWdlQXJlYVN5bmM6
OnN5bmMoYm9vbCBjbGVhckl0ZW1zLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgaXRl
bXMKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAorICAgIGlmIChtX2RhdGFiYXNl
T3BlbkZhaWxlZCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4o
KSkKKyAgICAgICAgb3BlbkRhdGFiYXNlKENyZWF0ZUlmTm9uRXhpc3RlbnQpOwogICAgIGlmICgh
bV9kYXRhYmFzZS5pc09wZW4oKSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvU3RvcmFnZUFyZWFTeW5jLmggYi9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUFy
ZWFTeW5jLmgKaW5kZXggMGU0Njc2MzBlYjhlM2EzYjYzZmI0MDk3Y2Y2NjIyZTc5ZmExMzNhYy4u
ZDI2ZDM5OTViYjkyNmM3NDA0YTE3YmUzM2Q2ZDlhMDNmMmU4YjQ3NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhU3luYy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlQXJlYVN5bmMuaApAQCAtNzUsNyArNzUsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2b2lkIHBlcmZvcm1TeW5jKCk7CiAKICAgICBwcml2YXRlOgorICAgICAgICBlbnVtIE9w
ZW5EYXRhYmFzZVBhcmFtVHlwZSB7CisgICAgICAgICAgQ3JlYXRlSWZOb25FeGlzdGVudCwKKyAg
ICAgICAgICBTa2lwSWZOb25FeGlzdGVudAorICAgICAgICB9OworCiAgICAgICAgIHZvaWQgc3lu
Y1RpbWVyRmlyZWQoVGltZXI8U3RvcmFnZUFyZWFTeW5jPiopOworICAgICAgICB2b2lkIG9wZW5E
YXRhYmFzZShPcGVuRGF0YWJhc2VQYXJhbVR5cGUgb3BlbmluZ1N0cmF0ZWd5KTsKICAgICAgICAg
dm9pZCBzeW5jKGJvb2wgY2xlYXJJdGVtcywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4m
IGl0ZW1zKTsKIAogICAgICAgICBjb25zdCBTdHJpbmcgbV9kYXRhYmFzZUlkZW50aWZpZXI7CkBA
IC04NSw2ICs5MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2NsZWFy
SXRlbXNXaGlsZVN5bmNpbmc7CiAgICAgICAgIGJvb2wgbV9zeW5jU2NoZWR1bGVkOwogICAgICAg
ICBib29sIG1fc3luY0luUHJvZ3Jlc3M7CisgICAgICAgIGJvb2wgbV9kYXRhYmFzZU9wZW5GYWls
ZWQ7CiAKICAgICAgICAgbXV0YWJsZSBNdXRleCBtX2ltcG9ydExvY2s7CiAgICAgICAgIG11dGFi
bGUgVGhyZWFkQ29uZGl0aW9uIG1faW1wb3J0Q29uZGl0aW9uOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>