<?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>39908</bug_id>
          
          <creation_ts>2010-05-28 15:40:41 -0700</creation_ts>
          <short_desc>Reentrant Geolocation tests crash with an assertion</short_desc>
          <delta_ts>2010-11-19 07:07:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>
          <dependson>48518</dependson>
    
    <dependson>49597</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bulach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jknotten</cc>
    
    <cc>jorlow</cc>
    
    <cc>joth</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231975</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-28 15:40:41 -0700</bug_when>
    <thetext>An assertion fails in GeolocationController::addObserver(), because we try to add the same # Geolocation object as an observer again.

fast/dom/Geolocation/maximum-age.html
fast/dom/Geolocation/reentrant-error.html
fast/dom/Geolocation/reentrant-success.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234002</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-03 17:06:31 -0700</bug_when>
    <thetext>See also: bug 40148.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236733</commentid>
    <comment_count>2</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-06-11 01:51:43 -0700</bug_when>
    <thetext>reentrant-error.html and reentrant-success.html are now fixed with the fix for Bug 40148.

maximum-age.html still fails in client-based Geolocation. This seems not to be due to the client-based approach itself, but due to the different code path used to obtain permission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309760</commentid>
    <comment_count>3</comment_count>
      <attachid>74002</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-16 09:13:27 -0800</bug_when>
    <thetext>Created attachment 74002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309763</commentid>
    <comment_count>4</comment_count>
      <attachid>74002</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-16 09:14:42 -0800</bug_when>
    <thetext>Comment on attachment 74002
Patch

Depends on https://bugs.webkit.org/show_bug.cgi?id=49597 for GeoNotifierVector typedef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309812</commentid>
    <comment_count>5</comment_count>
      <attachid>74002</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-11-16 10:44:51 -0800</bug_when>
    <thetext>Comment on attachment 74002
Patch

Looks good, although hard to follow the logic behind it.
Maybe we could move the pending cache-using requests out of the vector copy and back into the set before calling SendError(). (But after clearing the set). We could do this for both oneshots and watchers (to avoid a cache-using watcher from going into limbo if a fatal error occurred before its cache-pump timer fires)

This way we&apos;d keep the policy logic in one place, rather than half in SendError and half in the copy-back</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310228</commentid>
    <comment_count>6</comment_count>
      <attachid>74101</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-17 06:04:07 -0800</bug_when>
    <thetext>Created attachment 74101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310276</commentid>
    <comment_count>7</comment_count>
      <attachid>74101</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-11-17 07:42:02 -0800</bug_when>
    <thetext>Comment on attachment 74101
Patch

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

&gt; WebCore/page/Geolocation.cpp:582
&gt; +    copyToSet(oneShotsCached, m_oneShots);

It&apos;s not obvious when the watchersCached set is not re-instated here too. Specifically, if the error was fatal we won&apos;t have sent them an error above (as we removed them from the watchersCopy vector) but they won&apos;t get a cached position either (as we don&apos;t reinstate here). Perhaps it&apos;s the intermix of isFatal and isDenied that is confusing me. Would it be clearer as:

if (!isFatal) {
     removeCachedNotifiers(oneShotsCopy, oneShotsCached);
     removeCachedNotifiers(watchersCopy, watchersCached);
} else 
     m_watchers.clear();

m_oneshots.clear();


Also would it be worth adding a comment on hasListeners that we need to test that before re-instating pending one-shots?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310311</commentid>
    <comment_count>8</comment_count>
      <attachid>74119</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-17 08:45:20 -0800</bug_when>
    <thetext>Created attachment 74119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310830</commentid>
    <comment_count>9</comment_count>
      <attachid>74119</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-18 06:34:03 -0800</bug_when>
    <thetext>Comment on attachment 74119
Patch

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

Steve is probably the best reviewer, but unfortunately he&apos;s on holiday.  Here are a few comments to get you started though.

&gt; LayoutTests/ChangeLog:4
&gt; +

include title and bug url at top...in other CLs too

&gt; WebCore/page/Geolocation.cpp:530
&gt; +        RefPtr&lt;GeoNotifier&gt; notifier = *it;

just store a pointer.  No need to ref it.

&gt; WebCore/page/Geolocation.cpp:543
&gt; +         RefPtr&lt;GeoNotifier&gt; notifier = *it;

same

&gt; WebCore/page/Geolocation.cpp:544
&gt; +             dest.add(notifier);

wrong indent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310834</commentid>
    <comment_count>10</comment_count>
      <attachid>74119</attachid>
    <who name="Jonathan Dixon">joth</who>
    <bug_when>2010-11-18 06:39:47 -0800</bug_when>
    <thetext>Comment on attachment 74119
Patch

LGTM. I&apos;d be inclined to comment why we ignore watchersCached, or at least name it ignoreWatchersCached, or maybe even pass a NULL pointer into removeCachedNotifiers to avoid copying out the unneeded refs. I don&apos;t know which fits best with webkit style though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310839</commentid>
    <comment_count>11</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-11-18 06:55:43 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 74119 [details])
&gt; LGTM. I&apos;d be inclined to comment why we ignore watchersCached, or at least name it ignoreWatchersCached, or maybe even pass a NULL pointer into removeCachedNotifiers to avoid copying out the unneeded refs. I don&apos;t know which fits best with webkit style though?

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

&gt; WebCore/page/Geolocation.cpp:525
&gt; +void Geolocation::removeCachedNotifiers(GeoNotifierVector&amp; notifiers, GeoNotifierVector&amp; cached)

hmm, I was a bit confused with this name and the fact that it has two params, my original thought was that it was removing &quot;cached&quot; from &quot;notifiers&quot;..
not sure if it&apos;d be any clearer, but perhaps extractNotifiersWithCachedPosition?

also, both this and copyToSet could be static helper functions rather than regular methods.

&gt; WebCore/page/Geolocation.cpp:561
&gt; +    GeoNotifierVector oneShotsCached;

as above, perhaps oneShotsWithCachedPosition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310859</commentid>
    <comment_count>12</comment_count>
      <attachid>74119</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-18 07:53:57 -0800</bug_when>
    <thetext>Comment on attachment 74119
Patch

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

&gt;&gt; WebCore/page/Geolocation.cpp:525
&gt;&gt; +void Geolocation::removeCachedNotifiers(GeoNotifierVector&amp; notifiers, GeoNotifierVector&amp; cached)
&gt; 
&gt; hmm, I was a bit confused with this name and the fact that it has two params, my original thought was that it was removing &quot;cached&quot; from &quot;notifiers&quot;..
&gt; not sure if it&apos;d be any clearer, but perhaps extractNotifiersWithCachedPosition?
&gt; 
&gt; also, both this and copyToSet could be static helper functions rather than regular methods.

Agree with method rename. 
GeoNotifier and GeoNotifierVector are private in Geolocation, which makes it hard to bring these methods out as non-member functions. However, they can be static member functions.

&gt;&gt; WebCore/page/Geolocation.cpp:561
&gt;&gt; +    GeoNotifierVector oneShotsCached;
&gt; 
&gt; as above, perhaps oneShotsWithCachedPosition

Agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310860</commentid>
    <comment_count>13</comment_count>
      <attachid>74240</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-18 08:01:35 -0800</bug_when>
    <thetext>Created attachment 74240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310863</commentid>
    <comment_count>14</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-11-18 08:16:28 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=74240) [details]
&gt; Patch

LGTM, thanks john!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310866</commentid>
    <comment_count>15</comment_count>
      <attachid>74240</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-18 08:26:22 -0800</bug_when>
    <thetext>Comment on attachment 74240
Patch

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

&gt; WebCore/ChangeLog:19
&gt; +2010-11-16  John Knottenbelt  &lt;jknotten@chromium.org&gt;

Why the duplication?

