<?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>95731</bug_id>
          
          <creation_ts>2012-09-04 04:14:16 -0700</creation_ts>
          <short_desc>Web Inspector: Timeline: cache &quot;filteredRecords&quot; for better scrolling performance.</short_desc>
          <delta_ts>2012-09-06 08:59:50 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>
          
          <blocked>95445</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter>eustas.bug</reporter>
          <assigned_to>eustas.bug</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</cc>
    
    <cc>eustas.bug</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>710955</commentid>
    <comment_count>0</comment_count>
    <who name="">eustas.bug</who>
    <bug_when>2012-09-04 04:14:16 -0700</bug_when>
    <thetext>Now scrolling is sluggish on large datasets.
Performance degrades, because each refresh causes DFS on all recorded items.

Solution: caching/invalidation of DFS (filtering) results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710956</commentid>
    <comment_count>1</comment_count>
      <attachid>162005</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-09-04 04:19:58 -0700</bug_when>
    <thetext>Created attachment 162005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710970</commentid>
    <comment_count>2</comment_count>
      <attachid>162005</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-04 04:37:17 -0700</bug_when>
    <thetext>Comment on attachment 162005
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:677
&gt; +    _scheduleRefresh: function(preserveBoundaries, invalidateFilteredRecords)
&gt;      {
&gt; +        if (invalidateFilteredRecords)
&gt; +            this._presentationModel.invalidateFilteredRecords();

Rather than passing additional bool to scheduleRefresh, can we instead perform invalidation on the call site?
You may want to extract this to a method like invalidateVisibleRecordsAndRefresh()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711829</commentid>
    <comment_count>3</comment_count>
      <attachid>162183</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-09-05 01:18:39 -0700</bug_when>
    <thetext>Created attachment 162183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712081</commentid>
    <comment_count>4</comment_count>
      <attachid>162183</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-05 08:28:11 -0700</bug_when>
    <thetext>Comment on attachment 162183
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713010</commentid>
    <comment_count>5</comment_count>
      <attachid>162183</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-06 01:19:07 -0700</bug_when>
    <thetext>Comment on attachment 162183
Patch

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

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:638
&gt; +        this._automaticallySizeWindow = this._automaticallySizeWindow || !preserveAutomaticallySizeWindow;

Could you explain this part?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713015</commentid>
    <comment_count>6</comment_count>
      <attachid>162183</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-06 01:20:56 -0700</bug_when>
    <thetext>Comment on attachment 162183
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:638
&gt;&gt; +        this._automaticallySizeWindow = this._automaticallySizeWindow || !preserveAutomaticallySizeWindow;
&gt; 
&gt; Could you explain this part?

@eustas: can we instead unconditionally set this to false in repopulate? If we needed automatic resize, this should have happened by now and we would just need to preserve the window?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713042</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-06 02:01:33 -0700</bug_when>
    <thetext>As with any optimization that makes the code more complex, please provide some metrics for most common scenarios that prove speed ups. Why do we dfs at the first place? Should we bisect records in case of no glueing? Can we bisect with gliding? Caching has no real benefit, it will only eat memory here imo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713052</commentid>
    <comment_count>8</comment_count>
    <who name="">eustas.bug</who>
    <bug_when>2012-09-06 02:09:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; As with any optimization that makes the code more complex, please provide some metrics for most common scenarios that prove speed ups. Why do we dfs at the first place? Should we bisect records in case of no glueing? Can we bisect with gliding? Caching has no real benefit, it will only eat memory here imo.

In this case caching provides almost 10x performance boost (90ms -&gt; 9ms on large dataset).

DFS is used, because visibility of child records is independent of visibility of parent records.

Of course &quot;filteredRecords&quot; could/would/should be optimized, but this patch is the first step.

With this patch scrolling becomes much-much smoother.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713058</commentid>
    <comment_count>9</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-06 02:16:18 -0700</bug_when>
    <thetext>OK, patch concept lgtm. But in reality instead of scrolling users will adjust window. We should bisect time instead of linear searching. That would fix all scenarios.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713078</commentid>
    <comment_count>10</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-06 02:40:30 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; OK, patch concept lgtm. But in reality instead of scrolling users will adjust window. We should bisect time instead of linear searching. That would fix all scenarios.

Why I agree we should bisect for window selection, it doesn&apos;t cover all the scenarios -- we also have filtering on type and (coming up) search. I don&apos;t think caching really &quot;eats memory&quot; here -- re-allocating the same array each time we scroll/resize actually does more harm, as we thrash the GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713182</commentid>
    <comment_count>11</comment_count>
      <attachid>162479</attachid>
    <who name="">eustas.bug</who>
    <bug_when>2012-09-06 05:12:45 -0700</bug_when>
    <thetext>Created attachment 162479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713183</commentid>
    <comment_count>12</comment_count>
      <attachid>162479</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-09-06 05:15:40 -0700</bug_when>
    <thetext>Comment on attachment 162479
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713342</commentid>
    <comment_count>13</comment_count>
      <attachid>162479</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 08:59:46 -0700</bug_when>
    <thetext>Comment on attachment 162479
Patch

Clearing flags on attachment: 162479

Committed r127746: &lt;http://trac.webkit.org/changeset/127746&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713343</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 08:59:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162005</attachid>
            <date>2012-09-04 04:19:58 -0700</date>
            <delta_ts>2012-09-05 01:18:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95731-20120904151940.patch</filename>
            <type>text/plain</type>
            <size>6382</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhkYzY2NGZlNzhlY2Fh
NmViZDE5YmMyNWQzZjEzODdhYTVkOGY2MS4uYjAxOTIyNzljOWMzNzEzY2Y5NjRjMmZkNWVlMDJl
N2EzMDU1ZmZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTA0ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYmlnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUaW1lbGluZTogY2FjaGUgImZpbHRlcmVkUmVjb3JkcyIgZm9yIGJldHRlciBzY3Jv
bGxpbmcgcGVyZm9ybWFuY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTczMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdyBzY3JvbGxpbmcgaXMgc2x1Z2dpc2ggb24gbGFyZ2UgZGF0YXNldHMuCisg
ICAgICAgIFBlcmZvcm1hbmNlIGRlZ3JhZGVzLCBiZWNhdXNlIGVhY2ggcmVmcmVzaCBjYXVzZXMg
REZTIG9uIGFsbCByZWNvcmRlZCBpdGVtcy4KKyAgICAgICAgU29sdXRpb246IGNhY2hpbmcvaW52
YWxpZGF0aW9uIG9mIERGUyAoZmlsdGVyaW5nKSByZXN1bHRzLgorCisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlLl9zY2hlZHVsZVJlZnJlc2gpOgorICAgICAgICBBZGQgZmxhZyBmb3IgY2FjaGUgaW52YWxp
ZGF0aW9uLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5pbnZhbGlkYXRlRmlsdGVyZWRSZWNvcmRzKToKKyAgICAgICAgQWRkZWQu
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUuZmlsdGVyZWRSZWNvcmRzKToKKyAgICAgICAgQ2FjaGluZy91c2luZyBjYWNoZWQgcmVzdWx0
cy4KKwogMjAxMi0wOS0wMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNzQyNy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRl
eCAyMWVjY2YxNTM1NDU3NDY1NTU3ZjA4NTMzYzkxYjg3NzE2OTg2MGIzLi43ODExZjI5OGI3ZTUz
Y2NiZmE0ZmY3NzQ0M2UwY2E4NjIzZTg3MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC01MCw3ICs1MCw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX2dsdWVSZWNv
cmRzU2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKCJ0aW1lbGlu
ZUdsdWVSZWNvcmRzIiwgdHJ1ZSk7CiAKICAgICB0aGlzLl9vdmVydmlld1BhbmUgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKHRoaXMuX21vZGVsKTsKLSAgICB0aGlzLl9v
dmVydmlld1BhbmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmll
d1BhbmUuRXZlbnRzLldpbmRvd0NoYW5nZWQsIHRoaXMuX3NjaGVkdWxlUmVmcmVzaC5iaW5kKHRo
aXMsIGZhbHNlKSk7CisgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLkV2ZW50cy5XaW5kb3dDaGFuZ2VkLCB0aGlz
Ll9zY2hlZHVsZVJlZnJlc2guYmluZCh0aGlzLCBmYWxzZSwgdHJ1ZSkpOwogICAgIHRoaXMuX292
ZXJ2aWV3UGFuZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3
UGFuZS5FdmVudHMuTW9kZUNoYW5nZWQsIHRoaXMuX292ZXJ2aWV3TW9kZUNoYW5nZWQsIHRoaXMp
OwogICAgIHRoaXMuX292ZXJ2aWV3UGFuZS5zaG93KHRoaXMuZWxlbWVudCk7CiAKQEAgLTI4NCw3
ICsyODQsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
X29uQ2F0ZWdvcnlDaGVja2JveENsaWNrZWQ6IGZ1bmN0aW9uKGNhdGVnb3J5LCBldmVudCkKICAg
ICB7CiAgICAgICAgIGNhdGVnb3J5LmhpZGRlbiA9ICFldmVudC50YXJnZXQuY2hlY2tlZDsKLSAg
ICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNoKHRydWUpOworICAgICAgICB0aGlzLl9zY2hlZHVs
ZVJlZnJlc2godHJ1ZSwgdHJ1ZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNTMwLDcgKzUzMCw3
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fc2hvd1Nob3J0RXZlbnRzID0gdGhpcy50b2dnbGVGaWx0ZXJCdXR0b24udG9nZ2xlZDsKICAg
ICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLnNldFNob3dTaG9ydEV2ZW50cyh0aGlzLl9zaG93U2hv
cnRFdmVudHMpOwogICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckJ1dHRvbi5lbGVtZW50LnRpdGxl
ID0gdGhpcy5fc2hvd1Nob3J0RXZlbnRzID8gdGhpcy5faGlkZVNob3J0UmVjb3Jkc1RpdGxlVGV4
dCA6IHRoaXMuX3Nob3dTaG9ydFJlY29yZHNUaXRsZVRleHQ7Ci0gICAgICAgIHRoaXMuX3NjaGVk
dWxlUmVmcmVzaCh0cnVlKTsKKyAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNoKHRydWUsIHRy
dWUpOwogICAgIH0sCiAKICAgICBfZ2FyYmFnZUNvbGxlY3RCdXR0b25DbGlja2VkOiBmdW5jdGlv
bigpCkBAIC01NTMsMTMgKzU1MywxMyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciByZWNvcmRzID0gdGhpcy5fbW9kZWwucmVjb3JkczsKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgKytpKQogICAgICAgICAg
ICAgdGhpcy5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZHNbaV0sIHRoaXMuX3Jvb3RS
ZWNvcmQoKSk7Ci0gICAgICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaChmYWxzZSk7CisgICAgICAg
IHRoaXMuX3NjaGVkdWxlUmVmcmVzaChmYWxzZSwgdHJ1ZSk7CiAgICAgfSwKIAogICAgIF9vblRp
bWVsaW5lRXZlbnRSZWNvcmRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICBpZiAo
dGhpcy5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKGV2ZW50LmRhdGEsIHRoaXMuX3Jvb3RSZWNv
cmQoKSkpCi0gICAgICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2goZmFsc2UpOworICAgICAg
ICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNoKGZhbHNlLCB0cnVlKTsKICAgICB9LAogCiAgICAg
X2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZTogZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQp
CkBAIC02MjEsNyArNjIxLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBl
ID0gewogICAgIF9vblJlY29yZHNDbGVhcmVkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLl9yZXNldFBhbmVsKCk7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2goKTsKKyAgICAgICAgdGhp
cy5fc2NoZWR1bGVSZWZyZXNoKHRydWUsIHRydWUpOwogICAgIH0sCiAKICAgICBfcmVzZXRQYW5l
bDogZnVuY3Rpb24oKQpAQCAtNjQ5LDcgKzY0OSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2luamVjdENhdGVnb3J5U3R5bGVz
KCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLnNldE1vZGUodGhpcy5f
b3ZlcnZpZXdNb2RlU2V0dGluZy5nZXQoKSk7Ci0gICAgICAgIHRoaXMuX3JlZnJlc2goKTsKKyAg
ICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNoKHRydWUsIHRydWUpOwogICAgIH0sCiAKICAgICB3
aWxsSGlkZTogZnVuY3Rpb24oKQpAQCAtNjY3LDggKzY2NywxNSBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaCh0
cnVlKTsKICAgICB9LAogCi0gICAgX3NjaGVkdWxlUmVmcmVzaDogZnVuY3Rpb24ocHJlc2VydmVC
b3VuZGFyaWVzKQorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJlc2VydmVCb3Vu
ZGFyaWVzCisgICAgICogQHBhcmFtIHtib29sZWFuPX0gaW52YWxpZGF0ZUZpbHRlcmVkUmVjb3Jk
cworICAgICAqLworICAgIF9zY2hlZHVsZVJlZnJlc2g6IGZ1bmN0aW9uKHByZXNlcnZlQm91bmRh
cmllcywgaW52YWxpZGF0ZUZpbHRlcmVkUmVjb3JkcykKICAgICB7CisgICAgICAgIGlmIChpbnZh
bGlkYXRlRmlsdGVyZWRSZWNvcmRzKQorICAgICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9k
ZWwuaW52YWxpZGF0ZUZpbHRlcmVkUmVjb3JkcygpOworCiAgICAgICAgIHRoaXMuX2Nsb3NlUmVj
b3JkRGV0YWlscygpOwogICAgICAgICB0aGlzLl9ib3VuZGFyaWVzQXJlVmFsaWQgJj0gcHJlc2Vy
dmVCb3VuZGFyaWVzOwogCkBAIC03NzQsNyArNzgxLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgd2lkdGggPSB0aGlzLl9ncmFwaFJvd3NF
bGVtZW50V2lkdGg7CiAgICAgICAgIHRoaXMuX2l0ZW1zR3JhcGhzRWxlbWVudC5yZW1vdmVDaGls
ZCh0aGlzLl9ncmFwaFJvd3NFbGVtZW50KTsKICAgICAgICAgdmFyIGdyYXBoUm93RWxlbWVudCA9
IHRoaXMuX2dyYXBoUm93c0VsZW1lbnQuZmlyc3RDaGlsZDsKLSAgICAgICAgdmFyIHNjaGVkdWxl
UmVmcmVzaENhbGxiYWNrID0gdGhpcy5fc2NoZWR1bGVSZWZyZXNoLmJpbmQodGhpcywgdHJ1ZSk7
CisgICAgICAgIHZhciBzY2hlZHVsZVJlZnJlc2hDYWxsYmFjayA9IHRoaXMuX3NjaGVkdWxlUmVm
cmVzaC5iaW5kKHRoaXMsIHRydWUsIHRydWUpOwogICAgICAgICB0aGlzLl9pdGVtc0dyYXBoc0Vs
ZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fZXhwYW5kRWxlbWVudHMpOwogICAgICAgICB0aGlzLl9l
eHBhbmRFbGVtZW50cy5yZW1vdmVDaGlsZHJlbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9k
ZWwuanMKaW5kZXggMmQyZWRlYTRlMDIxNDk0Nzg1ZTNhMGFjYjJiOTBhOGNiODgxZjhkOC4uNmI5
ZWE1ZDI4MWNhMTk0YjIxN2ExYmFiZGZmOGFjM2E5NmQ4ZGY1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5qcwpAQCAtMzc4LDggKzM3OCwxNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2dsdWVSZWNvcmRz
ID0gZ2x1ZTsKICAgICB9LAogCisgICAgaW52YWxpZGF0ZUZpbHRlcmVkUmVjb3JkczogZnVuY3Rp
b24oKQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2ZpbHRlcmVkUmVjb3JkczsKKyAgICB9
LAorCiAgICAgZmlsdGVyZWRSZWNvcmRzOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBpZiAo
dGhpcy5fZmlsdGVyZWRSZWNvcmRzKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmVk
UmVjb3JkczsKKwogICAgICAgICB2YXIgcmVjb3Jkc0luV2luZG93ID0gW107CiAKICAgICAgICAg
dmFyIHN0YWNrID0gW3tjaGlsZHJlbjogdGhpcy5fcm9vdFJlY29yZC5jaGlsZHJlbiwgaW5kZXg6
IDAsIHBhcmVudElzQ29sbGFwc2VkOiBmYWxzZX1dOwpAQCAtNDEwLDYgKzQxOCw3IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCisgICAgICAgIHRoaXMuX2ZpbHRlcmVkUmVjb3JkcyA9IHJlY29y
ZHNJbldpbmRvdzsKICAgICAgICAgcmV0dXJuIHJlY29yZHNJbldpbmRvdzsKICAgICB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162183</attachid>
            <date>2012-09-05 01:18:39 -0700</date>
            <delta_ts>2012-09-06 05:12:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95731-20120905121820.patch</filename>
            <type>text/plain</type>
            <size>6852</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc3NjFkMGY5MGUzZDRj
MWJjMmY4NDc0MTZmZDVlODdjYmI5OWI4Zi4uOTczZDQ2MTA1NWFjN2YxODM5ZGIwY2Y3OWMyYzU0
YmJjZDQxZGI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA5LTA1ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUaW1lbGluZTogY2FjaGUgImZpbHRlcmVkUmVjb3JkcyIgZm9yIGJldHRlciBzY3Jv
bGxpbmcgcGVyZm9ybWFuY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTczMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdyBzY3JvbGxpbmcgaXMgc2x1Z2dpc2ggb24gbGFyZ2UgZGF0YXNldHMuCisg
ICAgICAgIFBlcmZvcm1hbmNlIGRlZ3JhZGVzLCBiZWNhdXNlIGVhY2ggcmVmcmVzaCBjYXVzZXMg
REZTIG9uIGFsbCByZWNvcmRlZCBpdGVtcy4KKyAgICAgICAgU29sdXRpb246IGNhY2hpbmcvaW52
YWxpZGF0aW9uIG9mIERGUyAoZmlsdGVyaW5nKSByZXN1bHRzLgorCisgICAgICAgIEFsc28gZml4
ZWQgInRydW5jYXRlIHNlbGVjdGVkIHJlY29yZCByYW5nZSBvbiBtb2RlIGNoYW5nZSIgZ2xpdGNo
LgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9zY2hlZHVsZVJlZnJlc2gpOgorICAgICAgICBBZGQg
ZmxhZyBmb3IgY2FjaGUgaW52YWxpZGF0aW9uLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5pbnZhbGlkYXRlRmlsdGVyZWRSZWNv
cmRzKToKKyAgICAgICAgQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuZmlsdGVyZWRSZWNvcmRzKToKKyAgICAgICAgQ2FjaGlu
Zy91c2luZyBjYWNoZWQgcmVzdWx0cy4KKwogMjAxMi0wOS0wMyAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFBhcnQgMSBvZiByZW1vdmluZyBQbGF0Zm9ybVN0cmluZy5o
LCBtb3ZlIHJlbWFpbmluZyBmdW5jdGlvbnMgdG8gbmV3IGhvbWVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggMjFlY2Nm
MTUzNTQ1NzQ2NTU1N2YwODUzM2M5MWI4NzcxNjk4NjBiMy4uZmU5NTMyNjAxMjY1OTAzYmNiMjYy
Yjg0NGIzNzliMzY1OWEzZTc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtNTAsNyArNTAsNyBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9nbHVlUmVjb3Jkc1NldHRp
bmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygidGltZWxpbmVHbHVlUmVj
b3JkcyIsIHRydWUpOwogCiAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lID0gbmV3IFdlYkluc3BlY3Rv
ci5UaW1lbGluZU92ZXJ2aWV3UGFuZSh0aGlzLl9tb2RlbCk7Ci0gICAgdGhpcy5fb3ZlcnZpZXdQ
YW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLkV2
ZW50cy5XaW5kb3dDaGFuZ2VkLCB0aGlzLl9zY2hlZHVsZVJlZnJlc2guYmluZCh0aGlzLCBmYWxz
ZSkpOworICAgIHRoaXMuX292ZXJ2aWV3UGFuZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5FdmVudHMuV2luZG93Q2hhbmdlZCwgdGhpcy5faW52YWxp
ZGF0ZUFuZFNjaGVkdWxlUmVmcmVzaC5iaW5kKHRoaXMsIGZhbHNlKSk7CiAgICAgdGhpcy5fb3Zl
cnZpZXdQYW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQ
YW5lLkV2ZW50cy5Nb2RlQ2hhbmdlZCwgdGhpcy5fb3ZlcnZpZXdNb2RlQ2hhbmdlZCwgdGhpcyk7
CiAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLnNob3codGhpcy5lbGVtZW50KTsKIApAQCAtMjg0LDcg
KzI4NCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBf
b25DYXRlZ29yeUNoZWNrYm94Q2xpY2tlZDogZnVuY3Rpb24oY2F0ZWdvcnksIGV2ZW50KQogICAg
IHsKICAgICAgICAgY2F0ZWdvcnkuaGlkZGVuID0gIWV2ZW50LnRhcmdldC5jaGVja2VkOwotICAg
ICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2godHJ1ZSk7CisgICAgICAgIHRoaXMuX2ludmFsaWRh
dGVBbmRTY2hlZHVsZVJlZnJlc2godHJ1ZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNTMwLDcg
KzUzMCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdGhpcy5fc2hvd1Nob3J0RXZlbnRzID0gdGhpcy50b2dnbGVGaWx0ZXJCdXR0b24udG9nZ2xl
ZDsKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLnNldFNob3dTaG9ydEV2ZW50cyh0aGlzLl9z
aG93U2hvcnRFdmVudHMpOwogICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckJ1dHRvbi5lbGVtZW50
LnRpdGxlID0gdGhpcy5fc2hvd1Nob3J0RXZlbnRzID8gdGhpcy5faGlkZVNob3J0UmVjb3Jkc1Rp
dGxlVGV4dCA6IHRoaXMuX3Nob3dTaG9ydFJlY29yZHNUaXRsZVRleHQ7Ci0gICAgICAgIHRoaXMu
X3NjaGVkdWxlUmVmcmVzaCh0cnVlKTsKKyAgICAgICAgdGhpcy5faW52YWxpZGF0ZUFuZFNjaGVk
dWxlUmVmcmVzaCh0cnVlKTsKICAgICB9LAogCiAgICAgX2dhcmJhZ2VDb2xsZWN0QnV0dG9uQ2xp
Y2tlZDogZnVuY3Rpb24oKQpAQCAtNTQ5LDE3ICs1NDksMTcgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX3JlcG9wdWxhdGVSZWNvcmRzOiBmdW5jdGlv
bigpCiAgICAgewotICAgICAgICB0aGlzLl9yZXNldFBhbmVsKCk7CisgICAgICAgIHRoaXMuX3Jl
c2V0UGFuZWwodHJ1ZSk7CiAgICAgICAgIHZhciByZWNvcmRzID0gdGhpcy5fbW9kZWwucmVjb3Jk
czsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgKytpKQogICAg
ICAgICAgICAgdGhpcy5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZHNbaV0sIHRoaXMu
X3Jvb3RSZWNvcmQoKSk7Ci0gICAgICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaChmYWxzZSk7Cisg
ICAgICAgIHRoaXMuX2ludmFsaWRhdGVBbmRTY2hlZHVsZVJlZnJlc2goZmFsc2UpOwogICAgIH0s
CiAKICAgICBfb25UaW1lbGluZUV2ZW50UmVjb3JkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
ICAgICAgICAgaWYgKHRoaXMuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGluZShldmVudC5kYXRhLCB0
aGlzLl9yb290UmVjb3JkKCkpKQotICAgICAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNoKGZh
bHNlKTsKKyAgICAgICAgICAgIHRoaXMuX2ludmFsaWRhdGVBbmRTY2hlZHVsZVJlZnJlc2goZmFs
c2UpOwogICAgIH0sCiAKICAgICBfaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lOiBmdW5jdGlvbihy
ZWNvcmQsIHBhcmVudFJlY29yZCkKQEAgLTYyMSwxMCArNjIxLDEzIEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfb25SZWNvcmRzQ2xlYXJlZDogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVzZXRQYW5lbCgpOwotICAgICAgICB0aGlzLl9y
ZWZyZXNoKCk7CisgICAgICAgIHRoaXMuX2ludmFsaWRhdGVBbmRTY2hlZHVsZVJlZnJlc2godHJ1
ZSk7CiAgICAgfSwKIAotICAgIF9yZXNldFBhbmVsOiBmdW5jdGlvbigpCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtib29sZWFuPX0gcHJlc2VydmVBdXRvbWF0aWNhbGx5U2l6ZVdpbmRvdworICAg
ICAqLworICAgIF9yZXNldFBhbmVsOiBmdW5jdGlvbihwcmVzZXJ2ZUF1dG9tYXRpY2FsbHlTaXpl
V2luZG93KQogICAgIHsKICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucmVzZXQoKTsK
ICAgICAgICAgdGhpcy5fdGltZVN0YW1wUmVjb3JkcyA9IFtdOwpAQCAtNjMyLDcgKzYzNSw3IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5f
YWRqdXN0U2Nyb2xsUG9zaXRpb24oMCk7CiAgICAgICAgIHRoaXMuX2Nsb3NlUmVjb3JkRGV0YWls
cygpOwogICAgICAgICB0aGlzLl9hbGxSZWNvcmRzQ291bnQgPSAwOwotICAgICAgICB0aGlzLl9h
dXRvbWF0aWNhbGx5U2l6ZVdpbmRvdyA9IHRydWU7CisgICAgICAgIHRoaXMuX2F1dG9tYXRpY2Fs
bHlTaXplV2luZG93ID0gdGhpcy5fYXV0b21hdGljYWxseVNpemVXaW5kb3cgfHwgIXByZXNlcnZl
QXV0b21hdGljYWxseVNpemVXaW5kb3c7CiAgICAgICAgIHRoaXMuX21haW5UaHJlYWRUYXNrcyA9
IFtdOwogICAgIH0sCiAKQEAgLTY2Nyw2ICs2NzAsMTUgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2godHJ1ZSk7
CiAgICAgfSwKIAorICAgIF9pbnZhbGlkYXRlQW5kU2NoZWR1bGVSZWZyZXNoOiBmdW5jdGlvbihw
cmVzZXJ2ZUJvdW5kYXJpZXMpCisgICAgeworICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2Rl
bC5pbnZhbGlkYXRlRmlsdGVyZWRSZWNvcmRzKCk7CisgICAgICAgIHRoaXMuX3NjaGVkdWxlUmVm
cmVzaChwcmVzZXJ2ZUJvdW5kYXJpZXMpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge2Jvb2xlYW59IHByZXNlcnZlQm91bmRhcmllcworICAgICAqLwogICAgIF9zY2hlZHVsZVJl
ZnJlc2g6IGZ1bmN0aW9uKHByZXNlcnZlQm91bmRhcmllcykKICAgICB7CiAgICAgICAgIHRoaXMu
X2Nsb3NlUmVjb3JkRGV0YWlscygpOwpAQCAtNzc0LDcgKzc4Niw3IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHdpZHRoID0gdGhpcy5fZ3Jh
cGhSb3dzRWxlbWVudFdpZHRoOwogICAgICAgICB0aGlzLl9pdGVtc0dyYXBoc0VsZW1lbnQucmVt
b3ZlQ2hpbGQodGhpcy5fZ3JhcGhSb3dzRWxlbWVudCk7CiAgICAgICAgIHZhciBncmFwaFJvd0Vs
ZW1lbnQgPSB0aGlzLl9ncmFwaFJvd3NFbGVtZW50LmZpcnN0Q2hpbGQ7Ci0gICAgICAgIHZhciBz
Y2hlZHVsZVJlZnJlc2hDYWxsYmFjayA9IHRoaXMuX3NjaGVkdWxlUmVmcmVzaC5iaW5kKHRoaXMs
IHRydWUpOworICAgICAgICB2YXIgc2NoZWR1bGVSZWZyZXNoQ2FsbGJhY2sgPSB0aGlzLl9pbnZh
bGlkYXRlQW5kU2NoZWR1bGVSZWZyZXNoLmJpbmQodGhpcywgdHJ1ZSk7CiAgICAgICAgIHRoaXMu
X2l0ZW1zR3JhcGhzRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9leHBhbmRFbGVtZW50cyk7CiAg
ICAgICAgIHRoaXMuX2V4cGFuZEVsZW1lbnRzLnJlbW92ZUNoaWxkcmVuKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRp
b25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCAyZDJlZGVhNGUwMjE0OTQ3ODVlM2EwYWNiMmI5MGE4
Y2I4ODFmOGQ4Li42YjllYTVkMjgxY2ExOTRiMjE3YTFiYWJkZmY4YWMzYTk2ZDhkZjViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC0zNzgsOCArMzc4LDE2IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fZ2x1ZVJlY29yZHMgPSBnbHVlOwogICAgIH0sCiAKKyAgICBpbnZhbGlkYXRlRmlsdGVyZWRS
ZWNvcmRzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBkZWxldGUgdGhpcy5fZmlsdGVyZWRS
ZWNvcmRzOworICAgIH0sCisKICAgICBmaWx0ZXJlZFJlY29yZHM6IGZ1bmN0aW9uKCkKICAgICB7
CisgICAgICAgIGlmICh0aGlzLl9maWx0ZXJlZFJlY29yZHMpCisgICAgICAgICAgICByZXR1cm4g
dGhpcy5fZmlsdGVyZWRSZWNvcmRzOworCiAgICAgICAgIHZhciByZWNvcmRzSW5XaW5kb3cgPSBb
XTsKIAogICAgICAgICB2YXIgc3RhY2sgPSBbe2NoaWxkcmVuOiB0aGlzLl9yb290UmVjb3JkLmNo
aWxkcmVuLCBpbmRleDogMCwgcGFyZW50SXNDb2xsYXBzZWQ6IGZhbHNlfV07CkBAIC00MTAsNiAr
NDE4LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fZmlsdGVyZWRS
ZWNvcmRzID0gcmVjb3Jkc0luV2luZG93OwogICAgICAgICByZXR1cm4gcmVjb3Jkc0luV2luZG93
OwogICAgIH0sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162479</attachid>
            <date>2012-09-06 05:12:45 -0700</date>
            <delta_ts>2012-09-06 08:59:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95731-20120906161225.patch</filename>
            <type>text/plain</type>
            <size>6270</size>
            <attacher>eustas.bug</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3Njk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY2NGExNWYwODM4NWFk
YjM5OGE5OGZmMDBjNTJjYTFjZmZkN2EzNS4uMTI4YmE0MDY0MDNkMjBlYmE1YWIwYTdiNWQ2NzI2
YTg3OWEzMjg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA5LTA2ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBUaW1lbGluZTogY2FjaGUgImZpbHRlcmVkUmVjb3JkcyIgZm9yIGJldHRlciBzY3Jv
bGxpbmcgcGVyZm9ybWFuY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTczMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vdyBzY3JvbGxpbmcgaXMgc2x1Z2dpc2ggb24gbGFyZ2UgZGF0YXNldHMuCisg
ICAgICAgIFBlcmZvcm1hbmNlIGRlZ3JhZGVzLCBiZWNhdXNlIGVhY2ggcmVmcmVzaCBjYXVzZXMg
REZTIG9uIGFsbCByZWNvcmRlZCBpdGVtcy4KKyAgICAgICAgU29sdXRpb246IGNhY2hpbmcvaW52
YWxpZGF0aW9uIG9mIERGUyAoZmlsdGVyaW5nKSByZXN1bHRzLgorCisgICAgICAgIEFsc28gZml4
ZWQgInRydW5jYXRlIHNlbGVjdGVkIHJlY29yZCByYW5nZSBvbiBtb2RlIGNoYW5nZSIgZ2xpdGNo
LgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9zY2hlZHVsZVJlZnJlc2gpOgorICAgICAgICBBZGQg
ZmxhZyBmb3IgY2FjaGUgaW52YWxpZGF0aW9uLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5pbnZhbGlkYXRlRmlsdGVyZWRSZWNv
cmRzKToKKyAgICAgICAgQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuZmlsdGVyZWRSZWNvcmRzKToKKyAgICAgICAgQ2FjaGlu
Zy91c2luZyBjYWNoZWQgcmVzdWx0cy4KKwogMjAxMi0wOS0wNSAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkOyByZXZlcnQgYSBjaGFu
Z2UgdG8gU2Nyb2xsaW5nVHJlZU5vZGVNYWMgd2hpY2ggYWNjaWRlbnRhbGx5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXgg
MjFlY2NmMTUzNTQ1NzQ2NTU1N2YwODUzM2M5MWI4NzcxNjk4NjBiMy4uZDRjMGNlNmZlZmNhMzdk
MmE2MTk4NTYwNDU5YTRlZmM1YWIxOGVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtNTAsNyArNTAsNyBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9nbHVlUmVjb3Jk
c1NldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygidGltZWxpbmVH
bHVlUmVjb3JkcyIsIHRydWUpOwogCiAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lID0gbmV3IFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSh0aGlzLl9tb2RlbCk7Ci0gICAgdGhpcy5fb3Zl
cnZpZXdQYW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQ
YW5lLkV2ZW50cy5XaW5kb3dDaGFuZ2VkLCB0aGlzLl9zY2hlZHVsZVJlZnJlc2guYmluZCh0aGlz
LCBmYWxzZSkpOworICAgIHRoaXMuX292ZXJ2aWV3UGFuZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5FdmVudHMuV2luZG93Q2hhbmdlZCwgdGhpcy5f
aW52YWxpZGF0ZUFuZFNjaGVkdWxlUmVmcmVzaC5iaW5kKHRoaXMsIGZhbHNlKSk7CiAgICAgdGhp
cy5fb3ZlcnZpZXdQYW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdQYW5lLkV2ZW50cy5Nb2RlQ2hhbmdlZCwgdGhpcy5fb3ZlcnZpZXdNb2RlQ2hhbmdlZCwg
dGhpcyk7CiAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLnNob3codGhpcy5lbGVtZW50KTsKIApAQCAt
Mjg0LDcgKzI4NCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICBfb25DYXRlZ29yeUNoZWNrYm94Q2xpY2tlZDogZnVuY3Rpb24oY2F0ZWdvcnksIGV2ZW50
KQogICAgIHsKICAgICAgICAgY2F0ZWdvcnkuaGlkZGVuID0gIWV2ZW50LnRhcmdldC5jaGVja2Vk
OwotICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2godHJ1ZSk7CisgICAgICAgIHRoaXMuX2lu
dmFsaWRhdGVBbmRTY2hlZHVsZVJlZnJlc2godHJ1ZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAt
NTMwLDcgKzUzMCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fc2hvd1Nob3J0RXZlbnRzID0gdGhpcy50b2dnbGVGaWx0ZXJCdXR0b24u
dG9nZ2xlZDsKICAgICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLnNldFNob3dTaG9ydEV2ZW50cyh0
aGlzLl9zaG93U2hvcnRFdmVudHMpOwogICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlckJ1dHRvbi5l
bGVtZW50LnRpdGxlID0gdGhpcy5fc2hvd1Nob3J0RXZlbnRzID8gdGhpcy5faGlkZVNob3J0UmVj
b3Jkc1RpdGxlVGV4dCA6IHRoaXMuX3Nob3dTaG9ydFJlY29yZHNUaXRsZVRleHQ7Ci0gICAgICAg
IHRoaXMuX3NjaGVkdWxlUmVmcmVzaCh0cnVlKTsKKyAgICAgICAgdGhpcy5faW52YWxpZGF0ZUFu
ZFNjaGVkdWxlUmVmcmVzaCh0cnVlKTsKICAgICB9LAogCiAgICAgX2dhcmJhZ2VDb2xsZWN0QnV0
dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQpAQCAtNTUwLDE2ICs1NTAsMTcgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgIF9yZXBvcHVsYXRlUmVjb3JkczogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVzZXRQYW5lbCgpOworICAgICAgICB0aGlz
Ll9hdXRvbWF0aWNhbGx5U2l6ZVdpbmRvdyA9IGZhbHNlOwogICAgICAgICB2YXIgcmVjb3JkcyA9
IHRoaXMuX21vZGVsLnJlY29yZHM7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX2lubmVyQWRkUmVjb3JkVG9UaW1lbGlu
ZShyZWNvcmRzW2ldLCB0aGlzLl9yb290UmVjb3JkKCkpOwotICAgICAgICB0aGlzLl9zY2hlZHVs
ZVJlZnJlc2goZmFsc2UpOworICAgICAgICB0aGlzLl9pbnZhbGlkYXRlQW5kU2NoZWR1bGVSZWZy
ZXNoKGZhbHNlKTsKICAgICB9LAogCiAgICAgX29uVGltZWxpbmVFdmVudFJlY29yZGVkOiBmdW5j
dGlvbihldmVudCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pbm5lckFkZFJlY29yZFRvVGlt
ZWxpbmUoZXZlbnQuZGF0YSwgdGhpcy5fcm9vdFJlY29yZCgpKSkKLSAgICAgICAgICAgIHRoaXMu
X3NjaGVkdWxlUmVmcmVzaChmYWxzZSk7CisgICAgICAgICAgICB0aGlzLl9pbnZhbGlkYXRlQW5k
U2NoZWR1bGVSZWZyZXNoKGZhbHNlKTsKICAgICB9LAogCiAgICAgX2lubmVyQWRkUmVjb3JkVG9U
aW1lbGluZTogZnVuY3Rpb24ocmVjb3JkLCBwYXJlbnRSZWNvcmQpCkBAIC02MjEsNyArNjIyLDcg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgIF9vblJlY29y
ZHNDbGVhcmVkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNldFBhbmVsKCk7
Ci0gICAgICAgIHRoaXMuX3JlZnJlc2goKTsKKyAgICAgICAgdGhpcy5faW52YWxpZGF0ZUFuZFNj
aGVkdWxlUmVmcmVzaCh0cnVlKTsKICAgICB9LAogCiAgICAgX3Jlc2V0UGFuZWw6IGZ1bmN0aW9u
KCkKQEAgLTY2Nyw2ICs2NjgsMTUgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90
eXBlID0gewogICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2godHJ1ZSk7CiAgICAgfSwKIAor
ICAgIF9pbnZhbGlkYXRlQW5kU2NoZWR1bGVSZWZyZXNoOiBmdW5jdGlvbihwcmVzZXJ2ZUJvdW5k
YXJpZXMpCisgICAgeworICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5pbnZhbGlkYXRl
RmlsdGVyZWRSZWNvcmRzKCk7CisgICAgICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaChwcmVzZXJ2
ZUJvdW5kYXJpZXMpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IHByZXNlcnZlQm91bmRhcmllcworICAgICAqLwogICAgIF9zY2hlZHVsZVJlZnJlc2g6IGZ1bmN0
aW9uKHByZXNlcnZlQm91bmRhcmllcykKICAgICB7CiAgICAgICAgIHRoaXMuX2Nsb3NlUmVjb3Jk
RGV0YWlscygpOwpAQCAtNzc0LDcgKzc4NCw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHdpZHRoID0gdGhpcy5fZ3JhcGhSb3dzRWxlbWVu
dFdpZHRoOwogICAgICAgICB0aGlzLl9pdGVtc0dyYXBoc0VsZW1lbnQucmVtb3ZlQ2hpbGQodGhp
cy5fZ3JhcGhSb3dzRWxlbWVudCk7CiAgICAgICAgIHZhciBncmFwaFJvd0VsZW1lbnQgPSB0aGlz
Ll9ncmFwaFJvd3NFbGVtZW50LmZpcnN0Q2hpbGQ7Ci0gICAgICAgIHZhciBzY2hlZHVsZVJlZnJl
c2hDYWxsYmFjayA9IHRoaXMuX3NjaGVkdWxlUmVmcmVzaC5iaW5kKHRoaXMsIHRydWUpOworICAg
ICAgICB2YXIgc2NoZWR1bGVSZWZyZXNoQ2FsbGJhY2sgPSB0aGlzLl9pbnZhbGlkYXRlQW5kU2No
ZWR1bGVSZWZyZXNoLmJpbmQodGhpcywgdHJ1ZSk7CiAgICAgICAgIHRoaXMuX2l0ZW1zR3JhcGhz
RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9leHBhbmRFbGVtZW50cyk7CiAgICAgICAgIHRoaXMu
X2V4cGFuZEVsZW1lbnRzLnJlbW92ZUNoaWxkcmVuKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5qcwppbmRleCAyZDJlZGVhNGUwMjE0OTQ3ODVlM2EwYWNiMmI5MGE4Y2I4ODFmOGQ4Li42
YjllYTVkMjgxY2ExOTRiMjE3YTFiYWJkZmY4YWMzYTk2ZDhkZjViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmpzCkBAIC0zNzgsOCArMzc4LDE2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZ2x1ZVJlY29y
ZHMgPSBnbHVlOwogICAgIH0sCiAKKyAgICBpbnZhbGlkYXRlRmlsdGVyZWRSZWNvcmRzOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICBkZWxldGUgdGhpcy5fZmlsdGVyZWRSZWNvcmRzOworICAg
IH0sCisKICAgICBmaWx0ZXJlZFJlY29yZHM6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGlm
ICh0aGlzLl9maWx0ZXJlZFJlY29yZHMpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVy
ZWRSZWNvcmRzOworCiAgICAgICAgIHZhciByZWNvcmRzSW5XaW5kb3cgPSBbXTsKIAogICAgICAg
ICB2YXIgc3RhY2sgPSBbe2NoaWxkcmVuOiB0aGlzLl9yb290UmVjb3JkLmNoaWxkcmVuLCBpbmRl
eDogMCwgcGFyZW50SXNDb2xsYXBzZWQ6IGZhbHNlfV07CkBAIC00MTAsNiArNDE4LDcgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgdGhpcy5fZmlsdGVyZWRSZWNvcmRzID0gcmVj
b3Jkc0luV2luZG93OwogICAgICAgICByZXR1cm4gcmVjb3Jkc0luV2luZG93OwogICAgIH0sCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>