<?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>155832</bug_id>
          
          <creation_ts>2016-03-23 22:12:27 -0700</creation_ts>
          <short_desc>Web Inspector: Miscellaneous performance fixes in Timeline recording</short_desc>
          <delta_ts>2016-03-24 01:10:07 -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</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1177608</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-23 22:12:27 -0700</bug_when>
    <thetext>* SUMMARY
Miscellaneous performance fixes in Timeline recording.

Using timeline on timeline recording revealed some low hanging fruit performance issues.

  - even if the Rendering Frame&apos;s overview graph is not visible, it is taking up 50% of JavaScript time
  - NavigationBar layout is forcing layouts all the time even if it is not dirty
  - DataGrid layout is positioning resize elements all the time even if not needed
  - calls to Element.prototype.textContent (legends) which don&apos;t change the content take time, can be avoided
  - for..of in some hot paths can be rolled back to basic for loop</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177610</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-23 22:12:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/25332197&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177617</commentid>
    <comment_count>2</comment_count>
      <attachid>274818</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-23 22:20:16 -0700</bug_when>
    <thetext>Created attachment 274818
[PATCH] Proposed Fix

This addressed some issues I was seeing with Memory timeline recording.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177623</commentid>
    <comment_count>3</comment_count>
      <attachid>274818</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-23 22:29:26 -0700</bug_when>
    <thetext>Comment on attachment 274818
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Views/DataGrid.js:629
&gt; +        if (layoutReason == WebInspector.View.LayoutReason.Resize || firstUpdate) {
&gt; +            this._positionResizerElements();
&gt; +            this._positionHeaderViews();
&gt; +        }

I also just realized there are lots of forced layout loops in here with offsetWidth calls... So there is more work to be done. I&apos;ll be looking into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177627</commentid>
    <comment_count>4</comment_count>
      <attachid>274818</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-03-23 22:40:06 -0700</bug_when>
    <thetext>Comment on attachment 274818
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/ChangeLog:59
&gt; +        Revert to fast loop and as this code path is very hot and for..of iteration
&gt; +        was showing up in profiles. Remove assert which seems rather pointless but
&gt; +        showed up in profiles.