&gt; WebCore/page/Geolocation.cpp:534
&gt; +        } else {

no {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310940</commentid>
    <comment_count>16</comment_count>
      <attachid>74255</attachid>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2010-11-18 10:40:41 -0800</bug_when>
    <thetext>Created attachment 74255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310946</commentid>
    <comment_count>17</comment_count>
      <attachid>74255</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-18 10:43:41 -0800</bug_when>
    <thetext>Comment on attachment 74255
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310963</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-18 10:58:34 -0800</bug_when>
    <thetext>Thanks for tackling this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311437</commentid>
    <comment_count>19</comment_count>
      <attachid>74255</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-19 07:06:56 -0800</bug_when>
    <thetext>Comment on attachment 74255
Patch

Clearing flags on attachment: 74255

Committed r72396: &lt;http://trac.webkit.org/changeset/72396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311438</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-19 07:07:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74002</attachid>
            <date>2010-11-16 09:13:27 -0800</date>
            <delta_ts>2010-11-17 06:04:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39908-20101116171325.patch</filename>
            <type>text/plain</type>
            <size>4437</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDM2ZDJlYTZiZDVkMzE4NTc4Y2FhYjI1ODk0OTZiZTRkZWNmZmJkLi4xY2VlM2M0
ZTgxNTZkMWRkYjQxYzZlNzNhMDUzZDI2MDkzYzg0Nzk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTEtMTYgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9zaXRpb25F
cnJvcnMgc2hvdWxkIG5vdCBiZSBzZW50IHRvIEdlb2xvY2F0aW9uIHdhdGNoZXMgb3Igb25lIHNo
b3RzCisgICAgICAgIHRoYXQgYXJlIGR1ZSB0byByZWNlaXZlIGEgdmFsaWQgY2FjaGVkIHBvc2l0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk5
MDgKKworICAgICAgICBSZWVuYWJsZSBmYXN0L2RvbS9HZW9sb2NhdGlvbi9tYXhpbXVtLWFnZS5o
dG1sIG9uIE1hYyBXZWJLaXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKwog
MjAxMC0xMS0xNSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
CmluZGV4IGEwYjJhNzJlZmJmZmI5ZjcyMGI0OTQ2ZmMxNDFlYzE2YTc3OTA3YjkuLjQ5ZDVlOWFl
NDQ4MDc1ZjkxMGM2MWZjNTUzMWE1NzY1MTM2ODM1ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCkBAIC0xODEsOSArMTgxLDYgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWRldmljZS1vcmllbnRhdGlvbi5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2guaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCi0jIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAotZmFzdC9kb20vR2VvbG9j
YXRpb24vbWF4aW11bS1hZ2UuaHRtbAotCiAjIEZpbGVuYW1lcyBhcmVuJ3QgZmlsdGVyZWQgb3V0
IGZyb20gZWRpdCBkcmFncyB5ZXQsIHNlZSBodHRwczovL2J1Z3Mud2VraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zODgyNgogZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtZHJhZy10by1lZGl0YWJsZS5o
dG1sCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZjkzMWE5OWQ2ZjVhODc0MTM2YjU1NWEwZWEwOTc2OWVkNDEzNzUyNC4uOGJmNmU0YjNm
YmY0YWEyNTNhZWE4M2U1M2IxMjVlM2RhNmE0MWI3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMSBAQAogMjAxMC0xMS0x
NiAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3NpdGlvbkVycm9ycyBzaG91
bGQgbm90IGJlIHNlbnQgdG8gR2VvbG9jYXRpb24gd2F0Y2hlcyBvciBvbmUgc2hvdHMKKyAgICAg
ICAgdGhhdCBhcmUgZHVlIHRvIHJlY2VpdmUgYSB2YWxpZCBjYWNoZWQgcG9zaXRpb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL21heGltdW0tYWdlLmh0bWwKKworICAgICAg
ICAqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246
OnNlbmRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6Y29weUNhY2hlZE5v
dGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6aGFuZGxlRXJyb3IpOgor
ICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uaDoKKworMjAxMC0xMS0xNiAgSm9obiBLbm90dGVu
YmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBKZXJl
bXkgT3Jsb3cuCiAKICAgICAgICAgSW50cm9kdWNlIEdlb05vdGlmaWVyVmVjdG9yIHR5cGVkZWYg
Zm9yIGluY3JlYXNlZCByZWFkYWJpbGl0eQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKaW5kZXggMTg1YzA0ZjNm
MmE3OWZhZTc1ZjlkOTBlOGUxMjFiYWY3NGMzYTM5Yi4uODZkOWRmZGU4N2YwOTczMmVkNDI2OTg3
MmI5ZjQ4ODNlODBhNjc5ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCkBAIC00NTksNiArNDU5LDEwIEBA
IHZvaWQgR2VvbG9jYXRpb246OnNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJz
LCBQb3NpdGlvbkVycm9yKiBlcnJvcikKICAgICAgZm9yIChHZW9Ob3RpZmllclZlY3Rvcjo6Y29u
c3RfaXRlcmF0b3IgaXQgPSBub3RpZmllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAg
ICAgICAgICBSZWZQdHI8R2VvTm90aWZpZXI+IG5vdGlmaWVyID0gKml0OwogICAgICAgICAgCisg
ICAgICAgICAvLyBJZiB0aGUgbm90aWZpZXIgaXMgZ29pbmcgdG8gcmV0dXJuIGEgY2FjaGVkIHBv
c2l0aW9uLCBkb24ndCBzZW5kIGFuIGVycm9yLgorICAgICAgICAgaWYgKG5vdGlmaWVyLT5tX3Vz
ZUNhY2hlZFBvc2l0aW9uKQorICAgICAgICAgICAgIGNvbnRpbnVlOworCiAgICAgICAgICBpZiAo
bm90aWZpZXItPm1fZXJyb3JDYWxsYmFjaykKICAgICAgICAgICAgICBub3RpZmllci0+bV9lcnJv
ckNhbGxiYWNrLT5oYW5kbGVFdmVudChlcnJvcik7CiAgICAgIH0KQEAgLTUyMiw2ICs1MjYsMTYg
QEAgdm9pZCBHZW9sb2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQogICAgIGNhbmNlbFJlcXVl
c3RzKGNvcHkpOwogfQogCit2b2lkIEdlb2xvY2F0aW9uOjpjb3B5Q2FjaGVkTm90aWZpZXJzKGNv
bnN0IEdlb05vdGlmaWVyVmVjdG9yJiBzcmMsIEdlb05vdGlmaWVyU2V0JiBkZXN0KQoreworICAg
ICBHZW9Ob3RpZmllclZlY3Rvcjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gc3JjLmVuZCgpOworICAg
ICBmb3IgKEdlb05vdGlmaWVyVmVjdG9yOjpjb25zdF9pdGVyYXRvciBpdCA9IHNyYy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4gbm90aWZp
ZXIgPSAqaXQ7CisgICAgICAgICBpZiAobm90aWZpZXItPm1fdXNlQ2FjaGVkUG9zaXRpb24pCisg
ICAgICAgICAgICAgZGVzdC5hZGQobm90aWZpZXIpOworICAgICB9Cit9CisKIHZvaWQgR2VvbG9j
YXRpb246OmhhbmRsZUVycm9yKFBvc2l0aW9uRXJyb3IqIGVycm9yKQogewogICAgIEFTU0VSVChl
cnJvcik7CkBAIC01NDQsNiArNTU4LDkgQEAgdm9pZCBHZW9sb2NhdGlvbjo6aGFuZGxlRXJyb3Io
UG9zaXRpb25FcnJvciogZXJyb3IpCiAKICAgICBpZiAoIWhhc0xpc3RlbmVycygpKQogICAgICAg
ICBzdG9wVXBkYXRpbmcoKTsKKworICAgIC8vIENvcHkgYmFjayBhbnkgY2FjaGVkIHBvc2l0aW9u
IG5vdGlmaWVycyB0aGF0IHdlcmUgaWdub3JlZCBpbiBzZW5kRXJyb3IuCisgICAgY29weUNhY2hl
ZE5vdGlmaWVycyhvbmVTaG90c0NvcHksIG1fb25lU2hvdHMpOwogfQogCiB2b2lkIEdlb2xvY2F0
aW9uOjpyZXF1ZXN0UGVybWlzc2lvbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb24uaCBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCmluZGV4IGEzYTc5ZjlkODE1ODQx
OTY0YjA4YTVmYjMxMGIxZWU5OGU3MWMyOGEuLmYxMjAwM2VkYTEzYWU0YzRiNDMxM2FlY2FhYjJl
ZGFiNTY5ZGY3MmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCisrKyBi
L1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCkBAIC0xMzIsNiArMTMyLDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgc2VuZEVycm9yKEdlb05vdGlmaWVyVmVjdG9yJiwgUG9zaXRpb25FcnJvciop
OwogICAgIHZvaWQgc2VuZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiwgR2VvcG9zaXRpb24q
KTsKKyAgICB2b2lkIGNvcHlDYWNoZWROb3RpZmllcnMoY29uc3QgR2VvTm90aWZpZXJWZWN0b3Im
LCBHZW9Ob3RpZmllclNldCYpOwogCiAgICAgc3RhdGljIHZvaWQgc3RvcFRpbWVyKEdlb05vdGlm
aWVyVmVjdG9yJik7CiAgICAgdm9pZCBzdG9wVGltZXJzRm9yT25lU2hvdHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74101</attachid>
            <date>2010-11-17 06:04:07 -0800</date>
            <delta_ts>2010-11-17 08:45:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39908-20101117140405.patch</filename>
            <type>text/plain</type>
            <size>5288</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDM2ZDJlYTZiZDVkMzE4NTc4Y2FhYjI1ODk0OTZiZTRkZWNmZmJkLi4xY2VlM2M0
ZTgxNTZkMWRkYjQxYzZlNzNhMDUzZDI2MDkzYzg0Nzk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTEtMTYgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9zaXRpb25F
cnJvcnMgc2hvdWxkIG5vdCBiZSBzZW50IHRvIEdlb2xvY2F0aW9uIHdhdGNoZXMgb3Igb25lIHNo
b3RzCisgICAgICAgIHRoYXQgYXJlIGR1ZSB0byByZWNlaXZlIGEgdmFsaWQgY2FjaGVkIHBvc2l0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk5
MDgKKworICAgICAgICBSZWVuYWJsZSBmYXN0L2RvbS9HZW9sb2NhdGlvbi9tYXhpbXVtLWFnZS5o
dG1sIG9uIE1hYyBXZWJLaXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKwog
MjAxMC0xMS0xNSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
CmluZGV4IGEwYjJhNzJlZmJmZmI5ZjcyMGI0OTQ2ZmMxNDFlYzE2YTc3OTA3YjkuLjQ5ZDVlOWFl
NDQ4MDc1ZjkxMGM2MWZjNTUzMWE1NzY1MTM2ODM1ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCkBAIC0xODEsOSArMTgxLDYgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWRldmljZS1vcmllbnRhdGlvbi5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2guaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCi0jIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAotZmFzdC9kb20vR2VvbG9j
YXRpb24vbWF4aW11bS1hZ2UuaHRtbAotCiAjIEZpbGVuYW1lcyBhcmVuJ3QgZmlsdGVyZWQgb3V0
IGZyb20gZWRpdCBkcmFncyB5ZXQsIHNlZSBodHRwczovL2J1Z3Mud2VraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zODgyNgogZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtZHJhZy10by1lZGl0YWJsZS5o
dG1sCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZjkzMWE5OWQ2ZjVhODc0MTM2YjU1NWEwZWEwOTc2OWVkNDEzNzUyNC4uOGJmNmU0YjNm
YmY0YWEyNTNhZWE4M2U1M2IxMjVlM2RhNmE0MWI3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMSBAQAogMjAxMC0xMS0x
NiAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3NpdGlvbkVycm9ycyBzaG91
bGQgbm90IGJlIHNlbnQgdG8gR2VvbG9jYXRpb24gd2F0Y2hlcyBvciBvbmUgc2hvdHMKKyAgICAg
ICAgdGhhdCBhcmUgZHVlIHRvIHJlY2VpdmUgYSB2YWxpZCBjYWNoZWQgcG9zaXRpb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL21heGltdW0tYWdlLmh0bWwKKworICAgICAg
ICAqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246
OnNlbmRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6Y29weUNhY2hlZE5v
dGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6aGFuZGxlRXJyb3IpOgor
ICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uaDoKKworMjAxMC0xMS0xNiAgSm9obiBLbm90dGVu
YmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBKZXJl
bXkgT3Jsb3cuCiAKICAgICAgICAgSW50cm9kdWNlIEdlb05vdGlmaWVyVmVjdG9yIHR5cGVkZWYg
Zm9yIGluY3JlYXNlZCByZWFkYWJpbGl0eQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKaW5kZXggMTg1YzA0ZjNm
MmE3OWZhZTc1ZjlkOTBlOGUxMjFiYWY3NGMzYTM5Yi4uOTA4NGE5MjgyZDMzZmZkMGEzOTUxZWUx
YWUyZTk0ODdhOWNmOTQ3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCkBAIC01MjIsNiArNTIyLDI5IEBA
IHZvaWQgR2VvbG9jYXRpb246OmNhbmNlbEFsbFJlcXVlc3RzKCkKICAgICBjYW5jZWxSZXF1ZXN0
cyhjb3B5KTsKIH0KIAordm9pZCBHZW9sb2NhdGlvbjo6cmVtb3ZlQ2FjaGVkTm90aWZpZXJzKEdl
b05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb05vdGlmaWVyVmVjdG9yJiBjYWNoZWQpCit7
CisgICAgR2VvTm90aWZpZXJWZWN0b3Igbm9uQ2FjaGVkOworICAgIEdlb05vdGlmaWVyVmVjdG9y
OjppdGVyYXRvciBlbmQgPSBub3RpZmllcnMuZW5kKCk7CisgICAgZm9yIChHZW9Ob3RpZmllclZl
Y3Rvcjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBub3RpZmllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4gbm90aWZpZXIgPSAqaXQ7CisgICAg
ICAgIGlmIChub3RpZmllci0+bV91c2VDYWNoZWRQb3NpdGlvbikKKyAgICAgICAgICAgIGNhY2hl
ZC5hcHBlbmQobm90aWZpZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBub25DYWNoZWQu
YXBwZW5kKG5vdGlmaWVyKTsKKyAgICB9CisgICAgbm90aWZpZXJzLnN3YXAobm9uQ2FjaGVkKTsK
K30KKwordm9pZCBHZW9sb2NhdGlvbjo6Y29weVRvU2V0KGNvbnN0IEdlb05vdGlmaWVyVmVjdG9y
JiBzcmMsIEdlb05vdGlmaWVyU2V0JiBkZXN0KQoreworICAgICBHZW9Ob3RpZmllclZlY3Rvcjo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gc3JjLmVuZCgpOworICAgICBmb3IgKEdlb05vdGlmaWVyVmVj
dG9yOjpjb25zdF9pdGVyYXRvciBpdCA9IHNyYy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
KyAgICAgICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4gbm90aWZpZXIgPSAqaXQ7CisgICAgICAgICAg
ICAgZGVzdC5hZGQobm90aWZpZXIpOworICAgICB9Cit9CisKIHZvaWQgR2VvbG9jYXRpb246Omhh
bmRsZUVycm9yKFBvc2l0aW9uRXJyb3IqIGVycm9yKQogewogICAgIEFTU0VSVChlcnJvcik7CkBA
IC01MzIsNiArNTU1LDE1IEBAIHZvaWQgR2VvbG9jYXRpb246OmhhbmRsZUVycm9yKFBvc2l0aW9u
RXJyb3IqIGVycm9yKQogICAgIEdlb05vdGlmaWVyVmVjdG9yIHdhdGNoZXJzQ29weTsKICAgICBt
X3dhdGNoZXJzLmdldE5vdGlmaWVyc1ZlY3Rvcih3YXRjaGVyc0NvcHkpOwogCisgICAgR2VvTm90
aWZpZXJWZWN0b3Igb25lU2hvdHNDYWNoZWQ7CisgICAgR2VvTm90aWZpZXJWZWN0b3Igd2F0Y2hl
cnNDYWNoZWQ7CisgICAgaWYgKCFpc0RlbmllZCgpKSB7CisgICAgICAgIC8vIElmIHBlcm1pc3Np
b24gaGFzIG5vdCBiZWVuIGRlbmllZCAoaS5lLiBub3QgeWV0IHNldCBvciBncmFudGVkKSwgZG9u
J3QKKyAgICAgICAgLy8gc2VuZCB0aGUgZXJyb3IgdG8gbm90aWZpZXJzIGR1ZSB0byByZWNlaXZl
IGEgY2FjaGVkIHBvc2l0aW9uLgorICAgICAgICByZW1vdmVDYWNoZWROb3RpZmllcnMob25lU2hv
dHNDb3B5LCBvbmVTaG90c0NhY2hlZCk7CisgICAgICAgIHJlbW92ZUNhY2hlZE5vdGlmaWVycyh3
YXRjaGVyc0NvcHksIHdhdGNoZXJzQ2FjaGVkKTsKKyAgICB9CisKICAgICAvLyBDbGVhciB0aGUg
bGlzdHMgYmVmb3JlIHdlIG1ha2UgdGhlIGNhbGxiYWNrcywgdG8gYXZvaWQgY2xlYXJpbmcgbm90
aWZpZXJzCiAgICAgLy8gYWRkZWQgYnkgY2FsbHMgdG8gR2VvbG9jYXRpb24gbWV0aG9kcyBmcm9t
IHRoZSBjYWxsYmFja3MsIGFuZCB0byBwcmV2ZW50CiAgICAgLy8gZnVydGhlciBjYWxsYmFja3Mg
dG8gdGhlc2Ugbm90aWZpZXJzLgpAQCAtNTQ0LDYgKzU3NiwxMCBAQCB2b2lkIEdlb2xvY2F0aW9u
OjpoYW5kbGVFcnJvcihQb3NpdGlvbkVycm9yKiBlcnJvcikKIAogICAgIGlmICghaGFzTGlzdGVu
ZXJzKCkpCiAgICAgICAgIHN0b3BVcGRhdGluZygpOworCisgICAgLy8gUmVzdG9yZSBub3RpZmll
cnMgZHVlIHRvIHJlY2VpdmUgYSBjYWNoZWQgcG9zaXRpb24gKG1haW50YWluaW5nIGEKKyAgICAv
LyByZWZlcmVuY2UgdG8gdGhlbSB1bnRpbCB0aGVpciB0aW1lciBmaXJlcykuCisgICAgY29weVRv
U2V0KG9uZVNob3RzQ2FjaGVkLCBtX29uZVNob3RzKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6
cmVxdWVzdFBlcm1pc3Npb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmggYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAppbmRleCBhM2E3OWY5ZDgxNTg0MTk2NGIw
OGE1ZmIzMTBiMWVlOThlNzFjMjhhLi45MjQ5MDlmYmM2NmVlNWNhYWZjNmFmZTVmMjllZGEyMTBi
Y2E2NmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAorKysgYi9XZWJD
b3JlL3BhZ2UvR2VvbG9jYXRpb24uaApAQCAtMTMzLDYgKzEzMyw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZW5kRXJyb3IoR2VvTm90aWZpZXJWZWN0b3ImLCBQb3NpdGlvbkVycm9yKik7CiAgICAg
dm9pZCBzZW5kUG9zaXRpb24oR2VvTm90aWZpZXJWZWN0b3ImLCBHZW9wb3NpdGlvbiopOwogCisg
ICAgdm9pZCByZW1vdmVDYWNoZWROb3RpZmllcnMoR2VvTm90aWZpZXJWZWN0b3ImIG5vdGlmaWVy
cywgR2VvTm90aWZpZXJWZWN0b3ImIGNhY2hlZCk7CisgICAgdm9pZCBjb3B5VG9TZXQoY29uc3Qg
R2VvTm90aWZpZXJWZWN0b3ImLCBHZW9Ob3RpZmllclNldCYpOworCiAgICAgc3RhdGljIHZvaWQg
c3RvcFRpbWVyKEdlb05vdGlmaWVyVmVjdG9yJik7CiAgICAgdm9pZCBzdG9wVGltZXJzRm9yT25l
U2hvdHMoKTsKICAgICB2b2lkIHN0b3BUaW1lcnNGb3JXYXRjaGVycygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74119</attachid>
            <date>2010-11-17 08:45:20 -0800</date>
            <delta_ts>2010-11-18 08:01:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39908-20101117164518.patch</filename>
            <type>text/plain</type>
            <size>5362</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDM2ZDJlYTZiZDVkMzE4NTc4Y2FhYjI1ODk0OTZiZTRkZWNmZmJkLi4xY2VlM2M0
ZTgxNTZkMWRkYjQxYzZlNzNhMDUzZDI2MDkzYzg0Nzk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTEtMTYgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUG9zaXRpb25F
cnJvcnMgc2hvdWxkIG5vdCBiZSBzZW50IHRvIEdlb2xvY2F0aW9uIHdhdGNoZXMgb3Igb25lIHNo
b3RzCisgICAgICAgIHRoYXQgYXJlIGR1ZSB0byByZWNlaXZlIGEgdmFsaWQgY2FjaGVkIHBvc2l0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk5
MDgKKworICAgICAgICBSZWVuYWJsZSBmYXN0L2RvbS9HZW9sb2NhdGlvbi9tYXhpbXVtLWFnZS5o
dG1sIG9uIE1hYyBXZWJLaXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKwog
MjAxMC0xMS0xNSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
CmluZGV4IGEwYjJhNzJlZmJmZmI5ZjcyMGI0OTQ2ZmMxNDFlYzE2YTc3OTA3YjkuLjQ5ZDVlOWFl
NDQ4MDc1ZjkxMGM2MWZjNTUzMWE1NzY1MTM2ODM1ZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCkBAIC0xODEsOSArMTgxLDYgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVz
LWRldmljZS1vcmllbnRhdGlvbi5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2guaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCi0jIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAotZmFzdC9kb20vR2VvbG9j
YXRpb24vbWF4aW11bS1hZ2UuaHRtbAotCiAjIEZpbGVuYW1lcyBhcmVuJ3QgZmlsdGVyZWQgb3V0
IGZyb20gZWRpdCBkcmFncyB5ZXQsIHNlZSBodHRwczovL2J1Z3Mud2VraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zODgyNgogZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtZHJhZy10by1lZGl0YWJsZS5o
dG1sCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZjkzMWE5OWQ2ZjVhODc0MTM2YjU1NWEwZWEwOTc2OWVkNDEzNzUyNC4uOGJmNmU0YjNm
YmY0YWEyNTNhZWE4M2U1M2IxMjVlM2RhNmE0MWI3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMSBAQAogMjAxMC0xMS0x
NiAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3NpdGlvbkVycm9ycyBzaG91
bGQgbm90IGJlIHNlbnQgdG8gR2VvbG9jYXRpb24gd2F0Y2hlcyBvciBvbmUgc2hvdHMKKyAgICAg
ICAgdGhhdCBhcmUgZHVlIHRvIHJlY2VpdmUgYSB2YWxpZCBjYWNoZWQgcG9zaXRpb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0dlb2xvY2F0aW9uL21heGltdW0tYWdlLmh0bWwKKworICAgICAg
ICAqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246
OnNlbmRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6Y29weUNhY2hlZE5v
dGlmaWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6aGFuZGxlRXJyb3IpOgor
ICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uaDoKKworMjAxMC0xMS0xNiAgSm9obiBLbm90dGVu
YmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBKZXJl
bXkgT3Jsb3cuCiAKICAgICAgICAgSW50cm9kdWNlIEdlb05vdGlmaWVyVmVjdG9yIHR5cGVkZWYg
Zm9yIGluY3JlYXNlZCByZWFkYWJpbGl0eQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKaW5kZXggMTg1YzA0ZjNm
MmE3OWZhZTc1ZjlkOTBlOGUxMjFiYWY3NGMzYTM5Yi4uZDg2OGJkOGQ3YjdlODZmNTY2NGJmYjlh
MDZkOTQxZDM1OGJmYmQ1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNw
cAorKysgYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCkBAIC01MjIsNiArNTIyLDI5IEBA
IHZvaWQgR2VvbG9jYXRpb246OmNhbmNlbEFsbFJlcXVlc3RzKCkKICAgICBjYW5jZWxSZXF1ZXN0
cyhjb3B5KTsKIH0KIAordm9pZCBHZW9sb2NhdGlvbjo6cmVtb3ZlQ2FjaGVkTm90aWZpZXJzKEdl
b05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb05vdGlmaWVyVmVjdG9yJiBjYWNoZWQpCit7
CisgICAgR2VvTm90aWZpZXJWZWN0b3Igbm9uQ2FjaGVkOworICAgIEdlb05vdGlmaWVyVmVjdG9y
OjppdGVyYXRvciBlbmQgPSBub3RpZmllcnMuZW5kKCk7CisgICAgZm9yIChHZW9Ob3RpZmllclZl
Y3Rvcjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBub3RpZmllcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4gbm90aWZpZXIgPSAqaXQ7CisgICAg
ICAgIGlmIChub3RpZmllci0+bV91c2VDYWNoZWRQb3NpdGlvbikKKyAgICAgICAgICAgIGNhY2hl
ZC5hcHBlbmQobm90aWZpZXIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBub25DYWNoZWQu
YXBwZW5kKG5vdGlmaWVyKTsKKyAgICB9CisgICAgbm90aWZpZXJzLnN3YXAobm9uQ2FjaGVkKTsK
K30KKwordm9pZCBHZW9sb2NhdGlvbjo6Y29weVRvU2V0KGNvbnN0IEdlb05vdGlmaWVyVmVjdG9y
JiBzcmMsIEdlb05vdGlmaWVyU2V0JiBkZXN0KQoreworICAgICBHZW9Ob3RpZmllclZlY3Rvcjo6
Y29uc3RfaXRlcmF0b3IgZW5kID0gc3JjLmVuZCgpOworICAgICBmb3IgKEdlb05vdGlmaWVyVmVj
dG9yOjpjb25zdF9pdGVyYXRvciBpdCA9IHNyYy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
KyAgICAgICAgIFJlZlB0cjxHZW9Ob3RpZmllcj4gbm90aWZpZXIgPSAqaXQ7CisgICAgICAgICAg
ICAgZGVzdC5hZGQobm90aWZpZXIpOworICAgICB9Cit9CisKIHZvaWQgR2VvbG9jYXRpb246Omhh
bmRsZUVycm9yKFBvc2l0aW9uRXJyb3IqIGVycm9yKQogewogICAgIEFTU0VSVChlcnJvcik7CkBA
IC01MzUsMTUgKzU1OCwyOSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpoYW5kbGVFcnJvcihQb3NpdGlv
bkVycm9yKiBlcnJvcikKICAgICAvLyBDbGVhciB0aGUgbGlzdHMgYmVmb3JlIHdlIG1ha2UgdGhl
IGNhbGxiYWNrcywgdG8gYXZvaWQgY2xlYXJpbmcgbm90aWZpZXJzCiAgICAgLy8gYWRkZWQgYnkg
Y2FsbHMgdG8gR2VvbG9jYXRpb24gbWV0aG9kcyBmcm9tIHRoZSBjYWxsYmFja3MsIGFuZCB0byBw
cmV2ZW50CiAgICAgLy8gZnVydGhlciBjYWxsYmFja3MgdG8gdGhlc2Ugbm90aWZpZXJzLgorICAg
IEdlb05vdGlmaWVyVmVjdG9yIG9uZVNob3RzQ2FjaGVkOwogICAgIG1fb25lU2hvdHMuY2xlYXIo
KTsKICAgICBpZiAoZXJyb3ItPmlzRmF0YWwoKSkKICAgICAgICAgbV93YXRjaGVycy5jbGVhcigp
OworICAgIGVsc2UgeworICAgICAgICAvLyBEb24ndCBzZW5kIG5vbi1mYXRhbCBlcnJvcnMgdG8g
bm90aWZpZXJzIGR1ZSB0byByZWNlaXZlIGEgY2FjaGVkIHBvc2l0aW9uLgorICAgICAgICByZW1v
dmVDYWNoZWROb3RpZmllcnMob25lU2hvdHNDb3B5LCBvbmVTaG90c0NhY2hlZCk7CisKKyAgICAg
ICAgR2VvTm90aWZpZXJWZWN0b3Igd2F0Y2hlcnNDYWNoZWQ7CisgICAgICAgIHJlbW92ZUNhY2hl
ZE5vdGlmaWVycyh3YXRjaGVyc0NvcHksIHdhdGNoZXJzQ2FjaGVkKTsKKyAgICB9CiAKICAgICBz
ZW5kRXJyb3Iob25lU2hvdHNDb3B5LCBlcnJvcik7CiAgICAgc2VuZEVycm9yKHdhdGNoZXJzQ29w
eSwgZXJyb3IpOwogCisgICAgLy8gaGFzTGlzdGVuZXJzKCkgZG9lc24ndCBkaXN0aW5ndWlzaCBi
ZXR3ZWVuIG5vdGlmaWVycyBkdWUgdG8gcmVjZWl2ZSBhCisgICAgLy8gY2FjaGVkIHBvc2l0aW9u
IGFuZCB0aG9zZSByZXF1aXJpbmcgYSBmcmVzaCBwb3NpdGlvbi4gUGVyZm9ybSB0aGUgY2hlY2sK
KyAgICAvLyBiZWZvcmUgcmVzdG9yaW5nIHRoZSBub3RpZmllcnMgYmVsb3cuCiAgICAgaWYgKCFo
YXNMaXN0ZW5lcnMoKSkKICAgICAgICAgc3RvcFVwZGF0aW5nKCk7CisKKyAgICAvLyBNYWludGFp
biBhIHJlZmVyZW5jZSB0byB0aGUgY2FjaGVkIG5vdGlmaWVycyB1bnRpbCB0aGVpciB0aW1lciBm
aXJlcy4KKyAgICBjb3B5VG9TZXQob25lU2hvdHNDYWNoZWQsIG1fb25lU2hvdHMpOwogfQogCiB2
b2lkIEdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbigpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvR2VvbG9jYXRpb24uaCBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCmluZGV4IGEz
YTc5ZjlkODE1ODQxOTY0YjA4YTVmYjMxMGIxZWU5OGU3MWMyOGEuLjkyNDkwOWZiYzY2ZWU1Y2Fh
ZmM2YWZlNWYyOWVkYTIxMGJjYTY2YmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9HZW9sb2Nh
dGlvbi5oCisrKyBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCkBAIC0xMzMsNiArMTMzLDkg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNlbmRFcnJvcihHZW9Ob3RpZmllclZlY3RvciYsIFBvc2l0
aW9uRXJyb3IqKTsKICAgICB2b2lkIHNlbmRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYsIEdl
b3Bvc2l0aW9uKik7CiAKKyAgICB2b2lkIHJlbW92ZUNhY2hlZE5vdGlmaWVycyhHZW9Ob3RpZmll
clZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3RpZmllclZlY3RvciYgY2FjaGVkKTsKKyAgICB2b2lk
IGNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYsIEdlb05vdGlmaWVyU2V0Jik7CisK
ICAgICBzdGF0aWMgdm9pZCBzdG9wVGltZXIoR2VvTm90aWZpZXJWZWN0b3ImKTsKICAgICB2b2lk
IHN0b3BUaW1lcnNGb3JPbmVTaG90cygpOwogICAgIHZvaWQgc3RvcFRpbWVyc0ZvcldhdGNoZXJz
KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74240</attachid>
            <date>2010-11-18 08:01:35 -0800</date>
            <delta_ts>2010-11-18 10:40:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39908-20101118160132.patch</filename>
            <type>text/plain</type>
            <size>6302</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMzQzZWM0ZjM2NzhhZjk1MjU5MjMwOTIwMThjYzg5Y2MzMjI0NzliLi40MjlhNGFl
OGU3M2ZiNmRlNmI2MWJiMWIwZTEzOGU3NWRkZGQzNmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMTYgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVlbnRyYW50
IEdlb2xvY2F0aW9uIHRlc3RzIGNyYXNoIHdpdGggYW4gYXNzZXJ0aW9uLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk5MDgKKworICAgICAgICBQb3Np
dGlvbkVycm9ycyBzaG91bGQgbm90IGJlIHNlbnQgdG8gR2VvbG9jYXRpb24gd2F0Y2hlcyBvciBv
bmUKKyAgICAgICAgc2hvdHMgdGhhdCBhcmUgZHVlIHRvIHJlY2VpdmUgYSB2YWxpZCBjYWNoZWQg
cG9zaXRpb24uIFJlLWVuYWJsZQorICAgICAgICBmYXN0L2RvbS9HZW9sb2NhdGlvbi9tYXhpbXVt
LWFnZS5odG1sIG9uIE1hYyBXZWJLaXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDoKKwogMjAxMC0xMS0xOCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCmluZGV4IDI1ZWQ1MmRjYzE2OTBmNjE2NmM3ZWEzMjhlZWU4Y2ZjZGMwZjZlMGUuLjVh
NzJkM2JhYzA4ODkyNmNkYzlkZjY0NTBhZTRjZmM1YTVkMGExOWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCkBAIC0xODEsOSArMTgxLDYgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0aWVzLWRldmljZS1vcmllbnRhdGlvbi5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2guaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCi0j
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAotZmFzdC9kb20v
R2VvbG9jYXRpb24vbWF4aW11bS1hZ2UuaHRtbAotCiAjIEZpbGVuYW1lcyBhcmVuJ3QgZmlsdGVy
ZWQgb3V0IGZyb20gZWRpdCBkcmFncyB5ZXQsIHNlZSBodHRwczovL2J1Z3Mud2VraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODgyNgogZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtZHJhZy10by1lZGl0
YWJsZS5odG1sCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZjVhYjNhZjc1ZTgyNzI1MGZkMGUyNDAzMzYyZDIwMDkyMDAwM2EwOC4uNTMz
MWMxMjA4N2FmZmRlMTI0NmJkZmZjZmRjMjBjNjcxM2I3MzIxNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAx
MC0xMS0xNiAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWVudHJhbnQgR2Vv
bG9jYXRpb24gdGVzdHMgY3Jhc2ggd2l0aCBhbiBhc3NlcnRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAorCisgICAgICAgIFBvc2l0aW9u
RXJyb3JzIHNob3VsZCBub3QgYmUgc2VudCB0byBHZW9sb2NhdGlvbiB3YXRjaGVzIG9yIG9uZSBz
aG90cworICAgICAgICB0aGF0IGFyZSBkdWUgdG8gcmVjZWl2ZSBhIHZhbGlkIGNhY2hlZCBwb3Np
dGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9tYXhpbXVtLWFnZS5o
dG1sCisKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246
OmNvcHlDYWNoZWROb3RpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Omhh
bmRsZUVycm9yKToKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uLmg6CisKKzIwMTAtMTEtMTYg
IEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSmVyZW15IE9ybG93LgorCisgICAgICAgIEludHJvZHVjZSBHZW9Ob3RpZmllclZl
Y3RvciB0eXBlZGVmIGZvciBpbmNyZWFzZWQgcmVhZGFiaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTk3CisKKyAgICAgICAgKiBwYWdlL0dl
b2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpXYXRjaGVyczo6
Z2V0Tm90aWZpZXJzVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpzZW5k
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnNlbmRQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3RvcFRpbWVyKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uOjpzdG9wVGltZXJzRm9yT25lU2hvdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6R2VvbG9jYXRpb246OnN0b3BUaW1lcnNGb3JXYXRjaGVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6Y2FuY2VsUmVxdWVzdHMpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9j
YXRpb246OmNhbmNlbEFsbFJlcXVlc3RzKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
OjpoYW5kbGVFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6bWFrZVN1Y2Nl
c3NDYWxsYmFja3MpOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uaDoKKwogMjAxMC0xMS0x
OCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAppbmRleCA3Njg2Y2E5N2Jm
Mjg5YmRkNmY1MTdiMzI1YmM5MjMxYmJkMWRiYTkxLi43MTZjZWI3OTUzNmExMWIzZjJiOGEwY2M3
ZjlkZDQ3MWNhZTBkY2NiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3Bw
CisrKyBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKQEAgLTUyMiw2ICs1MjIsMzEgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6Y2FuY2VsQWxsUmVxdWVzdHMoKQogICAgIGNhbmNlbFJlcXVlc3Rz
KGNvcHkpOwogfQogCit2b2lkIEdlb2xvY2F0aW9uOjpleHRyYWN0Tm90aWZpZXJzV2l0aENhY2hl
ZFBvc2l0aW9uKEdlb05vdGlmaWVyVmVjdG9yJiBub3RpZmllcnMsIEdlb05vdGlmaWVyVmVjdG9y
KiBjYWNoZWQpCit7CisgICAgR2VvTm90aWZpZXJWZWN0b3Igbm9uQ2FjaGVkOworICAgIEdlb05v
dGlmaWVyVmVjdG9yOjppdGVyYXRvciBlbmQgPSBub3RpZmllcnMuZW5kKCk7CisgICAgZm9yIChH
ZW9Ob3RpZmllclZlY3Rvcjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBub3RpZmllcnMuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIEdlb05vdGlmaWVyKiBub3RpZmllciA9IGl0LT5n
ZXQoKTsKKyAgICAgICAgaWYgKG5vdGlmaWVyLT5tX3VzZUNhY2hlZFBvc2l0aW9uKSB7CisgICAg
ICAgICAgICBpZiAoY2FjaGVkKQorICAgICAgICAgICAgICAgIGNhY2hlZC0+YXBwZW5kKG5vdGlm
aWVyKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG5vbkNhY2hlZC5hcHBlbmQobm90
aWZpZXIpOworICAgICAgICB9CisgICAgfQorICAgIG5vdGlmaWVycy5zd2FwKG5vbkNhY2hlZCk7
Cit9CisKK3ZvaWQgR2VvbG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3Rv
ciYgc3JjLCBHZW9Ob3RpZmllclNldCYgZGVzdCkKK3sKKyAgICAgR2VvTm90aWZpZXJWZWN0b3I6
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHNyYy5lbmQoKTsKKyAgICAgZm9yIChHZW9Ob3RpZmllclZl
Y3Rvcjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBzcmMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgICAgICBHZW9Ob3RpZmllciogbm90aWZpZXIgPSBpdC0+Z2V0KCk7CisgICAgICAgICBk
ZXN0LmFkZChub3RpZmllcik7CisgICAgIH0KK30KKwogdm9pZCBHZW9sb2NhdGlvbjo6aGFuZGxl
RXJyb3IoUG9zaXRpb25FcnJvciogZXJyb3IpCiB7CiAgICAgQVNTRVJUKGVycm9yKTsKQEAgLTUz
NSwxNSArNTYwLDI3IEBAIHZvaWQgR2VvbG9jYXRpb246OmhhbmRsZUVycm9yKFBvc2l0aW9uRXJy
b3IqIGVycm9yKQogICAgIC8vIENsZWFyIHRoZSBsaXN0cyBiZWZvcmUgd2UgbWFrZSB0aGUgY2Fs
bGJhY2tzLCB0byBhdm9pZCBjbGVhcmluZyBub3RpZmllcnMKICAgICAvLyBhZGRlZCBieSBjYWxs
cyB0byBHZW9sb2NhdGlvbiBtZXRob2RzIGZyb20gdGhlIGNhbGxiYWNrcywgYW5kIHRvIHByZXZl
bnQKICAgICAvLyBmdXJ0aGVyIGNhbGxiYWNrcyB0byB0aGVzZSBub3RpZmllcnMuCisgICAgR2Vv
Tm90aWZpZXJWZWN0b3Igb25lU2hvdHNXaXRoQ2FjaGVkUG9zaXRpb247CiAgICAgbV9vbmVTaG90
cy5jbGVhcigpOwogICAgIGlmIChlcnJvci0+aXNGYXRhbCgpKQogICAgICAgICBtX3dhdGNoZXJz
LmNsZWFyKCk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIERvbid0IHNlbmQgbm9uLWZhdGFsIGVy
cm9ycyB0byBub3RpZmllcnMgZHVlIHRvIHJlY2VpdmUgYSBjYWNoZWQgcG9zaXRpb24uCisgICAg
ICAgIGV4dHJhY3ROb3RpZmllcnNXaXRoQ2FjaGVkUG9zaXRpb24ob25lU2hvdHNDb3B5LCAmb25l
U2hvdHNXaXRoQ2FjaGVkUG9zaXRpb24pOworICAgICAgICBleHRyYWN0Tm90aWZpZXJzV2l0aENh
Y2hlZFBvc2l0aW9uKHdhdGNoZXJzQ29weSwgMCk7CisgICAgfQogCiAgICAgc2VuZEVycm9yKG9u
ZVNob3RzQ29weSwgZXJyb3IpOwogICAgIHNlbmRFcnJvcih3YXRjaGVyc0NvcHksIGVycm9yKTsK
IAorICAgIC8vIGhhc0xpc3RlbmVycygpIGRvZXNuJ3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBub3Rp
ZmllcnMgZHVlIHRvIHJlY2VpdmUgYQorICAgIC8vIGNhY2hlZCBwb3NpdGlvbiBhbmQgdGhvc2Ug
cmVxdWlyaW5nIGEgZnJlc2ggcG9zaXRpb24uIFBlcmZvcm0gdGhlIGNoZWNrCisgICAgLy8gYmVm
b3JlIHJlc3RvcmluZyB0aGUgbm90aWZpZXJzIGJlbG93LgogICAgIGlmICghaGFzTGlzdGVuZXJz
KCkpCiAgICAgICAgIHN0b3BVcGRhdGluZygpOworCisgICAgLy8gTWFpbnRhaW4gYSByZWZlcmVu
Y2UgdG8gdGhlIGNhY2hlZCBub3RpZmllcnMgdW50aWwgdGhlaXIgdGltZXIgZmlyZXMuCisgICAg
Y29weVRvU2V0KG9uZVNob3RzV2l0aENhY2hlZFBvc2l0aW9uLCBtX29uZVNob3RzKTsKIH0KIAog
dm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0dlb2xvY2F0aW9uLmggYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAppbmRleCBh
M2E3OWY5ZDgxNTg0MTk2NGIwOGE1ZmIzMTBiMWVlOThlNzFjMjhhLi4zMDYyMTRiMDgzNzUzNTQy
MmMzMTFmNGU5ZWZiN2IxM2EwNTI2MzMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvR2VvbG9j
YXRpb24uaAorKysgYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaApAQCAtMTMzLDYgKzEzMyw5
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kRXJyb3IoR2VvTm90aWZpZXJWZWN0b3ImLCBQb3Np
dGlvbkVycm9yKik7CiAgICAgdm9pZCBzZW5kUG9zaXRpb24oR2VvTm90aWZpZXJWZWN0b3ImLCBH
ZW9wb3NpdGlvbiopOwogCisgICAgc3RhdGljIHZvaWQgZXh0cmFjdE5vdGlmaWVyc1dpdGhDYWNo
ZWRQb3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3RpZmllclZlY3Rv
ciogY2FjaGVkKTsKKyAgICBzdGF0aWMgdm9pZCBjb3B5VG9TZXQoY29uc3QgR2VvTm90aWZpZXJW
ZWN0b3ImLCBHZW9Ob3RpZmllclNldCYpOworCiAgICAgc3RhdGljIHZvaWQgc3RvcFRpbWVyKEdl
b05vdGlmaWVyVmVjdG9yJik7CiAgICAgdm9pZCBzdG9wVGltZXJzRm9yT25lU2hvdHMoKTsKICAg
ICB2b2lkIHN0b3BUaW1lcnNGb3JXYXRjaGVycygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74255</attachid>
            <date>2010-11-18 10:40:41 -0800</date>
            <delta_ts>2010-11-19 07:06:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39908-20101118184038.patch</filename>
            <type>text/plain</type>
            <size>5489</size>
            <attacher name="John Knottenbelt">jknotten</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMzQzZWM0ZjM2NzhhZjk1MjU5MjMwOTIwMThjYzg5Y2MzMjI0NzliLi40MjlhNGFl
OGU3M2ZiNmRlNmI2MWJiMWIwZTEzOGU3NWRkZGQzNmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMTYgIEpvaG4gS25vdHRlbmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVlbnRyYW50
IEdlb2xvY2F0aW9uIHRlc3RzIGNyYXNoIHdpdGggYW4gYXNzZXJ0aW9uLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk5MDgKKworICAgICAgICBQb3Np
dGlvbkVycm9ycyBzaG91bGQgbm90IGJlIHNlbnQgdG8gR2VvbG9jYXRpb24gd2F0Y2hlcyBvciBv
bmUKKyAgICAgICAgc2hvdHMgdGhhdCBhcmUgZHVlIHRvIHJlY2VpdmUgYSB2YWxpZCBjYWNoZWQg
cG9zaXRpb24uIFJlLWVuYWJsZQorICAgICAgICBmYXN0L2RvbS9HZW9sb2NhdGlvbi9tYXhpbXVt
LWFnZS5odG1sIG9uIE1hYyBXZWJLaXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDoKKwogMjAxMC0xMS0xOCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCmluZGV4IDI1ZWQ1MmRjYzE2OTBmNjE2NmM3ZWEzMjhlZWU4Y2ZjZGMwZjZlMGUuLjVh
NzJkM2JhYzA4ODkyNmNkYzlkZjY0NTBhZTRjZmM1YTVkMGExOWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCkBAIC0xODEsOSArMTgxLDYgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0aWVzLWRldmljZS1vcmllbnRhdGlvbi5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2guaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCi0j
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAotZmFzdC9kb20v
R2VvbG9jYXRpb24vbWF4aW11bS1hZ2UuaHRtbAotCiAjIEZpbGVuYW1lcyBhcmVuJ3QgZmlsdGVy
ZWQgb3V0IGZyb20gZWRpdCBkcmFncyB5ZXQsIHNlZSBodHRwczovL2J1Z3Mud2VraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODgyNgogZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtZHJhZy10by1lZGl0
YWJsZS5odG1sCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZjVhYjNhZjc1ZTgyNzI1MGZkMGUyNDAzMzYyZDIwMDkyMDAwM2EwOC4uYWRl
NDA2M2ZiMTg5MDBkNWY2MjA4MTlkYzcyYWU5NGIzYThiMmExNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
MC0xMS0xNiAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWVudHJhbnQgR2Vv
bG9jYXRpb24gdGVzdHMgY3Jhc2ggd2l0aCBhbiBhc3NlcnRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTkwOAorCisgICAgICAgIFBvc2l0aW9u
RXJyb3JzIHNob3VsZCBub3QgYmUgc2VudCB0byBHZW9sb2NhdGlvbiB3YXRjaGVzIG9yIG9uZSBz
aG90cworICAgICAgICB0aGF0IGFyZSBkdWUgdG8gcmVjZWl2ZSBhIHZhbGlkIGNhY2hlZCBwb3Np
dGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9tYXhpbXVtLWFnZS5o
dG1sCisKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uOjpzZW5kRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246
OmNvcHlDYWNoZWROb3RpZmllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Omhh
bmRsZUVycm9yKToKKyAgICAgICAgKiBwYWdlL0dlb2xvY2F0aW9uLmg6CisKIDIwMTAtMTEtMTgg
IE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAKaW5kZXggNzY4NmNhOTdiZjI4
OWJkZDZmNTE3YjMyNWJjOTIzMWJiZDFkYmE5MS4uOTEzNTA0OTJiMzk4NjUzOGFjZDE3ZjM5Njk5
NTZhYjgxMzA0YmI1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAor
KysgYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCkBAIC01MjIsNiArNTIyLDMwIEBAIHZv
aWQgR2VvbG9jYXRpb246OmNhbmNlbEFsbFJlcXVlc3RzKCkKICAgICBjYW5jZWxSZXF1ZXN0cyhj
b3B5KTsKIH0KIAordm9pZCBHZW9sb2NhdGlvbjo6ZXh0cmFjdE5vdGlmaWVyc1dpdGhDYWNoZWRQ
b3NpdGlvbihHZW9Ob3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3RpZmllclZlY3Rvciog
Y2FjaGVkKQoreworICAgIEdlb05vdGlmaWVyVmVjdG9yIG5vbkNhY2hlZDsKKyAgICBHZW9Ob3Rp
ZmllclZlY3Rvcjo6aXRlcmF0b3IgZW5kID0gbm90aWZpZXJzLmVuZCgpOworICAgIGZvciAoR2Vv
Tm90aWZpZXJWZWN0b3I6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbm90aWZpZXJzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgeworICAgICAgICBHZW9Ob3RpZmllciogbm90aWZpZXIgPSBpdC0+Z2V0
KCk7CisgICAgICAgIGlmIChub3RpZmllci0+bV91c2VDYWNoZWRQb3NpdGlvbikgeworICAgICAg
ICAgICAgaWYgKGNhY2hlZCkKKyAgICAgICAgICAgICAgICBjYWNoZWQtPmFwcGVuZChub3RpZmll
cik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbm9uQ2FjaGVkLmFwcGVuZChub3RpZmll
cik7CisgICAgfQorICAgIG5vdGlmaWVycy5zd2FwKG5vbkNhY2hlZCk7Cit9CisKK3ZvaWQgR2Vv
bG9jYXRpb246OmNvcHlUb1NldChjb25zdCBHZW9Ob3RpZmllclZlY3RvciYgc3JjLCBHZW9Ob3Rp
ZmllclNldCYgZGVzdCkKK3sKKyAgICAgR2VvTm90aWZpZXJWZWN0b3I6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IHNyYy5lbmQoKTsKKyAgICAgZm9yIChHZW9Ob3RpZmllclZlY3Rvcjo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBzcmMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICBHZW9O
b3RpZmllciogbm90aWZpZXIgPSBpdC0+Z2V0KCk7CisgICAgICAgICBkZXN0LmFkZChub3RpZmll
cik7CisgICAgIH0KK30KKwogdm9pZCBHZW9sb2NhdGlvbjo6aGFuZGxlRXJyb3IoUG9zaXRpb25F
cnJvciogZXJyb3IpCiB7CiAgICAgQVNTRVJUKGVycm9yKTsKQEAgLTUzNSwxNSArNTU5LDI3IEBA
IHZvaWQgR2VvbG9jYXRpb246OmhhbmRsZUVycm9yKFBvc2l0aW9uRXJyb3IqIGVycm9yKQogICAg
IC8vIENsZWFyIHRoZSBsaXN0cyBiZWZvcmUgd2UgbWFrZSB0aGUgY2FsbGJhY2tzLCB0byBhdm9p
ZCBjbGVhcmluZyBub3RpZmllcnMKICAgICAvLyBhZGRlZCBieSBjYWxscyB0byBHZW9sb2NhdGlv
biBtZXRob2RzIGZyb20gdGhlIGNhbGxiYWNrcywgYW5kIHRvIHByZXZlbnQKICAgICAvLyBmdXJ0
aGVyIGNhbGxiYWNrcyB0byB0aGVzZSBub3RpZmllcnMuCisgICAgR2VvTm90aWZpZXJWZWN0b3Ig
b25lU2hvdHNXaXRoQ2FjaGVkUG9zaXRpb247CiAgICAgbV9vbmVTaG90cy5jbGVhcigpOwogICAg
IGlmIChlcnJvci0+aXNGYXRhbCgpKQogICAgICAgICBtX3dhdGNoZXJzLmNsZWFyKCk7CisgICAg
ZWxzZSB7CisgICAgICAgIC8vIERvbid0IHNlbmQgbm9uLWZhdGFsIGVycm9ycyB0byBub3RpZmll
cnMgZHVlIHRvIHJlY2VpdmUgYSBjYWNoZWQgcG9zaXRpb24uCisgICAgICAgIGV4dHJhY3ROb3Rp
ZmllcnNXaXRoQ2FjaGVkUG9zaXRpb24ob25lU2hvdHNDb3B5LCAmb25lU2hvdHNXaXRoQ2FjaGVk
UG9zaXRpb24pOworICAgICAgICBleHRyYWN0Tm90aWZpZXJzV2l0aENhY2hlZFBvc2l0aW9uKHdh
dGNoZXJzQ29weSwgMCk7CisgICAgfQogCiAgICAgc2VuZEVycm9yKG9uZVNob3RzQ29weSwgZXJy
b3IpOwogICAgIHNlbmRFcnJvcih3YXRjaGVyc0NvcHksIGVycm9yKTsKIAorICAgIC8vIGhhc0xp
c3RlbmVycygpIGRvZXNuJ3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBub3RpZmllcnMgZHVlIHRvIHJl
Y2VpdmUgYQorICAgIC8vIGNhY2hlZCBwb3NpdGlvbiBhbmQgdGhvc2UgcmVxdWlyaW5nIGEgZnJl
c2ggcG9zaXRpb24uIFBlcmZvcm0gdGhlIGNoZWNrCisgICAgLy8gYmVmb3JlIHJlc3RvcmluZyB0
aGUgbm90aWZpZXJzIGJlbG93LgogICAgIGlmICghaGFzTGlzdGVuZXJzKCkpCiAgICAgICAgIHN0
b3BVcGRhdGluZygpOworCisgICAgLy8gTWFpbnRhaW4gYSByZWZlcmVuY2UgdG8gdGhlIGNhY2hl
ZCBub3RpZmllcnMgdW50aWwgdGhlaXIgdGltZXIgZmlyZXMuCisgICAgY29weVRvU2V0KG9uZVNo
b3RzV2l0aENhY2hlZFBvc2l0aW9uLCBtX29uZVNob3RzKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlv
bjo6cmVxdWVzdFBlcm1pc3Npb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uLmggYi9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAppbmRleCBhM2E3OWY5ZDgxNTg0MTk2
NGIwOGE1ZmIzMTBiMWVlOThlNzFjMjhhLi4zMDYyMTRiMDgzNzUzNTQyMmMzMTFmNGU5ZWZiN2Ix
M2EwNTI2MzMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAorKysgYi9X
ZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaApAQCAtMTMzLDYgKzEzMyw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZW5kRXJyb3IoR2VvTm90aWZpZXJWZWN0b3ImLCBQb3NpdGlvbkVycm9yKik7CiAg
ICAgdm9pZCBzZW5kUG9zaXRpb24oR2VvTm90aWZpZXJWZWN0b3ImLCBHZW9wb3NpdGlvbiopOwog
CisgICAgc3RhdGljIHZvaWQgZXh0cmFjdE5vdGlmaWVyc1dpdGhDYWNoZWRQb3NpdGlvbihHZW9O
b3RpZmllclZlY3RvciYgbm90aWZpZXJzLCBHZW9Ob3RpZmllclZlY3RvciogY2FjaGVkKTsKKyAg
ICBzdGF0aWMgdm9pZCBjb3B5VG9TZXQoY29uc3QgR2VvTm90aWZpZXJWZWN0b3ImLCBHZW9Ob3Rp
ZmllclNldCYpOworCiAgICAgc3RhdGljIHZvaWQgc3RvcFRpbWVyKEdlb05vdGlmaWVyVmVjdG9y
Jik7CiAgICAgdm9pZCBzdG9wVGltZXJzRm9yT25lU2hvdHMoKTsKICAgICB2b2lkIHN0b3BUaW1l
cnNGb3JXYXRjaGVycygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>