:(

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordBar.js:55
&gt; +        for (var i = 0; i &lt; records.length; ++i) {
&gt; +            var record = records[i];

let

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordBar.js:104
&gt; +            for (var i = 0; i &lt; visibleRecords.length; ++i) {
&gt; +                var record = visibleRecords[i];

let

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordBar.js:138
&gt; +        for (var i = 0; i &lt; visibleRecords.length; ++i) {
&gt; +            var record = visibleRecords[i];

let</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177639</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-24 00:18:17 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordBar.js:55
&gt; &gt; +        for (var i = 0; i &lt; records.length; ++i) {
&gt; &gt; +            var record = records[i];
&gt; 
&gt; let
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordBar.js:104
&gt; &gt; +            for (var i = 0; i &lt; visibleRecords.length; ++i) {
&gt; &gt; +                var record = visibleRecords[i];
&gt; 
&gt; let
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/TimelineRecordBar.js:138
&gt; &gt; +        for (var i = 0; i &lt; visibleRecords.length; ++i) {
&gt; &gt; +            var record = visibleRecords[i];
&gt; 
&gt; let

I didn&apos;t want to update all of this code to `let`. Easier to just go with the flow. As it is, creating these record bars still shows up the most in profiles so we might want to rework this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177647</commentid>
    <comment_count>6</comment_count>
      <attachid>274818</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-24 01:10:04 -0700</bug_when>
    <thetext>Comment on attachment 274818
[PATCH] Proposed Fix

Clearing flags on attachment: 274818

Committed r198620: &lt;http://trac.webkit.org/changeset/198620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177648</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-24 01:10:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274818</attachid>
            <date>2016-03-23 22:20:16 -0700</date>
            <delta_ts>2016-03-24 01:10:04 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>misc-perf.patch</filename>
            <type>text/plain</type>
            <size>16761</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGFlYTFkMTAuLjkwNzFiZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY1IEBACiAyMDE2LTAzLTIzICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTWlzY2Vs
bGFuZW91cyBwZXJmb3JtYW5jZSBmaXhlcyBpbiBUaW1lbGluZSByZWNvcmRpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTgzMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9N
b2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNDVE5v
ZGUucHJvdG90eXBlLmhhc0NoaWxkcmVuKToKKyAgICAgICAgTm8gbmVlZCB0byBhbGxvY2F0ZSBh
biBhcnJheSB3aXRoIGFsbCBvZiB0aGUgcHJvcGVydGllcywgd2UgY2FuIGp1c3QKKyAgICAgICAg
Y2hlY2sgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHByb3BlcnR5IHVzaW5nIGEgc2hvcnQgY2ly
Y3VpdCBmb3IuLmluLgorICAgICAgICBQZXJmb3JtYW5jZSB3YXMgYWx3YXlzIGZhc3RlciBmb3Ig
ZW1wdHksIHNtYWxsLCBhbmQgbGFyZ2Ugb2JqZWN0cworICAgICAgICBpbiBtaWNybyBiZW5jaG1h
cmtzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUubGF5b3V0KToKKyAgICAgICAgQXZv
aWQgY2F1c2luZyBET00gbGF5b3V0IHdoZW4gcG9zaXRpb25pbmcgcmVzaXplcnMuIFRoZXkgb25s
eSBuZWVkCisgICAgICAgIGEgbGF5b3V0IGlmIHdlIGFyZSByZXNpemluZyB0aGUgRGF0YUdyaWQs
IG9yIHRoZSBpbml0aWFsIGxheW91dC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
TmF2aWdhdGlvbkJhci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uQmFyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uQmFyLnByb3RvdHlwZS5uZWVkc0xheW91
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdGlvbkJhci5wcm90b3R5cGUubGF5b3V0
KToKKyAgICAgICAgQXZvaWQgY2F1c2luZyBET00gbGF5b3V0IGV2ZXJ5IFZpZXcgbGF5b3V0LiBJ
biBmYWN0LCBvbmx5IGRvIGEKKyAgICAgICAgRE9NIGxheW91dCB3aGVuIHNvbWVvbmUgaGFzIHRy
aWdnZXJlZCBhIG5lZWRzTGF5b3V0IG9uIHRoaXMKKyAgICAgICAgbmF2aWdhdGlvbiBiYXIuIEEg
YmFzaWMgZGlydHkgbGF5b3V0ICh0cmlnZ2VyZWQgYnkgYSBwYXJlbnQpCisgICAgICAgIHNob3Vs
ZCBub3QgaGF2ZSBjYXVzZWQgdXMgdG8gcmVzaXplLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9IZWFwQWxsb2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguanM6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGguanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLnByb3RvdHlw
ZS5sYXlvdXQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTWVtb3J5VGltZWxpbmVP
dmVydmlld0dyYXBoLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9yeVRpbWVsaW5lT3Zl
cnZpZXdHcmFwaC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1lbW9y
eVRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5wcm90b3R5cGUuX3VwZGF0ZUxlZ2VuZCk6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVPdmVydmlld0dyYXBoLmpzOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUmVuZGVyaW5nRnJhbWVUaW1lbGluZU92ZXJ2
aWV3R3JhcGguanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVuZGVyaW5nRnJhbWVUaW1lbGlu
ZU92ZXJ2aWV3R3JhcGgucHJvdG90eXBlLmxheW91dCk6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9TY3JpcHRUaW1lbGluZU92ZXJ2aWV3R3JhcGguanM6CisgICAgICAgIEF2b2lkIGRv
aW5nIGFueSB3b3JrIGluIG5vbi12aXNpYmxlIGdyYXBocy4gVGhpcyB3YXMgdmVyeSBjb21tb24K
KyAgICAgICAgYmVjYXVzZSB0aGUgUmVuZGVyaW5nRnJhbWVUaW1lbGluZU92ZXJ2aWV3R3JhcGgg
aXMgbmV2ZXIgdmlzaWJsZQorICAgICAgICB3aGVuIHRoZSBvdGhlciB0aW1lbGluZSBncmFwaHMg
YXJlLCBidXQgd2FzIHBlcmZvcm1pbmcgbG90cyBvZiB3b3JrLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9NZW1vcnlDYXRlZ29yeVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTWVtb3J5Q2F0ZWdvcnlWaWV3LnByb3RvdHlwZS5jbGVhcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTWVtb3J5Q2F0ZWdvcnlWaWV3LnByb3RvdHlwZS5fdXBkYXRlRGV0YWlscyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTWVtb3J5Q2F0ZWdvcnlWaWV3KToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5NZW1vcnlUaW1lbGluZVZpZXcucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5NZW1vcnlUaW1lbGluZVZpZXcucHJvdG90eXBlLl91cGRhdGVVc2FnZUxlZ2VuZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTWVtb3J5VGltZWxpbmVWaWV3LnByb3RvdHlwZS5fdXBkYXRl
TWF4Q29tcGFyaXNvbkxlZ2VuZCk6CisgICAgICAgIENhY2hlIHZhbHVlcyB0byBhdm9pZCB0ZXh0
Q29udGVudCBjYWxscyBldmVuIGlmIHRoZSBjb250ZW50IGRpZCBub3QgY2hhbmdlLgorICAgICAg
ICBUaGlzIHJlZHVjZXMgdW5uZWNlc3Nhcnkgd29yayB3aGVuIHRoZSB2YWx1ZXMgd291bGRuJ3Qg
Y2hhbmdlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVJlY29yZEJh
ci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZEJhci5jcmVhdGVDb21i
aW5lZEJhcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkQmFyLnByb3Rv
dHlwZS5zZXQgcmVjb3Jkcyk6CisgICAgICAgIFJldmVydCB0byBmYXN0IGxvb3AgYW5kIGFzIHRo
aXMgY29kZSBwYXRoIGlzIHZlcnkgaG90IGFuZCBmb3IuLm9mIGl0ZXJhdGlvbgorICAgICAgICB3
YXMgc2hvd2luZyB1cCBpbiBwcm9maWxlcy4gUmVtb3ZlIGFzc2VydCB3aGljaCBzZWVtcyByYXRo
ZXIgcG9pbnRsZXNzIGJ1dAorICAgICAgICBzaG93ZWQgdXAgaW4gcHJvZmlsZXMuCisKKzIwMTYt
MDMtMjMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBBbGxvdyBjbGlja2luZyB0aGUgVGltZWxpbmUgaW4gRWRpdGluZyBNb2Rl
IHRvIHRvZ2dsZSB0aGUgY2hlY2tib3gKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NTgxNQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcwpp
bmRleCBjZThlYzM0Li5mZDk1Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMK
QEAgLTI0NCw3ICsyNDQsNyBAQCBXZWJJbnNwZWN0b3IuQ0NUTm9kZSA9IGNsYXNzIENDVE5vZGUg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICBoYXNDaGlsZHJlbigpCiAgICAgewot
ICAgICAgICByZXR1cm4gISFPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzLl9jaGlsZHJl
bikubGVuZ3RoOworICAgICAgICByZXR1cm4gIWlzRW1wdHlPYmplY3QodGhpcy5fY2hpbGRyZW4p
OwogICAgIH0KIAogICAgIGZpbmRPck1ha2VDaGlsZChzdGFja0ZyYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwppbmRl
eCBkODczYjUwLi4wMTNjMzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwpAQCAtNTkzLDggKzU5MywxMCBAQCBXZWJJ
bnNwZWN0b3IuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdlYkluc3BlY3Rvci5W
aWV3CiAgICAgLy8KICAgICAvLyBJZiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgYWZ0ZXIg
dGhlIERhdGFHcmlkIGlzIGF0dGFjaGVkIHRvIGl0cwogICAgIC8vIHBhcmVudCBlbGVtZW50LCB0
aGVuIHRoZSBEYXRhR3JpZCdzIGNvbHVtbnMgd2lsbCBub3QgYmUgcmVzaXphYmxlLgotICAgIGxh
eW91dCgpCisgICAgbGF5b3V0KGxheW91dFJlYXNvbikKICAgICB7CisgICAgICAgIGxldCBmaXJz
dFVwZGF0ZSA9IGZhbHNlOworCiAgICAgICAgIC8vIERvIG5vdCBhdHRlbXB0IHRvIHVzZSBvZmZz
ZXRzIGlmIHdlJ3JlIG5vdCBhdHRhY2hlZCB0byB0aGUgZG9jdW1lbnQgdHJlZSB5ZXQuCiAgICAg
ICAgIGlmICghdGhpcy5fY29sdW1uV2lkdGhzSW5pdGlhbGl6ZWQgJiYgdGhpcy5lbGVtZW50Lm9m
ZnNldFdpZHRoKSB7CiAgICAgICAgICAgICAvLyBHaXZlIGFsbCB0aGUgY29sdW1ucyBpbml0aWFs
IHdpZHRocyBub3cgc28gdGhhdCBkdXJpbmcgYSByZXNpemUsCkBAIC02MTgsMTAgKzYyMCwxMyBA
QCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQgPSBjbGFzcyBEYXRhR3JpZCBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5WaWV3CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHRoaXMuX2NvbHVtbldpZHRo
c0luaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGZpcnN0VXBkYXRlID0gdHJ1ZTsKICAg
ICAgICAgfQogCi0gICAgICAgIHRoaXMuX3Bvc2l0aW9uUmVzaXplckVsZW1lbnRzKCk7Ci0gICAg
ICAgIHRoaXMuX3Bvc2l0aW9uSGVhZGVyVmlld3MoKTsKKyAgICAgICAgaWYgKGxheW91dFJlYXNv
biA9PSBXZWJJbnNwZWN0b3IuVmlldy5MYXlvdXRSZWFzb24uUmVzaXplIHx8IGZpcnN0VXBkYXRl
KSB7CisgICAgICAgICAgICB0aGlzLl9wb3NpdGlvblJlc2l6ZXJFbGVtZW50cygpOworICAgICAg
ICAgICAgdGhpcy5fcG9zaXRpb25IZWFkZXJWaWV3cygpOworICAgICAgICB9CiAgICAgfQogCiAg
ICAgY29sdW1uV2lkdGhzTWFwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBBbGxvY2F0
aW9uc1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcwppbmRleCA5ODIwMmQ5Li4wNDM2MjQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9IZWFwQWxs
b2NhdGlvbnNUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVPdmVydmlld0dy
YXBoLmpzCkBAIC00OCw2ICs0OCw5IEBAIFdlYkluc3BlY3Rvci5IZWFwQWxsb2NhdGlvbnNUaW1l
bGluZU92ZXJ2aWV3R3JhcGggPSBjbGFzcyBIZWFwQWxsb2NhdGlvbnNUaW1lbGluCiAKICAgICBs
YXlvdXQoKQogICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCisgICAgICAgICAgICBy
ZXR1cm47CisKICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAKICAgICAg
ICAgLy8gVGhpcyBtYXkgZGlzcGxheSByZWNvcmRzIHBhc3QgdGhlIGN1cnJlbnQgdGltZSBtYXJr
ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKaW5kZXgg
OGFkODBiMS4uMDBlZGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZp
ZXdHcmFwaC5qcwpAQCAtNjEsNiArNjEsOSBAQCBXZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVP
dmVydmlld0dyYXBoID0gY2xhc3MgTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoIGV4dAogCiAg
ICAgbGF5b3V0KCkKICAgICB7CisgICAgICAgIGlmICghdGhpcy52aXNpYmxlKQorICAgICAgICAg
ICAgcmV0dXJuOworCiAgICAgICAgIHRoaXMuX3VwZGF0ZVJvd0xheW91dCh0aGlzLl90aW1lbGlu
ZVBhaW50UmVjb3JkUm93KTsKICAgICAgICAgdGhpcy5fdXBkYXRlUm93TGF5b3V0KHRoaXMuX3Rp
bWVsaW5lTGF5b3V0UmVjb3JkUm93KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NZW1vcnlDYXRlZ29yeVZpZXcuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NZW1vcnlDYXRlZ29yeVZpZXcu
anMKaW5kZXggNTIzOThkNi4uMDM1NjU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWVtb3J5Q2F0ZWdvcnlWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeUNhdGVnb3J5Vmlldy5q
cwpAQCAtNjQsNiArNjQsOSBAQCBXZWJJbnNwZWN0b3IuTWVtb3J5Q2F0ZWdvcnlWaWV3ID0gY2xh
c3MgTWVtb3J5Q2F0ZWdvcnlWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogCiAgICAgY2xlYXIo
KQogICAgIHsKKyAgICAgICAgdGhpcy5fY2FjaGVkTWluU2l6ZSA9IHVuZGVmaW5lZDsKKyAgICAg
ICAgdGhpcy5fY2FjaGVkTWF4U2l6ZSA9IHVuZGVmaW5lZDsKKwogICAgICAgICB0aGlzLl9jaGFy
dC5jbGVhcigpOwogICAgICAgICB0aGlzLl9jaGFydC5uZWVkc0xheW91dCgpOwogICAgIH0KQEAg
LTEwOSw2ICsxMTIsMTIgQEAgV2ViSW5zcGVjdG9yLk1lbW9yeUNhdGVnb3J5VmlldyA9IGNsYXNz
IE1lbW9yeUNhdGVnb3J5VmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci4KIAogICAgIF91cGRhdGVE
ZXRhaWxzKG1pblNpemUsIG1heFNpemUpCiAgICAgeworICAgICAgICBpZiAodGhpcy5fY2FjaGVk
TWluU2l6ZSA9PT0gbWluU2l6ZSAmJiB0aGlzLl9jYWNoZWRNYXhTaXplID09PSBtYXhTaXplKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2NhY2hlZE1pblNpemUgPSBtaW5T
aXplOworICAgICAgICB0aGlzLl9jYWNoZWRNYXhTaXplID0gbWF4U2l6ZTsKKwogICAgICAgICB0
aGlzLl9kZXRhaWxzTWF4RWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiSGlnaGVzdDogJXMiKS5mb3JtYXQoTnVtYmVyLmlzRmluaXRlKG1heFNpemUpID8gTnVtYmVy
LmJ5dGVzVG9TdHJpbmcobWF4U2l6ZSkgOiBlbURhc2gpOwogICAgICAgICB0aGlzLl9kZXRhaWxz
TWluRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG93ZXN0OiAl
cyIpLmZvcm1hdChOdW1iZXIuaXNGaW5pdGUobWluU2l6ZSkgPyBOdW1iZXIuYnl0ZXNUb1N0cmlu
ZyhtaW5TaXplKSA6IGVtRGFzaCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWVtb3J5VGltZWxpbmVPdmVydmlld0dyYXBoLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTWVtb3J5VGltZWxp
bmVPdmVydmlld0dyYXBoLmpzCmluZGV4IDM2Y2YwNWMuLjJjNDQyODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lT3Zl
cnZpZXdHcmFwaC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9NZW1vcnlUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKQEAgLTY1LDYgKzY1LDcgQEAgV2Vi
SW5zcGVjdG9yLk1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE1lbW9yeVRpbWVs
aW5lT3ZlcnZpZXdHcmFwaCBleHQKICAgICAgICAgc3VwZXIucmVzZXQoKTsKIAogICAgICAgICB0
aGlzLl9tYXhTaXplID0gMDsKKyAgICAgICAgdGhpcy5fY2FjaGVkTWF4U2l6ZSA9IHVuZGVmaW5l
ZDsKIAogICAgICAgICB0aGlzLl91cGRhdGVMZWdlbmQoKTsKICAgICAgICAgdGhpcy5fY2hhcnQu
Y2xlYXIoKTsKQEAgLTc2LDYgKzc3LDkgQEAgV2ViSW5zcGVjdG9yLk1lbW9yeVRpbWVsaW5lT3Zl
cnZpZXdHcmFwaCA9IGNsYXNzIE1lbW9yeVRpbWVsaW5lT3ZlcnZpZXdHcmFwaCBleHQKIAogICAg
IGxheW91dCgpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKKyAgICAgICAgICAg
IHJldHVybjsKKwogICAgICAgICB0aGlzLl91cGRhdGVMZWdlbmQoKTsKICAgICAgICAgdGhpcy5f
Y2hhcnQuY2xlYXIoKTsKIApAQCAtMTY1LDYgKzE2OSwxMSBAQCBXZWJJbnNwZWN0b3IuTWVtb3J5
VGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3MgTWVtb3J5VGltZWxpbmVPdmVydmlld0dyYXBo
IGV4dAogCiAgICAgX3VwZGF0ZUxlZ2VuZCgpCiAgICAgeworICAgICAgICBpZiAodGhpcy5fY2Fj
aGVkTWF4U2l6ZSA9PT0gdGhpcy5fbWF4U2l6ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICB0aGlzLl9jYWNoZWRNYXhTaXplID0gdGhpcy5fbWF4U2l6ZTsKKwogICAgICAgICBpZiAo
IXRoaXMuX21heFNpemUpIHsKICAgICAgICAgICAgIHRoaXMuX2xlZ2VuZEVsZW1lbnQuaGlkZGVu
ID0gdHJ1ZTsKICAgICAgICAgICAgIHRoaXMuX2xlZ2VuZEVsZW1lbnQudGV4dENvbnRlbnQgPSAi
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L01lbW9yeVRpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL01lbW9yeVRpbWVsaW5lVmlldy5qcwppbmRleCAyMTU0NWI3Li44YmRmNThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9NZW1v
cnlUaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTWVtb3J5VGltZWxpbmVWaWV3LmpzCkBAIC0xMzUsNiArMTM1LDEwIEBAIFdlYklu
c3BlY3Rvci5NZW1vcnlUaW1lbGluZVZpZXcgPSBjbGFzcyBNZW1vcnlUaW1lbGluZVZpZXcgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuCiAKICAgICAgICAgdGhpcy5fbWF4U2l6ZSA9IDA7CiAKKyAgICAg
ICAgdGhpcy5fY2FjaGVkTGVnZW5kUmVjb3JkID0gbnVsbDsKKyAgICAgICAgdGhpcy5fY2FjaGVk
TGVnZW5kTWF4U2l6ZSA9IHVuZGVmaW5lZDsKKyAgICAgICAgdGhpcy5fY2FjaGVkTGVnZW5kQ3Vy
cmVudFNpemUgPSB1bmRlZmluZWQ7CisKICAgICAgICAgdGhpcy5fdXNhZ2VDaXJjbGVDaGFydC5j
bGVhcigpOwogICAgICAgICB0aGlzLl91c2FnZUNpcmNsZUNoYXJ0Lm5lZWRzTGF5b3V0KCk7CiAg
ICAgICAgIHRoaXMuX2NsZWFyVXNhZ2VMZWdlbmQoKTsKQEAgLTI0NCw2ICsyNDgsMTEgQEAgV2Vi
SW5zcGVjdG9yLk1lbW9yeVRpbWVsaW5lVmlldyA9IGNsYXNzIE1lbW9yeVRpbWVsaW5lVmlldyBl
eHRlbmRzIFdlYkluc3BlY3Rvci4KIAogICAgIF91cGRhdGVVc2FnZUxlZ2VuZChyZWNvcmQpCiAg
ICAgeworICAgICAgICBpZiAodGhpcy5fY2FjaGVkTGVnZW5kUmVjb3JkID09PSByZWNvcmQpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fY2FjaGVkTGVnZW5kUmVjb3JkID0g
cmVjb3JkOworCiAgICAgICAgIGZvciAobGV0IHt0eXBlLCBzaXplfSBvZiByZWNvcmQuY2F0ZWdv
cmllcykgewogICAgICAgICAgICAgbGV0IHNpemVFbGVtZW50ID0gdGhpcy5fdXNhZ2VMZWdlbmRT
aXplRWxlbWVudE1hcC5nZXQodHlwZSk7CiAgICAgICAgICAgICBzaXplRWxlbWVudC50ZXh0Q29u
dGVudCA9IE51bWJlci5pc0Zpbml0ZShzaXplKSA/IE51bWJlci5ieXRlc1RvU3RyaW5nKHNpemUp
IDogZW1EYXNoOwpAQCAtMjc2LDYgKzI4NSwxMiBAQCBXZWJJbnNwZWN0b3IuTWVtb3J5VGltZWxp
bmVWaWV3ID0gY2xhc3MgTWVtb3J5VGltZWxpbmVWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLgog
CiAgICAgX3VwZGF0ZU1heENvbXBhcmlzb25MZWdlbmQoY3VycmVudFNpemUpCiAgICAgeworICAg
ICAgICBpZiAodGhpcy5fY2FjaGVkTGVnZW5kTWF4U2l6ZSA9PT0gdGhpcy5fbWF4U2l6ZSAmJiB0
aGlzLl9jYWNoZWRMZWdlbmRDdXJyZW50U2l6ZSA9PT0gY3VycmVudFNpemUpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fY2FjaGVkTGVnZW5kTWF4U2l6ZSA9IHRoaXMuX21h
eFNpemU7CisgICAgICAgIHRoaXMuX2NhY2hlZExlZ2VuZEN1cnJlbnRTaXplID0gY3VycmVudFNp
emU7CisKICAgICAgICAgdGhpcy5fbWF4Q29tcGFyaXNvbk1heGltdW1TaXplRWxlbWVudC50ZXh0
Q29udGVudCA9IE51bWJlci5pc0Zpbml0ZSh0aGlzLl9tYXhTaXplKSA/IE51bWJlci5ieXRlc1Rv
U3RyaW5nKHRoaXMuX21heFNpemUpIDogZW1EYXNoOwogICAgICAgICB0aGlzLl9tYXhDb21wYXJp
c29uQ3VycmVudFNpemVFbGVtZW50LnRleHRDb250ZW50ID0gTnVtYmVyLmlzRmluaXRlKGN1cnJl
bnRTaXplKSA/IE51bWJlci5ieXRlc1RvU3RyaW5nKGN1cnJlbnRTaXplKSA6IGVtRGFzaDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2
aWdhdGlvbkJhci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L05hdmlnYXRpb25CYXIuanMKaW5kZXggNTQ3YmE4NC4uM2U1YmI3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmF2aWdhdGlvbkJhci5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OYXZpZ2F0aW9u
QmFyLmpzCkBAIC00Miw2ICs0Miw3IEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0aW9uQmFyID0gY2xh
c3MgTmF2aWdhdGlvbkJhciBleHRlbmRzIFdlYkluc3BlY3Rvci5WaWV3CiAgICAgICAgIHRoaXMu
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fa2V5RG93bi5iaW5kKHRo
aXMpLCBmYWxzZSk7CiAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZWRvd24iLCB0aGlzLl9tb3VzZURvd24uYmluZCh0aGlzKSwgZmFsc2UpOwogCisgICAgICAgIHRo
aXMuX2ZvcmNlTGF5b3V0ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX21pbmltdW1XaWR0aCA9IE5h
TjsKICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkl0ZW1zID0gW107CiAKQEAgLTE2MCw4ICsxNjEs
MjAgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRpb25CYXIgPSBjbGFzcyBOYXZpZ2F0aW9uQmFyIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAot
ICAgIGxheW91dCgpCisgICAgbmVlZHNMYXlvdXQoKQogICAgIHsKKyAgICAgICAgdGhpcy5fZm9y
Y2VMYXlvdXQgPSB0cnVlOworCisgICAgICAgIHN1cGVyLm5lZWRzTGF5b3V0KCk7CisgICAgfQor
CisgICAgbGF5b3V0KGxheW91dFJlYXNvbikKKyAgICB7CisgICAgICAgIGlmIChsYXlvdXRSZWFz
b24gIT09IFdlYkluc3BlY3Rvci5WaWV3LkxheW91dFJlYXNvbi5SZXNpemUgJiYgIXRoaXMuX2Zv
cmNlTGF5b3V0KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2ZvcmNlTGF5
b3V0ID0gZmFsc2U7CisKICAgICAgICAgLy8gUmVtb3ZlIHRoZSBjb2xsYXBzZWQgc3R5bGUgY2xh
c3MgdG8gdGVzdCBpZiB0aGUgaXRlbXMgY2FuIGZpdCBhdCBmdWxsIHdpZHRoLgogICAgICAgICB0
aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuTmF2aWdhdGlvbkJhci5D
b2xsYXBzZWRTdHlsZUNsYXNzTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxp
bmVPdmVydmlld0dyYXBoLmpzCmluZGV4IDM4N2M3ZjUuLjIxZGFiMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZU92
ZXJ2aWV3R3JhcGguanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcwpAQCAtNjUsNiArNjUsOSBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1RpbWVsaW5lT3ZlcnZpZXdHcmFwaCA9IGNsYXNzIE5ldHdvcmtU
aW1lbGluZU92ZXJ2aWV3R3JhcGggZQogCiAgICAgbGF5b3V0KCkKICAgICB7CisgICAgICAgIGlm
ICghdGhpcy52aXNpYmxlKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGxldCBzZWNv
bmRzUGVyUGl4ZWwgPSB0aGlzLnRpbWVsaW5lT3ZlcnZpZXcuc2Vjb25kc1BlclBpeGVsOwogICAg
ICAgICBsZXQgcmVjb3JkQmFySW5kZXggPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZW5kZXJpbmdGcmFtZVRpbWVsaW5lT3ZlcnZp
ZXdHcmFwaC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
bmRlcmluZ0ZyYW1lVGltZWxpbmVPdmVydmlld0dyYXBoLmpzCmluZGV4IDAyYmExMTMuLjVjYjM0
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVPdmVydmlld0dyYXBoLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1JlbmRlcmluZ0ZyYW1lVGltZWxpbmVPdmVy
dmlld0dyYXBoLmpzCkBAIC0xMDIsNiArMTAyLDkgQEAgV2ViSW5zcGVjdG9yLlJlbmRlcmluZ0Zy
YW1lVGltZWxpbmVPdmVydmlld0dyYXBoID0gY2xhc3MgUmVuZGVyaW5nRnJhbWVUaW1lbGluZU8K
IAogICAgIGxheW91dCgpCiAgICAgeworICAgICAgICBpZiAoIXRoaXMudmlzaWJsZSkKKyAgICAg
ICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAoIXRoaXMuX3JlbmRlcmluZ0ZyYW1lVGltZWxp
bmUucmVjb3Jkcy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdFRpbWVsaW5lT3Zl
cnZpZXdHcmFwaC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NjcmlwdFRpbWVsaW5lT3ZlcnZpZXdHcmFwaC5qcwppbmRleCBjNzVlYWE1Li5jMTA2NzM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3Jp
cHRUaW1lbGluZU92ZXJ2aWV3R3JhcGguanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxpbmVPdmVydmlld0dyYXBoLmpzCkBAIC01Miw2
ICs1Miw5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRUaW1lbGluZU92ZXJ2aWV3R3JhcGggPSBjbGFz
cyBTY3JpcHRUaW1lbGluZU92ZXJ2aWV3R3JhcGggZXh0CiAKICAgICBsYXlvdXQoKQogICAgIHsK
KyAgICAgICAgaWYgKCF0aGlzLnZpc2libGUpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAg
ICAgbGV0IHNlY29uZHNQZXJQaXhlbCA9IHRoaXMudGltZWxpbmVPdmVydmlldy5zZWNvbmRzUGVy
UGl4ZWw7CiAgICAgICAgIGxldCByZWNvcmRCYXJJbmRleCA9IDA7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lUmVjb3JkQmFy
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVS
ZWNvcmRCYXIuanMKaW5kZXggN2JhMDUzNy4uMTdjMjMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNvcmRCYXIuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVSZWNv
cmRCYXIuanMKQEAgLTUxLDcgKzUxLDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkQmFy
ID0gY2xhc3MgVGltZWxpbmVSZWNvcmRCYXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IKIAogICAg
ICAgICAvLyBGSVhNRTogRG8gYSBiaW5hcnkgc2VhcmNoIGZvciByZWNvcmRzIHRoYXQgZmFsbCBp
bnNpZGUgc3RhcnQgYW5kIGN1cnJlbnQgdGltZS4KIAotICAgICAgICBmb3IgKHZhciByZWNvcmQg
b2YgcmVjb3JkcykgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2ldOwogICAgICAgICAg
ICAgaWYgKGlzTmFOKHJlY29yZC5zdGFydFRpbWUpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCkBAIC05OSw3ICsxMDAsOSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVSZWNvcmRCYXIgPSBj
bGFzcyBUaW1lbGluZVJlY29yZEJhciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYgogICAgICAgICAg
ICAgdmFyIGluYWN0aXZlRW5kVGltZSA9IE5hTjsKICAgICAgICAgICAgIHZhciBpbmFjdGl2ZVJl
Y29yZHMgPSBbXTsKIAotICAgICAgICAgICAgZm9yICh2YXIgcmVjb3JkIG9mIHZpc2libGVSZWNv
cmRzKSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZpc2libGVSZWNvcmRzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIHJlY29yZCA9IHZpc2libGVSZWNvcmRz
W2ldOworCiAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHByZXZpb3VzIHJlY29yZCBp
cyBmYXIgZW5vdWdoIGF3YXkgdG8gY3JlYXRlIHRoZSBpbmFjdGl2ZSBiYXIuCiAgICAgICAgICAg
ICAgICAgaWYgKCFpc05hTihpbmFjdGl2ZVN0YXJ0VGltZSkgJiYgaW5hY3RpdmVTdGFydFRpbWUg
KyBNYXRoLm1heChpbmFjdGl2ZUVuZFRpbWUgLSBpbmFjdGl2ZVN0YXJ0VGltZSwgbWluaW11bUR1
cmF0aW9uKSArIG1pbmltdW1NYXJnaW4gPD0gcmVjb3JkLnN0YXJ0VGltZSkgewogICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVCYXJDYWxsYmFjayhpbmFjdGl2ZVJlY29yZHMsIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVJlY29yZEJhci5SZW5kZXJNb2RlLkluYWN0aXZlT25seSk7CkBAIC0xMzEsNyAr
MTM0LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkQmFyID0gY2xhc3MgVGltZWxpbmVS
ZWNvcmRCYXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IKIAogICAgICAgICB2YXIgc3RhcnRUaW1l
UHJvcGVydHkgPSB1c2VzQWN0aXZlU3RhcnRUaW1lID8gImFjdGl2ZVN0YXJ0VGltZSIgOiAic3Rh
cnRUaW1lIjsKIAotICAgICAgICBmb3IgKHZhciByZWNvcmQgb2YgdmlzaWJsZVJlY29yZHMpIHsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2aXNpYmxlUmVjb3Jkcy5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIHJlY29yZCA9IHZpc2libGVSZWNvcmRzW2ldOwogICAgICAgICAg
ICAgdmFyIHN0YXJ0VGltZSA9IHJlY29yZFtzdGFydFRpbWVQcm9wZXJ0eV07CiAKICAgICAgICAg
ICAgIC8vIENoZWNrIGlmIHRoZSBwcmV2aW91cyByZWNvcmQgaXMgZmFyIGVub3VnaCBhd2F5IHRv
IGNyZWF0ZSB0aGUgYWN0aXZlIGJhci4gV2UgYWxzbyBjcmVhdGUgaXQgbm93IGlmIHRoZSBjdXJy
ZW50IHJlY29yZCBoYXMgbm8gYWN0aXZlIHN0YXRlIHRpbWUuCkBAIC0xOTQsOCArMTk4LDYgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUmVjb3JkQmFyID0gY2xhc3MgVGltZWxpbmVSZWNvcmRCYXIg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2IKIAogICAgICAgICByZWNvcmRzID0gcmVjb3JkcyB8fCBb
XTsKIAotICAgICAgICBjb25zb2xlLmFzc2VydChyZWNvcmRzIGluc3RhbmNlb2YgQXJyYXksICJy
ZWNvcmRzIHNob3VsZCBiZSBhbiBhcnJheSIpOwotCiAgICAgICAgIHRoaXMuX3JlY29yZHMgPSBy
ZWNvcmRzOwogCiAgICAgICAgIC8vIEFzc3VtZSBhbGwgcmVjb3JkcyBhcmUgdGhlIHNhbWUgdHlw
ZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>