<?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>168693</bug_id>
          
          <creation_ts>2017-02-21 16:39:20 -0800</creation_ts>
          <short_desc>Make sampling algorithm more stable and introduce an abstraction for sampled data</short_desc>
          <delta_ts>2017-02-24 21:15:01 -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>Perf Dashboard</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>168813</blocked>
    
    <blocked>168863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>barraclough</cc>
    
    <cc>cdumez</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>joepeck</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1279640</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-21 16:39:20 -0800</bug_when>
    <thetext>Make the sampling algorithm used in TimeSeriesChart a lot simpler and stable
so that changing the window size doesn&apos;t result in some points pop up &amp; disappear.

With new algorithm which filters data points based on purely time interval, the sampling is always stable.
Widening the width of a chart always results in more data points to appear
but not hide existing data points.

Also introduce an abstraction to represent the sampled time series data
so that adding the ability to select baseline, etc... would be easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279674</commentid>
    <comment_count>1</comment_count>
      <attachid>302346</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-21 17:21:22 -0800</bug_when>
    <thetext>Created attachment 302346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279748</commentid>
    <comment_count>2</comment_count>
      <attachid>302361</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-21 20:15:21 -0800</bug_when>
    <thetext>Created attachment 302361
Removed one more unused function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280046</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-02-22 14:09:25 -0800</bug_when>
    <thetext>Committed r212853: &lt;http://trac.webkit.org/changeset/212853&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302346</attachid>
            <date>2017-02-21 17:21:22 -0800</date>
            <delta_ts>2017-02-21 20:15:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168693-20170221171837.patch</filename>
            <type>text/plain</type>
            <size>46992</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjEyNzc2KQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDkxIEBACisyMDE3LTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE1ha2Ugc2FtcGxpbmcgYWxnb3JpdGhtIG1vcmUgc3RhYmxlIGFuZCBpbnRyb2R1
Y2UgYW4gYWJzdHJhY3Rpb24gZm9yIHNhbXBsZWQgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NjkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgcGF0Y2gsIFRpbWVTZXJpZXND
aGFydCdzIHJlc2FtcGxpbmcgcmVzdWx0ZWQgaW4gc29tZSBwb2ludHMgcG9waW5nIHVwIGFuZCBk
aXNhcHBlYXJpbmcgYXMKKyAgICAgICAgdGhlIHdpZHRoIG9mIGEgY2hhcnQgaXMgY2hhbmdlZC4g
ZS5nLiB3aGVuIHJlc2l6aW5nIHRoZSBicm93c2VyIHdpbmRvdy4gVGhlIGJ1ZyB3YXMgYnkgY2F1
c2VkIGJ5CisgICAgICAgIHRoZSBzYW1wbGUgZm9yIGEgZ2l2ZW4gd2lkdGggbm90IGFsd2F5cyBp
bmNsdWRpbmcgYWxsIHBvaW50cyBmb3IgYSBzbWFsbGVyIHdpZHRoIHNvIGFzIHRoZSB3aWR0aCBp
cworICAgICAgICBleHBhbmRlZCwgc29tZSBwb2ludCBtYXkgYmUgZHJvcHBlZC4KKworICAgICAg
ICBGaXhlZCB0aGlzIGJ5IHVzaW5nIGEgbXVjaCBzaW1wbGVyIGFsZ29yaXRobSBvZiBhbHdheXMg
cGlja2luZyBhIHBvaW50IHdoZW4gdGhlIHRpbWUgaW50ZXJ2YWwgYmV0d2VlbgorICAgICAgICB0
aGUgcHJlY2VkaW5nIHBvaW50IGFuZCB0aGUgc3VjY2VlZGluZyBwb2ludCBpcyBsYXJnZXIgdGhh
biB0aGUgbWluaW11bSBzcGFjZSB3ZSBhbGxvdyBmb3IgYSBnaXZlbiB3aWR0aC4KKworICAgICAg
ICBBbHNvIGludHJvZHVjZWQgYSBuZXcgYWJzdHJhY3Rpb24gYXJvdW5kIHRoZSBzYW1wbGUgZGF0
YTogVGltZVNlcmllc1ZpZXcuIEEgVGltZVNlcmllc1ZpZXcgcHJvdmlkZXMKKyAgICAgICAgYSBz
aW1pbGFyIEFQSSB0byBUaW1lU2VyaWVzIGZvciBhIHN1YnNldCBvZiB0aGUgdGltZSBzZXJpZXMg
ZmlsdGVyZWQgYnkgYSB0aW1lIHJhbmdlIGEgY3VzdG9tIGZ1bmN0aW9uLgorICAgICAgICBUaGlz
IHBhdmVzIGEgd2F5IHRvIGFkZGluZyB0aGUgYWJpbGl0eSB0byBzZWxlY3QgYmFzZWxpbmUsIGV0
Yy4uLiBvbiB0aGUgY2hhcnQgc3RhdHVzIHZpZXcuCisKKyAgICAgICAgVGltZVNlcmllc1ZpZXcg
Y2FuIGJlIGluIHR3byBtb2RlczoKKyAgICAgICAgTW9kZSAxLiBUaGUgdmlldyByZXByZXNlbnRz
IGEgY29udGlndW91cyBzdWJyYW5nZSBvZiBUaW1lU2VyaWVzIC0gSW4gdGhpcyBtb2RlLCB0aGlz
Ll9kYXRhIHJlZmVyZW5jZXMKKyAgICAgICAgICAgICAgICB0aGUgdW5kZXJseWluZyBUaW1lU2Vy
aWVzJ3MgX2RhdGEgZGlyZWN0bHksIGFuZCB3ZSB1c2UgX3N0YXJ0aW5nSW5kZXggdG8gYWRqdXN0
IGluZGV4IGdpdmVuIHRvCisgICAgICAgICAgICAgICAgZmluZCB0aGUgcmVsYXRpdmUgaW5kZXgu
IEZpbmRpbmcgdGhlIG5leHQgcG9pbnQgb3IgdGhlIHByZXZpb3VzIHBvaW50IG9mIGEgZ2l2ZW4g
cG9pbnQgaXMgZG9uZQorICAgICAgICAgICAgICAgIHZpYSBsb29raW5nIHVwIHRoZSBwb2ludCdz
IHNlcmllc0luZGV4IGFuZCBkb2luZyBhIHNpbXBsZSBhcml0aG1ldGljLiBJbiBnZW5lcmFsLCBh
biBpbmRleCBpcworICAgICAgICAgICAgICAgIGNvbnZlcnRlZCB0byB0aGUgYWJzb2x1dGUgaW5k
ZXggaW4gdGhlIHVuZGVybHlpbmcgVGltZVNlcmllcydzIF9kYXRhIGFycmF5LgorCisgICAgICAg
IE1vZGUgMi4gVGhlIHZpZXcgcmVwcmVzZW50cyBhIGZpbHRlcmVkIG5vbi1jb250aWd1b3VzIHN1
YnNldCBvZiBUaW1lU2VyaWVzIC0gIEluIHRoaXMgbW9kZSwgdGhpcy5fZGF0YSBpcworICAgICAg
ICAgICAgICAgIGl0cyBvd24gYXJyYXkuIEZpbmRpbmcgdGhlIG5leHQgcG9pbnQgb3IgdGhlIHBy
ZXZpb3VzIHBvaW50IG9mIGEgZ2l2ZW4gcG9pbnQgcmVxdWlyZXMgZmluZGluZworICAgICAgICAg
ICAgICAgIGEgc2libGluZyBwb2ludCBpbiB0aGUgdW5kZXJseWluZyBUaW1lU2VyaWVzIHdoaWNo
IGlzIGluIHRoaXMgdmlldy4gU2luY2UgdGhpcyBtYXkgcmVzdWx0IGluIE8obikKKyAgICAgICAg
ICAgICAgICB0cmF2ZXJzYWwgYW5kIGEgaGFzaCBsb29rdXAsIHdlIGxhemlseSBidWlsZCBhIG1h
cCBvZiBlYWNoIHBvaW50IHRvIGl0cyBwb3NpdGlvbiBpbiBfZGF0YSBpbnN0ZWFkLgorCisgICAg
ICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtc3RhdHVzLXZpZXcuanM6CisgICAgICAg
IChDaGFydFN0YXR1c1ZpZXcucHJvdG90eXBlLnVwZGF0ZVN0YXR1c0lmTmVlZGVkKTogQ2FsbCBz
ZWxlY3RlZFBvaW50cyBpbnN0ZWFkIG9mIHNhbXBsZWREYXRhQmV0d2VlbiBmb3IKKyAgICAgICAg
Y2xhcml0eS4gVGhpcyBmdW5jdGlvbiBub3cgcmV0dXJucyBhIFRpbWVTZXJpZXNWaWV3IGluc3Rl
YWQgb2YgYSByYXcgYXJyYXkuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9pbnRl
cmFjdGl2ZS10aW1lLXNlcmllcy1jaGFydC5qczoKKyAgICAgICAgKEludGVyYWN0aXZlVGltZVNl
cmllc0NoYXJ0LnByb3RvdHlwZS5jdXJyZW50UG9pbnQpOiBVcGRhdGVkIG5vdyB0aGF0IF9zYW1w
bGVkVGltZVNlcmllc0RhdGEgY29udGFpbnMKKyAgICAgICAgYW4gYXJyYXkgb2YgVGltZVNlcmll
c1ZpZXcncy4gTm90ZSB0aGF0IGRpZmYgaXMgZWl0aGVyIDAsIC0xLCBvciAxLgorICAgICAgICAo
SW50ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQucHJvdG90eXBlLnNlbGVjdGVkUG9pbnRzKTogRGl0
dG8uIHNhbXBsZWREYXRhQmV0d2VlbiBubyBsb25nZXIgZXhpc3RzIHNpbmNlCisgICAgICAgIHdl
IGNhbiBzaW1wbHkgY2FsbCB2aWV3VGltZVJhbmdlIG9uIFRpbWVTZXJpZXNWaWV3IHJldHVybmVk
IGJ5IHNhbXBsZWREYXRhQmV0d2Vlbi4KKyAgICAgICAgKEludGVyYWN0aXZlVGltZVNlcmllc0No
YXJ0LnByb3RvdHlwZS5maXJzdFNlbGVjdGVkUG9pbnQpOiBEaXR0by4KKyAgICAgICAgKEludGVy
YWN0aXZlVGltZVNlcmllc0NoYXJ0LnByb3RvdHlwZS5fc2FtcGxlVGltZVNlcmllcyk6IFVzZSBh
ZGQgc2luY2UgZXhjbHVkZWRQb2ludHMgaXMgbm93IGEgU2V0LgorCisgICAgICAgICogcHVibGlj
L3YzL2NvbXBvbmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanM6CisgICAgICAgIChUaW1lU2VyaWVz
Q2hhcnQucHJvdG90eXBlLnNhbXBsZWREYXRhQmV0d2Vlbik6IERlbGV0ZWQuCisgICAgICAgIChU
aW1lU2VyaWVzQ2hhcnQucHJvdG90eXBlLmZpcnN0U2FtcGxlZFBvaW50QmV0d2VlblRpbWUpOiBV
c2UgZmlyc3RQb2ludEluVGltZVJhbmdlIG9uIFRpbWVTZXJpZXNWaWV3CisgICAgICAgIGluc3Rl
YWQgb2YgbWFudWFsbHkgc2VhcmNoaW5nIHRocm91Z2ggdGhlIGFycmF5IG9mIGRhdGEgcG9pbnRz
LgorICAgICAgICAoVGltZVNlcmllc0NoYXJ0LnByb3RvdHlwZS5fZW5zdXJlU2FtcGxlZFRpbWVT
ZXJpZXMpOiBNb2Rlcm5pemVkIHRoZSBjb2RlLiBVc2UgdGhlIHRoZSB0aW1lIGludGVydmFsIG9m
CisgICAgICAgIHRoZSBjaGFydCBkaXZpZGVkIGJ5IHRoZSBudW1iZXIgb2YgYWxsb3dlZCBwb2lu
dHMgYXMgdGhlIHRpbWUgaW50ZXJ2YWwgdXNlZCBpbiB0aGUgbmV3IHNhbXBsaW5nIGFsZ29yaXRo
bS4KKyAgICAgICAgKFRpbWVTZXJpZXNDaGFydC5wcm90b3R5cGUuX3NhbXBsZVRpbWVTZXJpZXMp
OiBSZXdyaXR0ZW4uIFdlIGFsc28gY3JlYXRlIFRpbWVTZXJpZXNWaWV3IGhlcmUuCisgICAgICAg
IChUaW1lU2VyaWVzQ2hhcnQucHJvdG90eXBlLl9zYW1wbGVUaW1lU2VyaWVzLmZpbmRNZWRpYW4p
OiBEZWxldGVkLgorICAgICAgICAoVGltZVNlcmllc0NoYXJ0LnByb3RvdHlwZS5fdXBkYXRlQ2Fu
dmFzU2l6ZUlmQ2xpZW50U2l6ZUNoYW5nZWQpOiBGaXhlZCBhIGJ1ZyB0aGF0IHRoZSBjYW52YXMg
c2l6ZSB3YXNuJ3QKKyAgICAgICAgc2V0IHRvIHRoZSBjb3JyZWN0IHZhbHVlIG9uIENocm9tZSB3
aGVuIGEgaGlnaCBEUEkgc2NyZWVuIGlzIHVzZWQuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvbW9k
ZWxzL3RpbWUtc2VyaWVzLmpzOgorICAgICAgICAoVGltZVNlcmllcy5wcm90b3R5cGUudmlld0Jl
dHdlZW5Qb2ludHMpOiBSZW5hbWVkIGZyb20gZGF0YUJldHdlZW5Qb2ludHMuIE5vdyByZXR1cm5z
IGEgVGltZVNlcmllc1ZpZXcuCisgICAgICAgIChUaW1lU2VyaWVzVmlldyk6IEFkZGVkLiBUaGlz
IGNvbnN0cnVjdG9yIGlzIHRvIGJlIGNhbGxlZCBieSB2aWV3QmV0d2VlblBvaW50cywgdmlld1Rp
bWVSYW5nZSwgYW5kIGZpbHRlci4KKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3RvdHlwZS5f
YnVpbGRQb2ludEluZGV4TWFwKTogQWRkZWQuIFVzZWQgaW4gbW9kZSAoMikuCisgICAgICAgIChU
aW1lU2VyaWVzVmlldy5wcm90b3R5cGUubGVuZ3RoKTogQWRkZWQuCisgICAgICAgIChUaW1lU2Vy
aWVzVmlldy5wcm90b3R5cGUuZmlyc3RQb2ludCk6IEFkZGVkLgorICAgICAgICAoVGltZVNlcmll
c1ZpZXcucHJvdG90eXBlLmxhc3RQb2ludCk6IEFkZGVkLgorICAgICAgICAoVGltZVNlcmllc1Zp
ZXcucHJvdG90eXBlLm5leHRQb2ludCk6IEFkZGVkLiBOb3RlIGluZGV4IGlzIGFsd2F5cyBhIHBv
c2l0aW9uIGluIHRoaXMuX2RhdGEuIEluIG1vZGUgKDEpLAorICAgICAgICB0aGlzIGlzIHRoZSBw
b3NpdGlvbiBvZiB0aGUgcG9pbnQgaW4gdGhlIHVuZGVybHlpbmcgVGltZVNlcmllcycgX2RhdGEu
IEluIG1vZGUgKDIpLCB0aGlzIGlzIHRoZSBwb3NpdGlvbgorICAgICAgICBvZiB0aGUgcG9pbnQg
aW4gdGhpcy5fZGF0YSB3aGljaCBpcyBkaWN0aW5jdCBmcm9tIHRoZSB1bmRlcmx5aW5nIFRpbWVT
ZXJpZXMnIF9kYXRhLgorICAgICAgICAoVGltZVNlcmllc1ZpZXcucHJvdG90eXBlLnByZXZpb3Vz
UG9pbnQpOiBEaXR0by4KKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3RvdHlwZS5maW5kUG9p
bnRCeUluZGV4KTogQWRkZWQuIEZpbmRzIHRoZSBwb2ludCB1c2luZyB0aGUgcG9zaXRpb25hbCBp
bmRleCBmcm9tIHRoZQorICAgICAgICBiZWdpbm5pbmcgb2YgdGhpcyB2aWV3LiBmaW5kUG9pbnRC
eUluZGV4KDApIG9uIG9uZSB2aWV3IG1heSBub3QgYmUgc2FtZSBhcyBmaW5kUG9pbnRCeUluZGV4
KDApIG9mIGFub3RoZXIuCisgICAgICAgIChUaW1lU2VyaWVzVmlldy5wcm90b3R5cGUuZmluZEJ5
SWQpOiBBZGRlZC4gVGhpcyBpcyBPKG4pLgorICAgICAgICAoVGltZVNlcmllc1ZpZXcucHJvdG90
eXBlLnZhbHVlcyk6IEFkZGVkLiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBlYWNoIHBvaW50IGluIHRo
aXMgdmlldy4KKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3RvdHlwZS5maWx0ZXIpOiBBZGRl
ZC4gQ3JlYXRlcyBhIG5ldyB2aWV3IHdpdGggYSBzdWJzZXQgb2YgZGF0YSBwb2ludHMgdGhlIHBy
ZWRpY2F0ZQorICAgICAgICBmdW5jdGlvbiByZXR1cm5lZCB0cnVlLgorICAgICAgICAoVGltZVNl
cmllc1ZpZXcucHJvdG90eXBlLnZpZXdUaW1lUmFuZ2UpOiBBZGRlZC4gQ3JlYXRlcyBhIG5ldyB2
aWV3IHdpdGggYSBzdWJzZXQgb2YgZGF0YSBwb2ludHMgZm9yIHRoZQorICAgICAgICBnaXZlbiB0
aW1lIHJhZ25lLiBXaGVuIHRoZSByZXN1bHRhbnQgdmlldyB3b3VsZCBpbmNsdWRlIGFsbCBwb2lu
dHMgb2YgdGhpcyB2aWV3LCBpdCBzaW1wbHkgcmV0dXJucyBpdHNlbGYKKyAgICAgICAgYXMgYW4g
b3B0aW1pemF0aW9uLgorICAgICAgICAoVGltZVNlcmllc1ZpZXcucHJvdG90eXBlLmZpcnN0UG9p
bnRJblRpbWVSYW5nZSk6IEFkZGVkLiBSZXR1cm5zIHRoZSBmaXJzdCBwb2ludCBpbiB0aGUgdmll
dyB3aGljaCBsaWVzCisgICAgICAgIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgcmFuZ2UuCisg
ICAgICAgIChUaW1lU2VyaWVzVmlldy5wcm90b3R5cGUuU3ltYm9sLml0ZXJhdG9yKTogQWRkZWQu
IEl0ZXJhdGVzIG92ZXIgZWFjaCBwb2ludCBpbiB0aGUgdmlldy4KKworICAgICAgICAqIHB1Ymxp
Yy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanM6CisgICAgICAgIChBbmFseXNpc1Rhc2tD
aGFydFBhbmUucHJvdG90eXBlLnNlbGVjdGVkUG9pbnRzKTogVXNlIHNlbGVjdGVkUG9pbnRzIGlu
IGxpZXUgb2YgZ2V0dGluZyBzZWxlY3Rpb24gYW5kIHRoZW4KKyAgICAgICAgY2FsbGluZyBzYW1w
bGVkRGF0YUJldHdlZW4gd2l0aCB0aGF0IHJhbmdlLgorCisgICAgICAgICogcHVibGljL3YzL3Bh
Z2VzL3N1bW1hcnktcGFnZS5qczoKKyAgICAgICAgKFN1bW1hcnlQYWdlQ29uZmlndXJhdGlvbkdy
b3VwLnNldCBfbWVkaWFuRm9yVGltZVJhbmdlKTogTW9kZXJuaXplZC4KKworICAgICAgICAqIHVu
aXQtdGVzdHMvdGltZS1zZXJpZXMtdGVzdHMuanM6IEFkZGVkIHRlc3RzIGZvciBUaW1lU2VyaWVz
IGFuZCBUaW1lU2VyaWVzVmlldy4gQWxyZWFkeSBjYXVnaHQgYnVncyEKKyAgICAgICAgKGFkZFBv
aW50c1RvU2VyaWVzKToKKwogMjAxNy0wMi0xNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0
Lm9yZz4KIAogICAgICAgICBBZGQgdGVzdHMgZm9yIHRoZSB0aW1lIHNlcmllcyBjaGFydCBhbmQg
Zml4IGJ1Z3MgSSBmb3VuZCBhbG9uZyB0aGUgd2F5CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtc3RhdHVzLXZpZXcuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2NoYXJ0
LXN0YXR1cy12aWV3LmpzCShyZXZpc2lvbiAyMTI3NzUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtp
dC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtc3RhdHVzLXZpZXcuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDE0ICs1MCwxNSBAQCBjbGFzcyBDaGFydFN0YXR1c1ZpZXcgZXh0ZW5kcyBD
b21wb25lbnRCCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICBp
ZiAoc2VsZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9jaGFydC5z
YW1wbGVkRGF0YUJldHdlZW4oJ2N1cnJlbnQnLCBzZWxlY3Rpb25bMF0sIHNlbGVjdGlvblsxXSk7
Ci0gICAgICAgICAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcg
PSB0aGlzLl9jaGFydC5zZWxlY3RlZFBvaW50cygnY3VycmVudCcpOworICAgICAgICAgICAgICAg
IGlmICghdmlldykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAg
ICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAxKSB7CisgICAgICAgICAgICAgICAg
aWYgKHZpZXcgJiYgdmlldy5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgY29u
c29sZS5sb2codmlldy5sZW5ndGgoKSwgdmlldy5maXJzdFBvaW50KCksIHZpZXcubGFzdFBvaW50
KCkpCiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VzZWRTZWxlY3Rpb24gPSBzZWxlY3Rpb247
Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb2ludCA9IGRhdGFbZGF0YS5sZW5ndGggLSAx
XTsKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNQb2ludCA9IGRhdGFbMF07CisgICAgICAg
ICAgICAgICAgICAgIGN1cnJlbnRQb2ludCA9IHZpZXcubGFzdFBvaW50KCk7CisgICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzUG9pbnQgPSB2aWV3LmZpcnN0UG9pbnQoKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgIHsKICAgICAgICAgICAgICAgICBjdXJyZW50UG9p
bnQgPSB0aGlzLl9jaGFydC5jdXJyZW50UG9pbnQoKTsKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9pbnRlcmFjdGl2ZS10aW1lLXNlcmllcy1jaGFy
dC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2Nv
bXBvbmVudHMvaW50ZXJhY3RpdmUtdGltZS1zZXJpZXMtY2hhcnQuanMJKHJldmlzaW9uIDIxMjc3
NSkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9pbnRl
cmFjdGl2ZS10aW1lLXNlcmllcy1jaGFydC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMs
NyBAQCBjbGFzcyBJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFydCBleHRlbmRzCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbDsKIAogICAgICAgICBpZiAoIXRoaXMuX3NhbXBsZWRUaW1lU2VyaWVzRGF0
YSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFdoeSBhcmUgd2Ugbm90IHVzaW5nIGRpZmYgaW4g
dGhpcyBjb2RlIHBhdGg/CiAgICAgICAgICAgICB0aGlzLl9lbnN1cmVGZXRjaGVkVGltZVNlcmll
cygpOwogICAgICAgICAgICAgZm9yICh2YXIgc2VyaWVzIG9mIHRoaXMuX2ZldGNoZWRUaW1lU2Vy
aWVzKSB7CiAgICAgICAgICAgICAgICAgdmFyIHBvaW50ID0gc2VyaWVzLmZpbmRCeUlkKGlkKTsK
QEAgLTMyLDE1ICszMywxNSBAQCBjbGFzcyBJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFydCBleHRl
bmRzCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgfQogCi0gICAgICAgIGZvciAo
dmFyIGRhdGEgb2YgdGhpcy5fc2FtcGxlZFRpbWVTZXJpZXNEYXRhKSB7Ci0gICAgICAgICAgICBp
ZiAoIWRhdGEpCisgICAgICAgIGZvciAodmFyIHZpZXcgb2YgdGhpcy5fc2FtcGxlZFRpbWVTZXJp
ZXNEYXRhKSB7CisgICAgICAgICAgICBpZiAoIXZpZXcpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICB2YXIgaW5kZXggPSBkYXRhLmZpbmRJbmRleChmdW5jdGlvbiAocG9p
bnQpIHsgcmV0dXJuIHBvaW50LmlkID09IGlkOyB9KTsKLSAgICAgICAgICAgIGlmIChpbmRleCA8
IDApCisgICAgICAgICAgICBsZXQgcG9pbnQgPSB2aWV3LmZpbmRCeUlkKGlkKTsKKyAgICAgICAg
ICAgIGlmICghcG9pbnQpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBp
ZiAoZGlmZikKLSAgICAgICAgICAgICAgICBpbmRleCArPSBkaWZmOwotICAgICAgICAgICAgcmV0
dXJuIGRhdGFbTWF0aC5taW4oTWF0aC5tYXgoMCwgaW5kZXgpLCBkYXRhLmxlbmd0aCldOworICAg
ICAgICAgICAgaWYgKCFkaWZmKQorICAgICAgICAgICAgICAgIHJldHVybiBwb2ludDsKKyAgICAg
ICAgICAgIHJldHVybiAocG9pbnQgJiYgZGlmZiA+IDAgPyB2aWV3Lm5leHRQb2ludChwb2ludCkg
OiB2aWV3LnByZXZpb3VzUG9pbnQocG9pbnQpKSB8fCBwb2ludDsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbnVsbDsKICAgICB9CkBAIC00OSwxNCArNTAsMTYgQEAgY2xhc3MgSW50ZXJhY3Rp
dmVUaW1lU2VyaWVzQ2hhcnQgZXh0ZW5kcwogCiAgICAgc2VsZWN0ZWRQb2ludHModHlwZSkKICAg
ICB7Ci0gICAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLl9zZWxlY3Rpb25UaW1lUmFuZ2U7Ci0g
ICAgICAgIHJldHVybiBzZWxlY3Rpb24gPyB0aGlzLnNhbXBsZWREYXRhQmV0d2Vlbih0eXBlLCBz
ZWxlY3Rpb25bMF0sIHNlbGVjdGlvblsxXSkgOiBudWxsOworICAgICAgICBjb25zdCBzZWxlY3Rp
b24gPSB0aGlzLl9zZWxlY3Rpb25UaW1lUmFuZ2U7CisgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlz
LnNhbXBsZWRUaW1lU2VyaWVzRGF0YSh0eXBlKTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbiAm
JiBkYXRhID8gZGF0YS52aWV3VGltZVJhbmdlKHNlbGVjdGlvblswXSwgc2VsZWN0aW9uWzFdKSA6
IG51bGw7CiAgICAgfQogCiAgICAgZmlyc3RTZWxlY3RlZFBvaW50KHR5cGUpCiAgICAgewotICAg
ICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5fc2VsZWN0aW9uVGltZVJhbmdlOwotICAgICAgICBy
ZXR1cm4gc2VsZWN0aW9uID8gdGhpcy5maXJzdFNhbXBsZWRQb2ludEJldHdlZW5UaW1lKHR5cGUs
IHNlbGVjdGlvblswXSwgc2VsZWN0aW9uWzFdKSA6IG51bGw7CisgICAgICAgIGNvbnN0IHNlbGVj
dGlvbiA9IHRoaXMuX3NlbGVjdGlvblRpbWVSYW5nZTsKKyAgICAgICAgY29uc3QgZGF0YSA9IHRo
aXMuc2FtcGxlZFRpbWVTZXJpZXNEYXRhKHR5cGUpOworICAgICAgICByZXR1cm4gc2VsZWN0aW9u
ICYmIGRhdGEgPyBkYXRhLmZpcnN0UG9pbnRJblRpbWVSYW5nZShzZWxlY3Rpb25bMF0sIHNlbGVj
dGlvblsxXSkgOiBudWxsOwogICAgIH0KIAogICAgIGxvY2tlZEluZGljYXRvcigpIHsgcmV0dXJu
IHRoaXMuX2luZGljYXRvcklzTG9ja2VkID8gdGhpcy5jdXJyZW50UG9pbnQoKSA6IG51bGw7IH0K
QEAgLTM4MywxMCArMzg2LDEwIEBAIGNsYXNzIEludGVyYWN0aXZlVGltZVNlcmllc0NoYXJ0IGV4
dGVuZHMKICAgICAgICAgcmV0dXJuIG1ldHJpY3M7CiAgICAgfQogCi0gICAgX3NhbXBsZVRpbWVT
ZXJpZXMoZGF0YSwgbWF4aW11bU51bWJlck9mUG9pbnRzLCBleGNsdWRlZFBvaW50cykKKyAgICBf
c2FtcGxlVGltZVNlcmllcyhkYXRhLCBtaW5pbXVtVGltZURpZmYsIGV4Y2x1ZGVkUG9pbnRzKQog
ICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2luZGljYXRvcklEKQotICAgICAgICAgICAgZXhjbHVk
ZWRQb2ludHMucHVzaCh0aGlzLl9pbmRpY2F0b3JJRCk7CisgICAgICAgICAgICBleGNsdWRlZFBv
aW50cy5hZGQodGhpcy5faW5kaWNhdG9ySUQpOwogICAgICAgICByZXR1cm4gc3VwZXIuX3NhbXBs
ZVRpbWVTZXJpZXMoZGF0YSwgbWF4aW11bU51bWJlck9mUG9pbnRzLCBleGNsdWRlZFBvaW50cyk7
CiAgICAgfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53
ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3RpbWUtc2VyaWVzLWNoYXJ0LmpzCShyZXZp
c2lvbiAyMTI3NzUpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBv
bmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEzMSwyMCArMTMx
LDEyIEBAIGNsYXNzIFRpbWVTZXJpZXNDaGFydCBleHRlbmRzIENvbXBvbmVudEIKICAgICAgICAg
cmV0dXJuIG51bGw7CiAgICAgfQogCi0gICAgc2FtcGxlZERhdGFCZXR3ZWVuKHR5cGUsIHN0YXJ0
VGltZSwgZW5kVGltZSkKLSAgICB7Ci0gICAgICAgIHZhciBkYXRhID0gdGhpcy5zYW1wbGVkVGlt
ZVNlcmllc0RhdGEodHlwZSk7Ci0gICAgICAgIGlmICghZGF0YSkKLSAgICAgICAgICAgIHJldHVy
biBudWxsOwotICAgICAgICByZXR1cm4gZGF0YS5maWx0ZXIoZnVuY3Rpb24gKHBvaW50KSB7IHJl
dHVybiBzdGFydFRpbWUgPD0gcG9pbnQudGltZSAmJiBwb2ludC50aW1lIDw9IGVuZFRpbWU7IH0p
OwotICAgIH0KLQogICAgIGZpcnN0U2FtcGxlZFBvaW50QmV0d2VlblRpbWUodHlwZSwgc3RhcnRU
aW1lLCBlbmRUaW1lKQogICAgIHsKLSAgICAgICAgdmFyIGRhdGEgPSB0aGlzLnNhbXBsZWRUaW1l
U2VyaWVzRGF0YSh0eXBlKTsKLSAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICBjb25zdCB2aWV3
ID0gdGhpcy5zYW1wbGVkVGltZVNlcmllc0RhdGEodHlwZSk7CisgICAgICAgIGlmICghdmlldykK
ICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICByZXR1cm4gZGF0YS5maW5kKGZ1bmN0
aW9uIChwb2ludCkgeyByZXR1cm4gc3RhcnRUaW1lIDw9IHBvaW50LnRpbWUgJiYgcG9pbnQudGlt
ZSA8PSBlbmRUaW1lOyB9KTsKKyAgICAgICAgcmV0dXJuIHZpZXcuZmlyc3RQb2ludEluVGltZVJh
bmdlKHN0YXJ0VGltZSwgZW5kVGltZSk7CiAgICAgfQogCiAgICAgc2V0QW5ub3RhdGlvbnMoYW5u
b3RhdGlvbnMpCkBAIC00OTcsMjkgKzQ4OSwyOCBAQCBjbGFzcyBUaW1lU2VyaWVzQ2hhcnQgZXh0
ZW5kcyBDb21wb25lbnRCCiAKICAgICAgICAgSW5zdHJ1bWVudGF0aW9uLnN0YXJ0TWVhc3VyaW5n
VGltZSgnVGltZVNlcmllc0NoYXJ0JywgJ2Vuc3VyZVNhbXBsZWRUaW1lU2VyaWVzJyk7CiAKLSAg
ICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgICB2YXIgc3RhcnRUaW1lID0gdGhpcy5fc3Rh
cnRUaW1lOwotICAgICAgICB2YXIgZW5kVGltZSA9IHRoaXMuX2VuZFRpbWU7Ci0gICAgICAgIHRo
aXMuX3NhbXBsZWRUaW1lU2VyaWVzRGF0YSA9IHRoaXMuX3NvdXJjZUxpc3QubWFwKGZ1bmN0aW9u
IChzb3VyY2UsIHNvdXJjZUluZGV4KSB7Ci0gICAgICAgICAgICB2YXIgdGltZVNlcmllcyA9IHNl
bGYuX2ZldGNoZWRUaW1lU2VyaWVzW3NvdXJjZUluZGV4XTsKKyAgICAgICAgY29uc3Qgc3RhcnRU
aW1lID0gdGhpcy5fc3RhcnRUaW1lOworICAgICAgICBjb25zdCBlbmRUaW1lID0gdGhpcy5fZW5k
VGltZTsKKyAgICAgICAgdGhpcy5fc2FtcGxlZFRpbWVTZXJpZXNEYXRhID0gdGhpcy5fc291cmNl
TGlzdC5tYXAoKHNvdXJjZSwgc291cmNlSW5kZXgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRp
bWVTZXJpZXMgPSB0aGlzLl9mZXRjaGVkVGltZVNlcmllc1tzb3VyY2VJbmRleF07CiAgICAgICAg
ICAgICBpZiAoIXRpbWVTZXJpZXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAKICAg
ICAgICAgICAgIC8vIEEgY2hhcnQgd2l0aCBYIHB4IHdpZHRoIHNob3VsZG4ndCBoYXZlIG1vcmUg
dGhhbiAyWCAvIDxyYWRpdXMtb2YtcG9pbnRzPiBkYXRhIHBvaW50cy4KLSAgICAgICAgICAgIHZh
ciBtYXhpbXVtTnVtYmVyT2ZQb2ludHMgPSAyICogbWV0cmljcy5jaGFydFdpZHRoIC8gKHNvdXJj
ZS5wb2ludFJhZGl1cyB8fCAyKTsKKyAgICAgICAgICAgIGNvbnN0IG1heGltdW1OdW1iZXJPZlBv
aW50cyA9IDIgKiBtZXRyaWNzLmNoYXJ0V2lkdGggLyAoc291cmNlLnBvaW50UmFkaXVzIHx8IDIp
OwogCi0gICAgICAgICAgICB2YXIgcG9pbnRBZnRlclN0YXJ0ID0gdGltZVNlcmllcy5maW5kUG9p
bnRBZnRlclRpbWUoc3RhcnRUaW1lKTsKLSAgICAgICAgICAgIHZhciBwb2ludEJlZm9yZVN0YXJ0
ID0gKHBvaW50QWZ0ZXJTdGFydCA/IHRpbWVTZXJpZXMucHJldmlvdXNQb2ludChwb2ludEFmdGVy
U3RhcnQpIDogbnVsbCkgfHwgdGltZVNlcmllcy5maXJzdFBvaW50KCk7Ci0gICAgICAgICAgICB2
YXIgcG9pbnRBZnRlckVuZCA9IHRpbWVTZXJpZXMuZmluZFBvaW50QWZ0ZXJUaW1lKGVuZFRpbWUp
IHx8IHRpbWVTZXJpZXMubGFzdFBvaW50KCk7CisgICAgICAgICAgICBjb25zdCBwb2ludEFmdGVy
U3RhcnQgPSB0aW1lU2VyaWVzLmZpbmRQb2ludEFmdGVyVGltZShzdGFydFRpbWUpOworICAgICAg
ICAgICAgY29uc3QgcG9pbnRCZWZvcmVTdGFydCA9IChwb2ludEFmdGVyU3RhcnQgPyB0aW1lU2Vy
aWVzLnByZXZpb3VzUG9pbnQocG9pbnRBZnRlclN0YXJ0KSA6IG51bGwpIHx8IHRpbWVTZXJpZXMu
Zmlyc3RQb2ludCgpOworICAgICAgICAgICAgY29uc3QgcG9pbnRBZnRlckVuZCA9IHRpbWVTZXJp
ZXMuZmluZFBvaW50QWZ0ZXJUaW1lKGVuZFRpbWUpIHx8IHRpbWVTZXJpZXMubGFzdFBvaW50KCk7
CiAgICAgICAgICAgICBpZiAoIXBvaW50QmVmb3JlU3RhcnQgfHwgIXBvaW50QWZ0ZXJFbmQpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBNb3Zl
IHRoaXMgdG8gVGltZVNlcmllcy5wcm90b3R5cGUuCi0gICAgICAgICAgICB2YXIgZmlsdGVyZWRE
YXRhID0gdGltZVNlcmllcy5kYXRhQmV0d2VlblBvaW50cyhwb2ludEJlZm9yZVN0YXJ0LCBwb2lu
dEFmdGVyRW5kKTsKKyAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aW1lU2VyaWVzLnZpZXdCZXR3
ZWVuUG9pbnRzKHBvaW50QmVmb3JlU3RhcnQsIHBvaW50QWZ0ZXJFbmQpOwogICAgICAgICAgICAg
aWYgKCFzb3VyY2Uuc2FtcGxlRGF0YSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRE
YXRhOworICAgICAgICAgICAgICAgIHJldHVybiB2aWV3OwogCi0gICAgICAgICAgICByZXR1cm4g
c2VsZi5fc2FtcGxlVGltZVNlcmllcyhmaWx0ZXJlZERhdGEsIG1heGltdW1OdW1iZXJPZlBvaW50
cywgZmlsdGVyZWREYXRhLnNsaWNlKC0xKS5tYXAoZnVuY3Rpb24gKHBvaW50KSB7IHJldHVybiBw
b2ludC5pZDsgfSkpOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NhbXBsZVRpbWVTZXJpZXMo
dmlldywgKGVuZFRpbWUgLSBzdGFydFRpbWUpIC8gbWF4aW11bU51bWJlck9mUG9pbnRzLCBuZXcg
U2V0KTsKICAgICAgICAgfSk7CiAKICAgICAgICAgSW5zdHJ1bWVudGF0aW9uLmVuZE1lYXN1cmlu
Z1RpbWUoJ1RpbWVTZXJpZXNDaGFydCcsICdlbnN1cmVTYW1wbGVkVGltZVNlcmllcycpOwpAQCAt
NTI5LDQ5ICs1MjAsMjQgQEAgY2xhc3MgVGltZVNlcmllc0NoYXJ0IGV4dGVuZHMgQ29tcG9uZW50
QgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBfc2FtcGxlVGltZVNlcmllcyhk
YXRhLCBtYXhpbXVtTnVtYmVyT2ZQb2ludHMsIGV4Y2x1ZGVkUG9pbnRzKQorICAgIF9zYW1wbGVU
aW1lU2VyaWVzKHZpZXcsIG1pbmltdW1UaW1lRGlmZiwgZXhjbHVkZWRQb2ludHMpCiAgICAgewor
ICAgICAgICBpZiAodmlldy5sZW5ndGgoKSA8IDIpCisgICAgICAgICAgICByZXR1cm4gdmlldzsK
KwogICAgICAgICBJbnN0cnVtZW50YXRpb24uc3RhcnRNZWFzdXJpbmdUaW1lKCdUaW1lU2VyaWVz
Q2hhcnQnLCAnc2FtcGxlVGltZVNlcmllcycpOwogCi0gICAgICAgIC8vIEZJWE1FOiBEbyB0aGlz
IGluIE8obikgdXNpbmcgcXVpY2tzZWxlY3Q6IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtp
L1F1aWNrc2VsZWN0Ci0gICAgICAgIGZ1bmN0aW9uIGZpbmRNZWRpYW4obGlzdCwgc3RhcnRJbmRl
eCwgaW5kZXhBZnRlckVuZCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHNvcnRlZExpc3Qg
PSBsaXN0LnNsaWNlKHN0YXJ0SW5kZXgsIGluZGV4QWZ0ZXJFbmQpLnNvcnQoZnVuY3Rpb24gKGEs
IGIpIHsgcmV0dXJuIGEudmFsdWUgLSBiLnZhbHVlOyB9KTsKLSAgICAgICAgICAgIHJldHVybiBz
b3J0ZWRMaXN0W01hdGguZmxvb3Ioc29ydGVkTGlzdC5sZW5ndGggLyAyKV07Ci0gICAgICAgIH0K
LQotICAgICAgICB2YXIgc2FtcGxpbmdTaXplID0gTWF0aC5jZWlsKGRhdGEubGVuZ3RoIC8gbWF4
aW11bU51bWJlck9mUG9pbnRzKTsKLQotICAgICAgICB2YXIgdG90YWxUaW1lRGlmZiA9IGRhdGFb
ZGF0YS5sZW5ndGggLSAxXS50aW1lIC0gZGF0YVswXS50aW1lOwotICAgICAgICB2YXIgdGltZVBl
clNhbXBsZSA9IHRvdGFsVGltZURpZmYgLyBtYXhpbXVtTnVtYmVyT2ZQb2ludHM7Ci0KLSAgICAg
ICAgdmFyIHNhbXBsZWREYXRhID0gW107Ci0gICAgICAgIHZhciBsYXN0SW5kZXggPSBkYXRhLmxl
bmd0aCAtIDE7Ci0gICAgICAgIHZhciBpID0gMDsKLSAgICAgICAgd2hpbGUgKGkgPD0gbGFzdElu
ZGV4KSB7Ci0gICAgICAgICAgICB2YXIgc3RhcnRQb2ludCA9IGRhdGFbaV07Ci0gICAgICAgICAg
ICB2YXIgajsKLSAgICAgICAgICAgIGZvciAoaiA9IGk7IGogPD0gbGFzdEluZGV4OyBqKyspIHsK
LSAgICAgICAgICAgICAgICB2YXIgZW5kUG9pbnQgPSBkYXRhW2pdOwotICAgICAgICAgICAgICAg
IGlmIChleGNsdWRlZFBvaW50cy5pbmNsdWRlcyhlbmRQb2ludC5pZCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgai0tOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgaWYgKGVuZFBvaW50LnRpbWUgLSBzdGFydFBvaW50LnRpbWUg
Pj0gdGltZVBlclNhbXBsZSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAoaSA8IGogLSAxKSB7Ci0gICAgICAgICAgICAgICAgc2FtcGxl
ZERhdGEucHVzaChmaW5kTWVkaWFuKGRhdGEsIGksIGopKTsKLSAgICAgICAgICAgICAgICBpID0g
ajsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2FtcGxlZERhdGEucHVz
aChzdGFydFBvaW50KTsKLSAgICAgICAgICAgICAgICBpKys7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KKyAgICAgICAgY29uc3Qgc2FtcGxlZERhdGEgPSB2aWV3LmZpbHRlcigocG9pbnQsIGkp
ID0+IHsKKyAgICAgICAgICAgIGlmIChleGNsdWRlZFBvaW50cy5oYXMocG9pbnQuaWQpKQorICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgbGV0IHByZXZpb3VzUG9pbnQg
PSB2aWV3LnByZXZpb3VzUG9pbnQocG9pbnQpIHx8IHBvaW50OworICAgICAgICAgICAgbGV0IG5l
eHRQb2ludCA9IHZpZXcubmV4dFBvaW50KHBvaW50KSB8fCBwb2ludDsKKyAgICAgICAgICAgIHJl
dHVybiBuZXh0UG9pbnQudGltZSAtIHByZXZpb3VzUG9pbnQudGltZSA+PSBtaW5pbXVtVGltZURp
ZmY7CisgICAgICAgIH0pOwogCiAgICAgICAgIEluc3RydW1lbnRhdGlvbi5lbmRNZWFzdXJpbmdU
aW1lKCdUaW1lU2VyaWVzQ2hhcnQnLCAnc2FtcGxlVGltZVNlcmllcycpOwogCi0gICAgICAgIElu
c3RydW1lbnRhdGlvbi5yZXBvcnRNZWFzdXJlbWVudCgnVGltZVNlcmllc0NoYXJ0JywgJ3NhbXBs
aW5nUmF0aW8nLCAnJScsIHNhbXBsZWREYXRhLmxlbmd0aCAvIGRhdGEubGVuZ3RoICogMTAwKTsK
KyAgICAgICAgSW5zdHJ1bWVudGF0aW9uLnJlcG9ydE1lYXN1cmVtZW50KCdUaW1lU2VyaWVzQ2hh
cnQnLCAnc2FtcGxpbmdSYXRpbycsICclJywgc2FtcGxlZERhdGEubGVuZ3RoKCkgLyB2aWV3Lmxl
bmd0aCgpICogMTAwKTsKIAogICAgICAgICByZXR1cm4gc2FtcGxlZERhdGE7CiAgICAgfQpAQCAt
NjI0LDYgKzU5MCw4IEBAIGNsYXNzIFRpbWVTZXJpZXNDaGFydCBleHRlbmRzIENvbXBvbmVudEIK
ICAgICAgICAgdmFyIHNjYWxlID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87CiAgICAgICAgIGNh
bnZhcy53aWR0aCA9IG5ld1dpZHRoICogc2NhbGU7CiAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBu
ZXdIZWlnaHQgKiBzY2FsZTsKKyAgICAgICAgY2FudmFzLnN0eWxlLndpZHRoID0gbmV3V2lkdGgg
KyAncHgnOworICAgICAgICBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gbmV3SGVpZ2h0ICsgJ3B4JzsK
ICAgICAgICAgdGhpcy5fY29udGV4dFNjYWxlWCA9IHNjYWxlOwogICAgICAgICB0aGlzLl9jb250
ZXh0U2NhbGVZID0gc2NhbGU7CiAgICAgICAgIHRoaXMuX3dpZHRoID0gbmV3V2lkdGg7CkluZGV4
OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVscy90aW1lLXNlcmllcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL21vZGVs
cy90aW1lLXNlcmllcy5qcwkocmV2aXNpb24gMjEyNzc1KQorKysgV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTc0LDE0ICs3NCwxNDggQEAgdmFyIFRpbWVTZXJpZXMgPSBjbGFzcyB7CiAKICAgICBmaW5kUG9p
bnRBZnRlclRpbWUodGltZSkgeyByZXR1cm4gdGhpcy5fZGF0YS5maW5kKGZ1bmN0aW9uIChwb2lu
dCkgeyByZXR1cm4gcG9pbnQudGltZSA+PSB0aW1lOyB9KTsgfQogCi0gICAgZGF0YUJldHdlZW5Q
b2ludHMoZmlyc3RQb2ludCwgbGFzdFBvaW50KQorICAgIHZpZXdCZXR3ZWVuUG9pbnRzKGZpcnN0
UG9pbnQsIGxhc3RQb2ludCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZpcnN0UG9p
bnQuc2VyaWVzID09IHRoaXMpOwogICAgICAgICBjb25zb2xlLmFzc2VydChsYXN0UG9pbnQuc2Vy
aWVzID09IHRoaXMpOwotICAgICAgICByZXR1cm4gdGhpcy5fZGF0YS5zbGljZShmaXJzdFBvaW50
LnNlcmllc0luZGV4LCBsYXN0UG9pbnQuc2VyaWVzSW5kZXggKyAxKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBUaW1lU2VyaWVzVmlldyh0aGlzLCBmaXJzdFBvaW50LnNlcmllc0luZGV4LCBsYXN0UG9p
bnQuc2VyaWVzSW5kZXggKyAxKTsKICAgICB9Ci0KIH07CiAKK2NsYXNzIFRpbWVTZXJpZXNWaWV3
IHsKKyAgICBjb25zdHJ1Y3Rvcih0aW1lU2VyaWVzLCBzdGFydGluZ0luZGV4LCBhZnRlckVuZGlu
Z0luZGV4LCBmaWx0ZXJlZERhdGEgPSBudWxsKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQodGltZVNlcmllcyBpbnN0YW5jZW9mIFRpbWVTZXJpZXMpOworICAgICAgICBjb25zb2xlLmFz
c2VydChzdGFydGluZ0luZGV4IDw9IGFmdGVyRW5kaW5nSW5kZXgpOworICAgICAgICBjb25zb2xl
LmFzc2VydChhZnRlckVuZGluZ0luZGV4IDw9IHRpbWVTZXJpZXMuX2RhdGEubGVuZ3RoKTsKKyAg
ICAgICAgdGhpcy5fdGltZVNlcmllcyA9IHRpbWVTZXJpZXM7CisgICAgICAgIHRoaXMuX2RhdGEg
PSBmaWx0ZXJlZERhdGEgfHwgdGltZVNlcmllcy5fZGF0YTsKKyAgICAgICAgdGhpcy5fdmFsdWVz
ID0gbnVsbDsKKyAgICAgICAgdGhpcy5fbGVuZ3RoID0gYWZ0ZXJFbmRpbmdJbmRleCAtIHN0YXJ0
aW5nSW5kZXg7CisgICAgICAgIHRoaXMuX3N0YXJ0aW5nSW5kZXggPSBzdGFydGluZ0luZGV4Owor
ICAgICAgICB0aGlzLl9hZnRlckVuZGluZ0luZGV4ID0gYWZ0ZXJFbmRpbmdJbmRleDsKKyAgICAg
ICAgdGhpcy5fcG9pbnRJbmRleE1hcCA9IG51bGw7CisKKyAgICAgICAgaWYgKHRoaXMuX2RhdGEg
IT0gdGltZVNlcmllcy5fZGF0YSkgeworICAgICAgICAgICAgdGhpcy5fZmluZEluZGV4Rm9yUG9p
bnQgPSAocG9pbnQpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5fcG9pbnRJbmRleE1h
cCA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICB0aGlzLl9idWlsZFBvaW50SW5kZXhNYXAo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9pbnRJbmRleE1hcC5nZXQocG9pbnQp
OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRoaXMuX2ZpbmRJ
bmRleEZvclBvaW50ID0gKHBvaW50KSA9PiB7IHJldHVybiBwb2ludC5zZXJpZXNJbmRleDsgfQor
ICAgIH0KKworICAgIF9idWlsZFBvaW50SW5kZXhNYXAoKQorICAgIHsKKyAgICAgICAgdGhpcy5f
cG9pbnRJbmRleE1hcCA9IG5ldyBNYXA7CisgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9kYXRh
OworICAgICAgICBjb25zdCBsZW5ndGggPSBkYXRhLmxlbmd0aDsKKyAgICAgICAgZm9yIChsZXQg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHRoaXMuX3BvaW50SW5kZXhNYXAu
c2V0KGRhdGFbaV0sIGkpOworICAgIH0KKworICAgIGxlbmd0aCgpIHsgcmV0dXJuIHRoaXMuX2xl
bmd0aDsgfQorCisgICAgZmlyc3RQb2ludCgpIHsgcmV0dXJuIHRoaXMuX2xlbmd0aCA/IHRoaXMu
X2RhdGFbdGhpcy5fc3RhcnRpbmdJbmRleF0gOiBudWxsOyB9CisgICAgbGFzdFBvaW50KCkgeyBy
ZXR1cm4gdGhpcy5fbGVuZ3RoID8gdGhpcy5fZGF0YVt0aGlzLl9hZnRlckVuZGluZ0luZGV4IC0g
MV0gOiBudWxsOyB9CisKKyAgICBuZXh0UG9pbnQocG9pbnQpCisgICAgeworICAgICAgICBsZXQg
aW5kZXggPSB0aGlzLl9maW5kSW5kZXhGb3JQb2ludChwb2ludCk7CisgICAgICAgIGluZGV4Kys7
CisgICAgICAgIGlmIChpbmRleCA9PSB0aGlzLl9hZnRlckVuZGluZ0luZGV4KQorICAgICAgICAg
ICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJldHVybiB0aGlzLl9kYXRhW2luZGV4XTsKKyAgICB9
CisKKyAgICBwcmV2aW91c1BvaW50KHBvaW50KQorICAgIHsKKyAgICAgICAgY29uc3QgaW5kZXgg
PSB0aGlzLl9maW5kSW5kZXhGb3JQb2ludChwb2ludCk7CisgICAgICAgIGlmIChpbmRleCA9PSB0
aGlzLl9zdGFydGluZ0luZGV4KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJl
dHVybiB0aGlzLl9kYXRhW2luZGV4IC0gMV07CisgICAgfQorCisgICAgZmluZFBvaW50QnlJbmRl
eChpbmRleCkKKyAgICB7CisgICAgICAgIGluZGV4ICs9IHRoaXMuX3N0YXJ0aW5nSW5kZXg7Cisg
ICAgICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fYWZ0ZXJFbmRpbmdJbmRleCkK
KyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVtpbmRl
eF07CisgICAgfQorCisgICAgZmluZEJ5SWQoaWQpCisgICAgeworICAgICAgICBmb3IgKGxldCBw
b2ludCBvZiB0aGlzKSB7CisgICAgICAgICAgICBpZiAocG9pbnQuaWQgPT0gaWQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHBvaW50OworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOwor
ICAgIH0KKworICAgIHZhbHVlcygpCisgICAgeworICAgICAgICBpZiAodGhpcy5fdmFsdWVzID09
IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IG5ldyBBcnJheSh0aGlzLl9sZW5n
dGgpOworICAgICAgICAgICAgbGV0IGkgPSAwOworICAgICAgICAgICAgZm9yIChsZXQgcG9pbnQg
b2YgdGhpcykKKyAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZXNbaSsrXSA9IHBvaW50LnZhbHVl
OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZXM7CisgICAgfQorCisgICAg
ZmlsdGVyKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX2RhdGE7
CisgICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IFtdOworICAgICAgICBmb3IgKGxldCBpID0g
dGhpcy5fc3RhcnRpbmdJbmRleDsgaSA8IHRoaXMuX2FmdGVyRW5kaW5nSW5kZXg7IGkrKykgewor
ICAgICAgICAgICAgaWYgKGNhbGxiYWNrKGRhdGFbaV0sIGkpKQorICAgICAgICAgICAgICAgIGZp
bHRlcmVkRGF0YS5wdXNoKGRhdGFbaV0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBuZXcg
VGltZVNlcmllc1ZpZXcodGhpcy5fdGltZVNlcmllcywgMCwgZmlsdGVyZWREYXRhLmxlbmd0aCwg
ZmlsdGVyZWREYXRhKTsKKyAgICB9CisKKyAgICB2aWV3VGltZVJhbmdlKHN0YXJ0VGltZSwgZW5k
VGltZSkKKyAgICB7CisgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9kYXRhOworICAgICAgICBs
ZXQgc3RhcnRpbmdJbmRleCA9IG51bGw7CisgICAgICAgIGxldCBlbmRpbmdJbmRleCA9IG51bGw7
CisgICAgICAgIGZvciAobGV0IGkgPSB0aGlzLl9zdGFydGluZ0luZGV4OyBpIDwgdGhpcy5fYWZ0
ZXJFbmRpbmdJbmRleDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoc3RhcnRpbmdJbmRleCA9PSBu
dWxsICYmIGRhdGFbaV0udGltZSA+PSBzdGFydFRpbWUpCisgICAgICAgICAgICAgICAgc3RhcnRp
bmdJbmRleCA9IGk7CisgICAgICAgICAgICBpZiAoZGF0YVtpXS50aW1lIDw9IGVuZFRpbWUpCisg
ICAgICAgICAgICAgICAgZW5kaW5nSW5kZXggPSBpOworICAgICAgICB9CisgICAgICAgIGlmIChz
dGFydGluZ0luZGV4ID09IG51bGwgfHwgZW5kaW5nSW5kZXggPT0gbnVsbCkKKyAgICAgICAgICAg
IHJldHVybiBuZXcgVGltZVNlcmllc1ZpZXcodGhpcy5fdGltZVNlcmllcywgMCwgMCwgZGF0YSk7
CisgICAgICAgIHJldHVybiBuZXcgVGltZVNlcmllc1ZpZXcodGhpcy5fdGltZVNlcmllcywgc3Rh
cnRpbmdJbmRleCwgZW5kaW5nSW5kZXggKyAxLCBkYXRhKTsKKyAgICB9CisKKyAgICBmaXJzdFBv
aW50SW5UaW1lUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lKQorICAgIHsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoc3RhcnRUaW1lIDw9IGVuZFRpbWUpOworICAgICAgICBmb3IgKGxldCBwb2ludCBv
ZiB0aGlzKSB7CisgICAgICAgICAgICBpZiAocG9pbnQudGltZSA+IGVuZFRpbWUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICBpZiAocG9pbnQudGltZSA+PSBzdGFy
dFRpbWUpCisgICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50OworICAgICAgICB9CisgICAgICAg
IHJldHVybiBudWxsOworICAgIH0KKworICAgIFtTeW1ib2wuaXRlcmF0b3JdKCkKKyAgICB7Cisg
ICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9kYXRhOworICAgICAgICBjb25zdCBlbmQgPSB0aGlz
Ll9hZnRlckVuZGluZ0luZGV4OworICAgICAgICBsZXQgaSA9IHRoaXMuX3N0YXJ0aW5nSW5kZXg7
CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBuZXh0KCkgeworICAgICAgICAgICAgICAg
IHJldHVybiB7dmFsdWU6IGRhdGFbaV0sIGRvbmU6IGkrKyA9PSBlbmR9OworICAgICAgICAgICAg
fQorICAgICAgICB9OworICAgIH0KK30KKwogaWYgKHR5cGVvZiBtb2R1bGUgIT0gJ3VuZGVmaW5l
ZCcpCiAgICAgbW9kdWxlLmV4cG9ydHMuVGltZVNlcmllcyA9IFRpbWVTZXJpZXM7CkluZGV4OiBX
ZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3BhZ2VzL2FuYWx5c2lzLXRhc2stcGFn
ZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3Bh
Z2VzL2FuYWx5c2lzLXRhc2stcGFnZS5qcwkocmV2aXNpb24gMjEyNzc1KQorKysgV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDExICsyNCw3IEBAIGNsYXNzIEFuYWx5c2lzVGFza0NoYXJ0UGFu
ZSBleHRlbmRzIENoYXIKIAogICAgIHNlbGVjdGVkUG9pbnRzKCkKICAgICB7Ci0gICAgICAgIHZh
ciBzZWxlY3Rpb24gPSB0aGlzLl9tYWluQ2hhcnQgPyB0aGlzLl9tYWluQ2hhcnQuY3VycmVudFNl
bGVjdGlvbigpIDogbnVsbDsKLSAgICAgICAgaWYgKCFzZWxlY3Rpb24pCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKLQotICAgICAgICByZXR1cm4gdGhpcy5fbWFpbkNoYXJ0LnNhbXBsZWREYXRh
QmV0d2VlbignY3VycmVudCcsIHNlbGVjdGlvblswXSwgc2VsZWN0aW9uWzFdKTsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX21haW5DaGFydC5zZWxlY3RlZFBvaW50cygnY3VycmVudCcpOwogICAgIH0K
IH0KIApJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9zdW1t
YXJ5LXBhZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9wYWdlcy9zdW1tYXJ5LXBhZ2UuanMJKHJldmlzaW9uIDIxMjc3NSkKKysrIFdlYnNpdGVz
L3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvc3VtbWFyeS1wYWdlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0zNjQsMTMgKzM2NCwxMiBAQCBjbGFzcyBTdW1tYXJ5UGFnZUNvbmZpZ3VyYXRp
b25Hcm91cCB7CiAgICAgICAgIGlmICghdGltZVNlcmllcy5maXJzdFBvaW50KCkpCiAgICAgICAg
ICAgICByZXR1cm4gTmFOOwogCi0gICAgICAgIHZhciBzdGFydFBvaW50ID0gdGltZVNlcmllcy5m
aW5kUG9pbnRBZnRlclRpbWUodGltZVJhbmdlWzBdKSB8fCB0aW1lU2VyaWVzLmxhc3RQb2ludCgp
OwotICAgICAgICB2YXIgYWZ0ZXJFbmRQb2ludCA9IHRpbWVTZXJpZXMuZmluZFBvaW50QWZ0ZXJU
aW1lKHRpbWVSYW5nZVsxXSkgfHwgdGltZVNlcmllcy5sYXN0UG9pbnQoKTsKLSAgICAgICAgdmFy
IGVuZFBvaW50ID0gdGltZVNlcmllcy5wcmV2aW91c1BvaW50KGFmdGVyRW5kUG9pbnQpOworICAg
ICAgICBjb25zdCBzdGFydFBvaW50ID0gdGltZVNlcmllcy5maW5kUG9pbnRBZnRlclRpbWUodGlt
ZVJhbmdlWzBdKSB8fCB0aW1lU2VyaWVzLmxhc3RQb2ludCgpOworICAgICAgICBjb25zdCBhZnRl
ckVuZFBvaW50ID0gdGltZVNlcmllcy5maW5kUG9pbnRBZnRlclRpbWUodGltZVJhbmdlWzFdKSB8
fCB0aW1lU2VyaWVzLmxhc3RQb2ludCgpOworICAgICAgICBsZXQgZW5kUG9pbnQgPSB0aW1lU2Vy
aWVzLnByZXZpb3VzUG9pbnQoYWZ0ZXJFbmRQb2ludCk7CiAgICAgICAgIGlmICghZW5kUG9pbnQg
fHwgc3RhcnRQb2ludCA9PSBhZnRlckVuZFBvaW50KQogICAgICAgICAgICAgZW5kUG9pbnQgPSBh
ZnRlckVuZFBvaW50OwogCi0gICAgICAgIHZhciBwb2ludHMgPSB0aW1lU2VyaWVzLmRhdGFCZXR3
ZWVuUG9pbnRzKHN0YXJ0UG9pbnQsIGVuZFBvaW50KS5tYXAoZnVuY3Rpb24gKHBvaW50KSB7IHJl
dHVybiBwb2ludC52YWx1ZTsgfSk7Ci0gICAgICAgIHJldHVybiBTdGF0aXN0aWNzLm1lZGlhbihw
b2ludHMpOworICAgICAgICByZXR1cm4gU3RhdGlzdGljcy5tZWRpYW4odGltZVNlcmllcy52aWV3
QmV0d2VlblBvaW50cyhzdGFydFBvaW50LCBlbmRQb2ludCkudmFsdWVzKCkpOwogICAgIH0KIH0K
SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3RzL3RpbWUtc2VyaWVzLXRl
c3RzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy91bml0LXRlc3Rz
L3RpbWUtc2VyaWVzLXRlc3RzLmpzCShub25leGlzdGVudCkKKysrIFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy91bml0LXRlc3RzL3RpbWUtc2VyaWVzLXRlc3RzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDM1IEBACisndXNlIHN0cmljdCc7CisKK2NvbnN0IGFzc2VydCA9IHJlcXVpcmUo
J2Fzc2VydCcpOworaWYgKCFhc3NlcnQuYWxtb3N0RXF1YWwpCisgICAgYXNzZXJ0LmFsbW9zdEVx
dWFsID0gcmVxdWlyZSgnLi9yZXNvdXJjZXMvYWxtb3N0LWVxdWFsLmpzJyk7CisKK2NvbnN0IE1v
Y2tSZW1vdGVBUEkgPSByZXF1aXJlKCcuL3Jlc291cmNlcy9tb2NrLXJlbW90ZS1hcGkuanMnKS5N
b2NrUmVtb3RlQVBJOworcmVxdWlyZSgnLi4vdG9vbHMvanMvdjMtbW9kZWxzLmpzJyk7CisKK2xl
dCB0aHJlZVBvaW50czsKK2xldCBmaXZlUG9pbnRzOworYmVmb3JlRWFjaCgoKSA9PiB7CisgICAg
dGhyZWVQb2ludHMgPSBbCisgICAgICAgIHtpZDogOTEwLCB0aW1lOiAxMDEsIHZhbHVlOiAxMTB9
LAorICAgICAgICB7aWQ6IDkwMiwgdGltZTogMjIwLCB2YWx1ZTogMTAyfSwKKyAgICAgICAge2lk
OiA5MzAsIHRpbWU6IDMwMywgdmFsdWU6IDEzMH0sCisgICAgXTsKKyAgICBmaXZlUG9pbnRzID0g
Wy4uLnRocmVlUG9pbnRzLAorICAgICAgICB7aWQ6IDkwNCwgdGltZTogNDAwLCB2YWx1ZTogMTE0
fSwKKyAgICAgICAge2lkOiA5NTAsIHRpbWU6IDUwNSwgdmFsdWU6IDEwNX0sCisgICAgICAgIHtp
ZDogOTYwLCB0aW1lOiA2MDAsIHZhbHVlOiAxMTZ9LAorICAgIF07Cit9KTsKKworZnVuY3Rpb24g
YWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcywgbGlzdCA9IHRocmVlUG9pbnRzKQoreworICAg
IGZvciAobGV0IHBvaW50IG9mIGxpc3QpCisgICAgICAgIHRpbWVTZXJpZXMuYXBwZW5kKHBvaW50
KTsKK30KKworZGVzY3JpYmUoJ1RpbWVTZXJpZXMnLCAoKSA9PiB7CisKKyAgICBkZXNjcmliZSgn
bGVuZ3RoJywgKCkgPT4geworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgbGVuZ3RoJywg
KCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7
CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmxlbmd0aCgpLCAzKTsKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gMCB3aGVuIHRoZXJlIGFyZSBubyBwb2ludHMnLCAoKSA9
PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmxlbmd0aCgpLCAwKTsKKyAgICAgICAg
fSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgnZmlyc3RQb2ludCcsICgpID0+IHsKKyAgICAg
ICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGZpcnN0IHBvaW50JywgKCkgPT4geworICAgICAgICAg
ICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBhZGRQ
b2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1l
U2VyaWVzLmZpcnN0UG9pbnQoKSwgdGhyZWVQb2ludHNbMF0pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gdGhlcmUgYXJlIG5vIHBvaW50cycsICgp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMuZmlyc3RQb2ludCgpLCBudWxsKTsK
KyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgnbGFzdFBvaW50JywgKCkgPT4g
eworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgZmlyc3QgcG9pbnQnLCAoKSA9PiB7Cisg
ICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAg
ICAgIGFkZFBvaW50c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRpbWVTZXJpZXMubGFzdFBvaW50KCksIHRocmVlUG9pbnRzWzJdKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZXJlIGFyZSBubyBwb2lu
dHMnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJp
ZXMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmxhc3RQb2ludCgpLCBu
dWxsKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgnbmV4dFBvaW50Jywg
KCkgPT4geworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgbmV4dCBwb2ludCB3aGVuIGNh
bGxlZCBvbiB0aGUgZmlyc3QgcG9pbnQnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1l
U2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50c1RvU2VyaWVz
KHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMubmV4dFBv
aW50KHRocmVlUG9pbnRzWzBdKSwgdGhyZWVQb2ludHNbMV0pOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgbmV4dCBwb2ludCB3aGVuIGNhbGxlZCBvbiBhIG1p
ZC1wb2ludCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGlt
ZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5uZXh0UG9pbnQodGhyZWVQb2ludHNb
MV0pLCB0aHJlZVBvaW50c1syXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQg
cmV0dXJuIG51bGwgd2hlbiBjYWxsZWQgb24gdGhlIGxhc3QgcG9pbnQnLCAoKSA9PiB7CisgICAg
ICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAg
IGFkZFBvaW50c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHRpbWVTZXJpZXMubmV4dFBvaW50KHRocmVlUG9pbnRzWzJdKSwgbnVsbCk7CisgICAgICAgIH0p
OworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ3ByZXZpb3VzUG9pbnQnLCAoKSA9PiB7CisgICAg
ICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgd2hlbiBjYWxsZWQgb24gdGhlIGZpcnN0IHBvaW50
JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVz
KCk7CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLnByZXZpb3VzUG9pbnQodGhyZWVQb2ludHNbMF0p
LCBudWxsKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIHBy
ZXZpb3VzIHBvaW50IHdoZW4gY2FsbGVkIG9uIGEgbWlkLXBvaW50JywgKCkgPT4geworICAgICAg
ICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBh
ZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0
aW1lU2VyaWVzLnByZXZpb3VzUG9pbnQodGhyZWVQb2ludHNbMV0pLCB0aHJlZVBvaW50c1swXSk7
CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBwcmV2aW91cyBw
b2ludCB3aGVuIGNhbGxlZCBvbiB0aGUgbGFzdCBwb2ludCcsICgpID0+IHsKKyAgICAgICAgICAg
IGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9p
bnRzVG9TZXJpZXModGltZVNlcmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNl
cmllcy5wcmV2aW91c1BvaW50KHRocmVlUG9pbnRzWzJdKSwgdGhyZWVQb2ludHNbMV0pOworICAg
ICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCdmaW5kUG9pbnRCeUluZGV4JywgKCkg
PT4geworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHRoZSBpbmRleCBpcyBsZXNzIHRo
YW4gMCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNl
cmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcyk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5kUG9pbnRCeUluZGV4KC0xMCksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMuZmluZFBvaW50QnlJbmRl
eCgtMSksIG51bGwpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBu
dWxsIHdoZW4gdGhlIGluZGV4IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbGVuZ3Ro
JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVz
KCk7CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEJ5SW5kZXgoMTApLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEJ5SW5kZXgoMyks
IG51bGwpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdo
ZW4gdGhlIGluZGV4IGlzIG5vdCBhIG51bWJlcicsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0
IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9T
ZXJpZXModGltZVNlcmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5m
aW5kUG9pbnRCeUluZGV4KHVuZGVmaW5lZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRpbWVTZXJpZXMuZmluZFBvaW50QnlJbmRleChOYU4pLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEJ5SW5kZXgoJ2EnKSwgbnVsbCk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBwb2ludCBhdCB0aGUg
c3BlY2lmaWVkIGluZGV4IHdoZW4gaXQgaXMgaW4gdGhlIHZhbGlkIHJhbmdlJywgKCkgPT4gewor
ICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAg
ICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEJ5SW5kZXgoMCksIHRocmVlUG9pbnRzWzBdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEJ5SW5kZXgoMSksIHRo
cmVlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQ
b2ludEJ5SW5kZXgoMiksIHRocmVlUG9pbnRzWzJdKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisK
KyAgICBkZXNjcmliZSgnZmluZEJ5SWQnLCAoKSA9PiB7CisgICAgICAgIGl0KCdzaG91bGQgcmV0
dXJuIHRoZSBwb2ludCB3aXRoIHRoZSBzcGVjaWZpZWQgSUQnLCAoKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBv
aW50c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVT
ZXJpZXMuZmluZEJ5SWQodGhyZWVQb2ludHNbMF0uaWQpLCB0aHJlZVBvaW50c1swXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5kQnlJZCh0aHJlZVBvaW50c1sxXS5p
ZCksIHRocmVlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVz
LmZpbmRCeUlkKHRocmVlUG9pbnRzWzJdLmlkKSwgdGhyZWVQb2ludHNbMl0pOworICAgICAgICB9
KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIGZvciBhIG5vbi1leGlzdGVudCBJ
RCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmll
cygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcyk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5kQnlJZChudWxsKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5kQnlJZCh1bmRlZmluZWQpLCBudWxs
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRCeUlkKE5hTiksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMuZmluZEJ5SWQoJ2EnKSwg
bnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5kQnlJZCg0MjMx
NTYzMjQ2KSwgbnVsbCk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ2Zp
bmRQb2ludEFmdGVyVGltZScsICgpID0+IHsKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhl
IHBvaW50IGF0IHRoZSBzcGVjaWZpZWQgdGltZScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0
IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9T
ZXJpZXModGltZVNlcmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5m
aW5kUG9pbnRBZnRlclRpbWUodGhyZWVQb2ludHNbMF0udGltZSksIHRocmVlUG9pbnRzWzBdKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEFmdGVyVGltZSh0
aHJlZVBvaW50c1sxXS50aW1lKSwgdGhyZWVQb2ludHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHRpbWVTZXJpZXMuZmluZFBvaW50QWZ0ZXJUaW1lKHRocmVlUG9pbnRzWzJdLnRpbWUp
LCB0aHJlZVBvaW50c1syXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmV0
dXJuIHRoZSBwb2ludCBhZnRlciB0aGUgc3BlY2lmaWVkIHRpbWUnLCAoKSA9PiB7CisgICAgICAg
ICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFk
ZFBvaW50c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRp
bWVTZXJpZXMuZmluZFBvaW50QWZ0ZXJUaW1lKHRocmVlUG9pbnRzWzBdLnRpbWUgLSAwLjEpLCB0
aHJlZVBvaW50c1swXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5k
UG9pbnRBZnRlclRpbWUodGhyZWVQb2ludHNbMV0udGltZSAtIDAuMSksIHRocmVlUG9pbnRzWzFd
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEFmdGVyVGlt
ZSh0aHJlZVBvaW50c1syXS50aW1lIC0gMC4xKSwgdGhyZWVQb2ludHNbMl0pOworICAgICAgICB9
KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gdGhlcmUgYXJlIG5vIHBv
aW50cyBhZnRlciB0aGUgc3BlY2lmaWVkIHRpbWUnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25z
dCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50c1Rv
U2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMu
ZmluZFBvaW50QWZ0ZXJUaW1lKHRocmVlUG9pbnRzWzJdLnRpbWUgKyAwLjEpLCBudWxsKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGZpcnN0IHBvaW50IHdo
ZW4gdGhlcmUgYXJlIG11bHRpcGxlIHBvaW50cyBhdCB0aGUgc3BlY2lmaWVkIHRpbWUnLCAoKSA9
PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAg
ICAgICAgICAgIGNvbnN0IHBvaW50cyA9IFsKKyAgICAgICAgICAgICAgICB7aWQ6IDkwOSwgdGlt
ZTogIDk5LCB2YWx1ZTogMTA1fSwKKyAgICAgICAgICAgICAgICB7aWQ6IDkxMCwgdGltZTogMTAw
LCB2YWx1ZTogMTEwfSwKKyAgICAgICAgICAgICAgICB7aWQ6IDkwMiwgdGltZTogMTAwLCB2YWx1
ZTogMTAyfSwKKyAgICAgICAgICAgICAgICB7aWQ6IDkzMCwgdGltZTogMTAxLCB2YWx1ZTogMTMw
fSwKKyAgICAgICAgICAgIF07CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2Vy
aWVzLCBwb2ludHMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMuZmluZFBv
aW50QWZ0ZXJUaW1lKHBvaW50c1sxXS50aW1lKSwgcG9pbnRzWzFdKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CisKKyAgICBkZXNjcmliZSgndmlld0JldHdlZW5Qb2ludHMnLCAoKSA9PiB7CisKKyAg
ICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gYSB2aWV3IGJldHdlZW4gdHdvIHBvaW50cycsICgpID0+
IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOworICAg
ICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcywgZml2ZVBvaW50cyk7CisgICAg
ICAgICAgICBjb25zdCB2aWV3ID0gdGltZVNlcmllcy52aWV3QmV0d2VlblBvaW50cyhmaXZlUG9p
bnRzWzFdLCBmaXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lmxl
bmd0aCgpLCAzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpcnN0UG9pbnQoKSwg
Zml2ZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5sYXN0UG9pbnQo
KSwgZml2ZVBvaW50c1szXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lm5leHRQ
b2ludChmaXZlUG9pbnRzWzFdKSwgZml2ZVBvaW50c1syXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodmlldy5uZXh0UG9pbnQoZml2ZVBvaW50c1syXSksIGZpdmVQb2ludHNbM10pOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcubmV4dFBvaW50KGZpdmVQb2ludHNbM10pLCBudWxs
KTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcucHJldmlvdXNQb2ludChmaXZlUG9p
bnRzWzFdKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5wcmV2aW91c1Bv
aW50KGZpdmVQb2ludHNbMl0pLCBmaXZlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh2aWV3LnByZXZpb3VzUG9pbnQoZml2ZVBvaW50c1szXSksIGZpdmVQb2ludHNbMl0pOwor
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kUG9pbnRCeUluZGV4KDApLCBmaXZl
UG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5k
ZXgoMSksIGZpdmVQb2ludHNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmlu
ZFBvaW50QnlJbmRleCgyKSwgZml2ZVBvaW50c1szXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodmlldy5maW5kUG9pbnRCeUluZGV4KDMpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1swXS5pZCksIG51bGwpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1sxXS5pZCksIGZpdmVQb2lu
dHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50
c1syXS5pZCksIGZpdmVQb2ludHNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcu
ZmluZEJ5SWQoZml2ZVBvaW50c1szXS5pZCksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1s0XS5pZCksIG51bGwpOworCisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZpZXcudmFsdWVzKCksIFtmaXZlUG9pbnRzWzFd
LnZhbHVlLCBmaXZlUG9pbnRzWzJdLnZhbHVlLCBmaXZlUG9pbnRzWzNdLnZhbHVlXSk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2
ZVBvaW50c1swXS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzFdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2
ZVBvaW50c1sxXS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzFdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2
ZVBvaW50c1sxXS50aW1lLCBmaXZlUG9pbnRzWzFdLnRpbWUpLCBmaXZlUG9pbnRzWzFdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2
ZVBvaW50c1swXS50aW1lLCBmaXZlUG9pbnRzWzBdLnRpbWUpLCBudWxsKTsKKyAgICAgICAgICAg
IGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1sx
XS50aW1lICsgMC4xLCBmaXZlUG9pbnRzWzJdLnRpbWUpLCBmaXZlUG9pbnRzWzJdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBv
aW50c1szXS50aW1lIC0gMC4xLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzNdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2Uo
Zml2ZVBvaW50c1s0XS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBudWxsKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChbLi4udmlld10sIGZpdmVQb2ludHMuc2xpY2UoMSwgNCkp
OworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBhIHZpZXcgd2l0aCBl
eGFjdGx5IG9uZSBwb2ludCBmb3Igd2hlbiB0aGUgc3RhcnRpbmcgcG9pbnQgaXMgaWRlbnRpY2Fs
IHRvIHRoZSBlbmRpbmcgcG9pbnQnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2Vy
aWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50c1RvU2VyaWVzKHRp
bWVTZXJpZXMsIGZpdmVQb2ludHMpOworICAgICAgICAgICAgY29uc3QgdmlldyA9IHRpbWVTZXJp
ZXMudmlld0JldHdlZW5Qb2ludHMoZml2ZVBvaW50c1syXSwgZml2ZVBvaW50c1syXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5sZW5ndGgoKSwgMSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodmlldy5maXJzdFBvaW50KCksIGZpdmVQb2ludHNbMl0pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcubGFzdFBvaW50KCksIGZpdmVQb2ludHNbMl0pOworCisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kUG9pbnRCeUluZGV4KDApLCBmaXZlUG9pbnRzWzJd
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5kZXgoMSksIG51
bGwpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRz
WzBdLmlkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChm
aXZlUG9pbnRzWzFdLmlkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5m
aW5kQnlJZChmaXZlUG9pbnRzWzJdLmlkKSwgZml2ZVBvaW50c1syXSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzNdLmlkKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzRdLmlkKSwgbnVs
bCk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy52YWx1ZXMoKSwgW2ZpdmVQ
b2ludHNbMl0udmFsdWVdKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZp
cnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzBdLnRpbWUsIGZpdmVQb2ludHNbNF0udGlt
ZSksIGZpdmVQb2ludHNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZp
cnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzFdLnRpbWUsIGZpdmVQb2ludHNbNF0udGlt
ZSksIGZpdmVQb2ludHNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZp
cnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzFdLnRpbWUsIGZpdmVQb2ludHNbMV0udGlt
ZSksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJ
blRpbWVSYW5nZShmaXZlUG9pbnRzWzBdLnRpbWUsIGZpdmVQb2ludHNbMF0udGltZSksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5n
ZShmaXZlUG9pbnRzWzFdLnRpbWUgKyAwLjEsIGZpdmVQb2ludHNbMl0udGltZSksIGZpdmVQb2lu
dHNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRp
bWVSYW5nZShmaXZlUG9pbnRzWzNdLnRpbWUgLSAwLjEsIGZpdmVQb2ludHNbNF0udGltZSksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVS
YW5nZShmaXZlUG9pbnRzWzRdLnRpbWUsIGZpdmVQb2ludHNbNF0udGltZSksIG51bGwpOworCisg
ICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFsuLi52aWV3XSwgW2ZpdmVQb2ludHNbMl1dKTsK
KyAgICAgICAgfSk7CisKKyAgICB9KTsKKworfSk7CisKK2Rlc2NyaWJlKCdUaW1lU2VyaWVzVmll
dycsICgpID0+IHsKKworICAgIGRlc2NyaWJlKCdmaWx0ZXInLCAoKSA9PiB7CisgICAgICAgIGl0
KCdzaG91bGQgY3JlYXRlIGEgZmlsdGVyZWQgdmlldycsICgpID0+IHsKKyAgICAgICAgICAgIGNv
bnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRz
VG9TZXJpZXModGltZVNlcmllcywgZml2ZVBvaW50cyk7CisgICAgICAgICAgICBjb25zdCBvcmln
aW5hbFZpZXcgPSB0aW1lU2VyaWVzLnZpZXdCZXR3ZWVuUG9pbnRzKGZpdmVQb2ludHNbMF0sIGZp
dmVQb2ludHNbNF0pOworICAgICAgICAgICAgY29uc3QgdmlldyA9IG9yaWdpbmFsVmlldy5maWx0
ZXIoKHBvaW50KSA9PiB7IHJldHVybiBwb2ludCA9PSBmaXZlUG9pbnRzWzFdIHx8IHBvaW50ID09
IGZpdmVQb2ludHNbM107IH0pOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5sZW5n
dGgoKSwgMik7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maXJzdFBvaW50KCksIGZp
dmVQb2ludHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcubGFzdFBvaW50KCks
IGZpdmVQb2ludHNbM10pOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5uZXh0UG9p
bnQoZml2ZVBvaW50c1sxXSksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHZpZXcubmV4dFBvaW50KGZpdmVQb2ludHNbM10pLCBudWxsKTsKKworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcucHJldmlvdXNQb2ludChmaXZlUG9pbnRzWzFdKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5wcmV2aW91c1BvaW50KGZpdmVQb2ludHNbM10p
LCBmaXZlUG9pbnRzWzFdKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZFBv
aW50QnlJbmRleCgwKSwgZml2ZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dmlldy5maW5kUG9pbnRCeUluZGV4KDEpLCBmaXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5kZXgoMiksIG51bGwpOworCisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzBdLmlkKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzFdLmlkKSwg
Zml2ZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChm
aXZlUG9pbnRzWzJdLmlkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5m
aW5kQnlJZChmaXZlUG9pbnRzWzNdLmlkKSwgZml2ZVBvaW50c1szXSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzRdLmlkKSwgbnVsbCk7CisKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy52YWx1ZXMoKSwgW2ZpdmVQb2ludHNbMV0u
dmFsdWUsIGZpdmVQb2ludHNbM10udmFsdWVdKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzBdLnRpbWUsIGZpdmVQ
b2ludHNbNF0udGltZSksIGZpdmVQb2ludHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzFdLnRpbWUsIGZpdmVQ
b2ludHNbNF0udGltZSksIGZpdmVQb2ludHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzFdLnRpbWUsIGZpdmVQ
b2ludHNbMV0udGltZSksIGZpdmVQb2ludHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBF
cXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzBdLnRpbWUsIGZpdmVQ
b2ludHNbMF0udGltZSksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3
LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzFdLnRpbWUgKyAwLjEsIGZpdmVQb2lu
dHNbMl0udGltZSksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZp
cnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzNdLnRpbWUgLSAwLjEsIGZpdmVQb2ludHNb
NF0udGltZSksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2
aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzRdLnRpbWUsIGZpdmVQb2ludHNb
NF0udGltZSksIG51bGwpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFsuLi52aWV3
XSwgW2ZpdmVQb2ludHNbMV0sIGZpdmVQb2ludHNbM11dKTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICBkZXNjcmliZSgndmlld1RpbWVSYW5nZScsICgpID0+IHsKKyAgICAgICAgaXQoJ3No
b3VsZCBjcmVhdGUgYSB2aWV3IGZpbHRlcmVkIGJ5IHRoZSBzcGVjaWZpZWQgdGltZSByYW5nZScs
ICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygp
OworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcywgZml2ZVBvaW50cyk7
CisgICAgICAgICAgICBjb25zdCBvcmlnaW5hbFZpZXcgPSB0aW1lU2VyaWVzLnZpZXdCZXR3ZWVu
UG9pbnRzKGZpdmVQb2ludHNbMF0sIGZpdmVQb2ludHNbNF0pOworICAgICAgICAgICAgY29uc3Qg
dmlldyA9IG9yaWdpbmFsVmlldy52aWV3VGltZVJhbmdlKGZpdmVQb2ludHNbMV0udGltZSAtIDAu
MSwgZml2ZVBvaW50c1s0XS50aW1lIC0gMC4xKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHZpZXcubGVuZ3RoKCksIDMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmlyc3RQ
b2ludCgpLCBmaXZlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lmxh
c3RQb2ludCgpLCBmaXZlUG9pbnRzWzNdKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZp
ZXcubmV4dFBvaW50KGZpdmVQb2ludHNbMV0pLCBmaXZlUG9pbnRzWzJdKTsKKyAgICAgICAgICAg
IGFzc2VydC5lcXVhbCh2aWV3Lm5leHRQb2ludChmaXZlUG9pbnRzWzJdKSwgZml2ZVBvaW50c1sz
XSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5uZXh0UG9pbnQoZml2ZVBvaW50c1sz
XSksIG51bGwpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5wcmV2aW91c1BvaW50
KGZpdmVQb2ludHNbMV0pLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LnBy
ZXZpb3VzUG9pbnQoZml2ZVBvaW50c1syXSksIGZpdmVQb2ludHNbMV0pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcucHJldmlvdXNQb2ludChmaXZlUG9pbnRzWzNdKSwgZml2ZVBvaW50
c1syXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5kZXgo
MCksIGZpdmVQb2ludHNbMV0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZFBv
aW50QnlJbmRleCgxKSwgZml2ZVBvaW50c1syXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dmlldy5maW5kUG9pbnRCeUluZGV4KDIpLCBmaXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5kZXgoMyksIG51bGwpOworCisgICAgICAgICAg
ICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzBdLmlkKSwgbnVsbCk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzFdLmlkKSwg
Zml2ZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChm
aXZlUG9pbnRzWzJdLmlkKSwgZml2ZVBvaW50c1syXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzNdLmlkKSwgZml2ZVBvaW50c1szXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzRdLmlkKSwgbnVs
bCk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy52YWx1ZXMoKSwgW2ZpdmVQ
b2ludHNbMV0udmFsdWUsIGZpdmVQb2ludHNbMl0udmFsdWUsIGZpdmVQb2ludHNbM10udmFsdWVd
KTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVS
YW5nZShmaXZlUG9pbnRzWzBdLnRpbWUsIGZpdmVQb2ludHNbNF0udGltZSksIGZpdmVQb2ludHNb
MV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVS
YW5nZShmaXZlUG9pbnRzWzFdLnRpbWUsIGZpdmVQb2ludHNbNF0udGltZSksIGZpdmVQb2ludHNb
MV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVS
YW5nZShmaXZlUG9pbnRzWzFdLnRpbWUsIGZpdmVQb2ludHNbMV0udGltZSksIGZpdmVQb2ludHNb
MV0pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVS
YW5nZShmaXZlUG9pbnRzWzBdLnRpbWUsIGZpdmVQb2ludHNbMF0udGltZSksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZl
UG9pbnRzWzFdLnRpbWUgKyAwLjEsIGZpdmVQb2ludHNbMl0udGltZSksIGZpdmVQb2ludHNbMl0p
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5n
ZShmaXZlUG9pbnRzWzNdLnRpbWUgLSAwLjEsIGZpdmVQb2ludHNbNF0udGltZSksIGZpdmVQb2lu
dHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRp
bWVSYW5nZShmaXZlUG9pbnRzWzRdLnRpbWUsIGZpdmVQb2ludHNbNF0udGltZSksIG51bGwpOwor
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFsuLi52aWV3XSwgZml2ZVBvaW50cy5zbGlj
ZSgxLCA0KSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgdmll
dyBmaWx0ZXJlZCBieSB0aGUgc3BlY2lmaWVkIHRpbWUgcmFuZ2Ugb24gYSB2aWV3IGFscmVhZHkg
ZmlsdGVyZWQgYnkgYSB0aW1lIHJhbmdlJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGlt
ZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmll
cyh0aW1lU2VyaWVzLCBmaXZlUG9pbnRzKTsKKyAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVmll
dyA9IHRpbWVTZXJpZXMudmlld0JldHdlZW5Qb2ludHMoZml2ZVBvaW50c1swXSwgZml2ZVBvaW50
c1s0XSk7CisgICAgICAgICAgICBjb25zdCBwcmVmaWx0ZXJlZFZpZXcgPSBvcmlnaW5hbFZpZXcu
dmlld1RpbWVSYW5nZShmaXZlUG9pbnRzWzFdLnRpbWUgLSAwLjEsIGZpdmVQb2ludHNbNF0udGlt
ZSAtIDAuMSk7CisgICAgICAgICAgICBjb25zdCB2aWV3ID0gcHJlZmlsdGVyZWRWaWV3LnZpZXdU
aW1lUmFuZ2UoZml2ZVBvaW50c1szXS50aW1lIC0gMC4xLCBmaXZlUG9pbnRzWzNdLnRpbWUgKyAw
LjEpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5sZW5ndGgoKSwgMSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maXJzdFBvaW50KCksIGZpdmVQb2ludHNbM10pOwor
ICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcubGFzdFBvaW50KCksIGZpdmVQb2ludHNbM10p
OworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5uZXh0UG9pbnQoZml2ZVBvaW50c1sz
XSksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcucHJldmlvdXNQb2ludChm
aXZlUG9pbnRzWzNdKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZp
bmRQb2ludEJ5SW5kZXgoMCksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHZpZXcuZmluZFBvaW50QnlJbmRleCgxKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbMF0uaWQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbMV0uaWQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbMl0uaWQp
LCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2lu
dHNbM10uaWQpLCBmaXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3
LmZpbmRCeUlkKGZpdmVQb2ludHNbNF0uaWQpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0
LmRlZXBFcXVhbCh2aWV3LnZhbHVlcygpLCBbZml2ZVBvaW50c1szXS52YWx1ZV0pOworCisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQ
b2ludHNbMF0udGltZSwgZml2ZVBvaW50c1s0XS50aW1lKSwgZml2ZVBvaW50c1szXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQ
b2ludHNbMV0udGltZSwgZml2ZVBvaW50c1s0XS50aW1lKSwgZml2ZVBvaW50c1szXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQ
b2ludHNbMV0udGltZSwgZml2ZVBvaW50c1sxXS50aW1lKSwgbnVsbCk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMF0u
dGltZSwgZml2ZVBvaW50c1swXS50aW1lKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMV0udGltZSArIDAu
MSwgZml2ZVBvaW50c1syXS50aW1lKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVx
dWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbM10udGltZSAtIDAuMSwg
Zml2ZVBvaW50c1s0XS50aW1lKSwgZml2ZVBvaW50c1szXSk7CisgICAgICAgICAgICBhc3NlcnQu
ZGVlcEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbNF0udGltZSwg
Zml2ZVBvaW50c1s0XS50aW1lKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwoWy4uLnZpZXddLCBbZml2ZVBvaW50c1szXV0pOworICAgICAgICB9KTsKKworICAgICAgICBp
dCgnc2hvdWxkIGNyZWF0ZSBhIHZpZXcgZmlsdGVyZWQgYnkgdGhlIHNwZWNpZmllZCB0aW1lIHJh
bmdlIG9uIGEgdmlldyBhbHJlYWR5IGZpbHRlcmVkJywgKCkgPT4geworICAgICAgICAgICAgY29u
c3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBhZGRQb2ludHNU
b1Nlcmllcyh0aW1lU2VyaWVzLCBmaXZlUG9pbnRzKTsKKyAgICAgICAgICAgIGNvbnN0IG9yaWdp
bmFsVmlldyA9IHRpbWVTZXJpZXMudmlld0JldHdlZW5Qb2ludHMoZml2ZVBvaW50c1swXSwgZml2
ZVBvaW50c1s0XSk7CisgICAgICAgICAgICBjb25zdCBwcmVmaWx0ZXJlZFZpZXcgPSBvcmlnaW5h
bFZpZXcuZmlsdGVyKChwb2ludCkgPT4geyByZXR1cm4gcG9pbnQgPT0gZml2ZVBvaW50c1sxXSB8
fCBwb2ludCA9PSBmaXZlUG9pbnRzWzNdOyB9KTsKKyAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBw
cmVmaWx0ZXJlZFZpZXcudmlld1RpbWVSYW5nZShmaXZlUG9pbnRzWzNdLnRpbWUgLSAwLjEsIGZp
dmVQb2ludHNbM10udGltZSArIDAuMSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3
Lmxlbmd0aCgpLCAxKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpcnN0UG9pbnQo
KSwgZml2ZVBvaW50c1szXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5sYXN0UG9p
bnQoKSwgZml2ZVBvaW50c1szXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lm5l
eHRQb2ludChmaXZlUG9pbnRzWzNdKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dmlldy5wcmV2aW91c1BvaW50KGZpdmVQb2ludHNbM10pLCBudWxsKTsKKworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcuZmluZFBvaW50QnlJbmRleCgwKSwgZml2ZVBvaW50c1szXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kUG9pbnRCeUluZGV4KDEpLCBudWxsKTsK
KworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1swXS5p
ZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBv
aW50c1sxXS5pZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5
SWQoZml2ZVBvaW50c1syXS5pZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZp
ZXcuZmluZEJ5SWQoZml2ZVBvaW50c1szXS5pZCksIGZpdmVQb2ludHNbM10pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1s0XS5pZCksIG51bGwpOwor
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZpZXcudmFsdWVzKCksIFtmaXZlUG9pbnRz
WzNdLnZhbHVlXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBv
aW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1swXS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBm
aXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBv
aW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1sxXS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBm
aXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBv
aW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1sxXS50aW1lLCBmaXZlUG9pbnRzWzFdLnRpbWUpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1l
UmFuZ2UoZml2ZVBvaW50c1swXS50aW1lLCBmaXZlUG9pbnRzWzBdLnRpbWUpLCBudWxsKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2
ZVBvaW50c1sxXS50aW1lICsgMC4xLCBmaXZlUG9pbnRzWzJdLnRpbWUpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBv
aW50c1szXS50aW1lIC0gMC4xLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzNdKTsK
KyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2Uo
Zml2ZVBvaW50c1s0XS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBudWxsKTsKKworICAgICAg
ICAgICAgYXNzZXJ0LmRlZXBFcXVhbChbLi4udmlld10sIFtmaXZlUG9pbnRzWzNdXSk7CisgICAg
ICAgIH0pOworICAgIH0pOworCit9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302361</attachid>
            <date>2017-02-21 20:15:21 -0800</date>
            <delta_ts>2017-02-22 13:37:43 -0800</delta_ts>
            <desc>Removed one more unused function</desc>
            <filename>bug-168693-20170221201236.patch</filename>
            <type>text/plain</type>
            <size>46792</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjEyNzkwKQorKysg
V2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDkwIEBACisyMDE3LTAyLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIE1ha2Ugc2FtcGxpbmcgYWxnb3JpdGhtIG1vcmUgc3RhYmxlIGFuZCBpbnRyb2R1
Y2UgYW4gYWJzdHJhY3Rpb24gZm9yIHNhbXBsZWQgZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NjkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgcGF0Y2gsIFRpbWVTZXJpZXND
aGFydCdzIHJlc2FtcGxpbmcgcmVzdWx0ZWQgaW4gc29tZSBwb2ludHMgcG9waW5nIHVwIGFuZCBk
aXNhcHBlYXJpbmcgYXMKKyAgICAgICAgdGhlIHdpZHRoIG9mIGEgY2hhcnQgaXMgY2hhbmdlZC4g
ZS5nLiB3aGVuIHJlc2l6aW5nIHRoZSBicm93c2VyIHdpbmRvdy4gVGhlIGJ1ZyB3YXMgYnkgY2F1
c2VkIGJ5CisgICAgICAgIHRoZSBzYW1wbGUgZm9yIGEgZ2l2ZW4gd2lkdGggbm90IGFsd2F5cyBp
bmNsdWRpbmcgYWxsIHBvaW50cyBmb3IgYSBzbWFsbGVyIHdpZHRoIHNvIGFzIHRoZSB3aWR0aCBp
cworICAgICAgICBleHBhbmRlZCwgc29tZSBwb2ludCBtYXkgYmUgZHJvcHBlZC4KKworICAgICAg
ICBGaXhlZCB0aGlzIGJ5IHVzaW5nIGEgbXVjaCBzaW1wbGVyIGFsZ29yaXRobSBvZiBhbHdheXMg
cGlja2luZyBhIHBvaW50IHdoZW4gdGhlIHRpbWUgaW50ZXJ2YWwgYmV0d2VlbgorICAgICAgICB0
aGUgcHJlY2VkaW5nIHBvaW50IGFuZCB0aGUgc3VjY2VlZGluZyBwb2ludCBpcyBsYXJnZXIgdGhh
biB0aGUgbWluaW11bSBzcGFjZSB3ZSBhbGxvdyBmb3IgYSBnaXZlbiB3aWR0aC4KKworICAgICAg
ICBBbHNvIGludHJvZHVjZWQgYSBuZXcgYWJzdHJhY3Rpb24gYXJvdW5kIHRoZSBzYW1wbGUgZGF0
YTogVGltZVNlcmllc1ZpZXcuIEEgVGltZVNlcmllc1ZpZXcgcHJvdmlkZXMKKyAgICAgICAgYSBz
aW1pbGFyIEFQSSB0byBUaW1lU2VyaWVzIGZvciBhIHN1YnNldCBvZiB0aGUgdGltZSBzZXJpZXMg
ZmlsdGVyZWQgYnkgYSB0aW1lIHJhbmdlIGEgY3VzdG9tIGZ1bmN0aW9uLgorICAgICAgICBUaGlz
IHBhdmVzIGEgd2F5IHRvIGFkZGluZyB0aGUgYWJpbGl0eSB0byBzZWxlY3QgYmFzZWxpbmUsIGV0
Yy4uLiBvbiB0aGUgY2hhcnQgc3RhdHVzIHZpZXcuCisKKyAgICAgICAgVGltZVNlcmllc1ZpZXcg
Y2FuIGJlIGluIHR3byBtb2RlczoKKyAgICAgICAgTW9kZSAxLiBUaGUgdmlldyByZXByZXNlbnRz
IGEgY29udGlndW91cyBzdWJyYW5nZSBvZiBUaW1lU2VyaWVzIC0gSW4gdGhpcyBtb2RlLCB0aGlz
Ll9kYXRhIHJlZmVyZW5jZXMKKyAgICAgICAgICAgICAgICB0aGUgdW5kZXJseWluZyBUaW1lU2Vy
aWVzJ3MgX2RhdGEgZGlyZWN0bHksIGFuZCB3ZSB1c2UgX3N0YXJ0aW5nSW5kZXggdG8gYWRqdXN0
IGluZGV4IGdpdmVuIHRvCisgICAgICAgICAgICAgICAgZmluZCB0aGUgcmVsYXRpdmUgaW5kZXgu
IEZpbmRpbmcgdGhlIG5leHQgcG9pbnQgb3IgdGhlIHByZXZpb3VzIHBvaW50IG9mIGEgZ2l2ZW4g
cG9pbnQgaXMgZG9uZQorICAgICAgICAgICAgICAgIHZpYSBsb29raW5nIHVwIHRoZSBwb2ludCdz
IHNlcmllc0luZGV4IGFuZCBkb2luZyBhIHNpbXBsZSBhcml0aG1ldGljLiBJbiBnZW5lcmFsLCBh
biBpbmRleCBpcworICAgICAgICAgICAgICAgIGNvbnZlcnRlZCB0byB0aGUgYWJzb2x1dGUgaW5k
ZXggaW4gdGhlIHVuZGVybHlpbmcgVGltZVNlcmllcydzIF9kYXRhIGFycmF5LgorCisgICAgICAg
IE1vZGUgMi4gVGhlIHZpZXcgcmVwcmVzZW50cyBhIGZpbHRlcmVkIG5vbi1jb250aWd1b3VzIHN1
YnNldCBvZiBUaW1lU2VyaWVzIC0gIEluIHRoaXMgbW9kZSwgdGhpcy5fZGF0YSBpcworICAgICAg
ICAgICAgICAgIGl0cyBvd24gYXJyYXkuIEZpbmRpbmcgdGhlIG5leHQgcG9pbnQgb3IgdGhlIHBy
ZXZpb3VzIHBvaW50IG9mIGEgZ2l2ZW4gcG9pbnQgcmVxdWlyZXMgZmluZGluZworICAgICAgICAg
ICAgICAgIGEgc2libGluZyBwb2ludCBpbiB0aGUgdW5kZXJseWluZyBUaW1lU2VyaWVzIHdoaWNo
IGlzIGluIHRoaXMgdmlldy4gU2luY2UgdGhpcyBtYXkgcmVzdWx0IGluIE8obikKKyAgICAgICAg
ICAgICAgICB0cmF2ZXJzYWwgYW5kIGEgaGFzaCBsb29rdXAsIHdlIGxhemlseSBidWlsZCBhIG1h
cCBvZiBlYWNoIHBvaW50IHRvIGl0cyBwb3NpdGlvbiBpbiBfZGF0YSBpbnN0ZWFkLgorCisgICAg
ICAgICogcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtc3RhdHVzLXZpZXcuanM6CisgICAgICAg
IChDaGFydFN0YXR1c1ZpZXcucHJvdG90eXBlLnVwZGF0ZVN0YXR1c0lmTmVlZGVkKTogQ2FsbCBz
ZWxlY3RlZFBvaW50cyBpbnN0ZWFkIG9mIHNhbXBsZWREYXRhQmV0d2VlbiBmb3IKKyAgICAgICAg
Y2xhcml0eS4gVGhpcyBmdW5jdGlvbiBub3cgcmV0dXJucyBhIFRpbWVTZXJpZXNWaWV3IGluc3Rl
YWQgb2YgYSByYXcgYXJyYXkuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvY29tcG9uZW50cy9pbnRl
cmFjdGl2ZS10aW1lLXNlcmllcy1jaGFydC5qczoKKyAgICAgICAgKEludGVyYWN0aXZlVGltZVNl
cmllc0NoYXJ0LnByb3RvdHlwZS5jdXJyZW50UG9pbnQpOiBVcGRhdGVkIG5vdyB0aGF0IF9zYW1w
bGVkVGltZVNlcmllc0RhdGEgY29udGFpbnMKKyAgICAgICAgYW4gYXJyYXkgb2YgVGltZVNlcmll
c1ZpZXcncy4gTm90ZSB0aGF0IGRpZmYgaXMgZWl0aGVyIDAsIC0xLCBvciAxLgorICAgICAgICAo
SW50ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQucHJvdG90eXBlLnNlbGVjdGVkUG9pbnRzKTogRGl0
dG8uIHNhbXBsZWREYXRhQmV0d2VlbiBubyBsb25nZXIgZXhpc3RzIHNpbmNlCisgICAgICAgIHdl
IGNhbiBzaW1wbHkgY2FsbCB2aWV3VGltZVJhbmdlIG9uIFRpbWVTZXJpZXNWaWV3IHJldHVybmVk
IGJ5IHNhbXBsZWREYXRhQmV0d2Vlbi4KKyAgICAgICAgKEludGVyYWN0aXZlVGltZVNlcmllc0No
YXJ0LnByb3RvdHlwZS5maXJzdFNlbGVjdGVkUG9pbnQpOiBEaXR0by4KKyAgICAgICAgKEludGVy
YWN0aXZlVGltZVNlcmllc0NoYXJ0LnByb3RvdHlwZS5fc2FtcGxlVGltZVNlcmllcyk6IFVzZSBh
ZGQgc2luY2UgZXhjbHVkZWRQb2ludHMgaXMgbm93IGEgU2V0LgorCisgICAgICAgICogcHVibGlj
L3YzL2NvbXBvbmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanM6CisgICAgICAgIChUaW1lU2VyaWVz
Q2hhcnQucHJvdG90eXBlLnNhbXBsZWREYXRhQmV0d2Vlbik6IERlbGV0ZWQuCisgICAgICAgIChU
aW1lU2VyaWVzQ2hhcnQucHJvdG90eXBlLmZpcnN0U2FtcGxlZFBvaW50QmV0d2VlblRpbWUpOiBE
ZWxldGVkLgorICAgICAgICAoVGltZVNlcmllc0NoYXJ0LnByb3RvdHlwZS5fZW5zdXJlU2FtcGxl
ZFRpbWVTZXJpZXMpOiBNb2Rlcm5pemVkIHRoZSBjb2RlLiBVc2UgdGhlIHRoZSB0aW1lIGludGVy
dmFsIG9mCisgICAgICAgIHRoZSBjaGFydCBkaXZpZGVkIGJ5IHRoZSBudW1iZXIgb2YgYWxsb3dl
ZCBwb2ludHMgYXMgdGhlIHRpbWUgaW50ZXJ2YWwgdXNlZCBpbiB0aGUgbmV3IHNhbXBsaW5nIGFs
Z29yaXRobS4KKyAgICAgICAgKFRpbWVTZXJpZXNDaGFydC5wcm90b3R5cGUuX3NhbXBsZVRpbWVT
ZXJpZXMpOiBSZXdyaXR0ZW4uIFdlIGFsc28gY3JlYXRlIFRpbWVTZXJpZXNWaWV3IGhlcmUuCisg
ICAgICAgIChUaW1lU2VyaWVzQ2hhcnQucHJvdG90eXBlLl9zYW1wbGVUaW1lU2VyaWVzLmZpbmRN
ZWRpYW4pOiBEZWxldGVkLgorICAgICAgICAoVGltZVNlcmllc0NoYXJ0LnByb3RvdHlwZS5fdXBk
YXRlQ2FudmFzU2l6ZUlmQ2xpZW50U2l6ZUNoYW5nZWQpOiBGaXhlZCBhIGJ1ZyB0aGF0IHRoZSBj
YW52YXMgc2l6ZSB3YXNuJ3QKKyAgICAgICAgc2V0IHRvIHRoZSBjb3JyZWN0IHZhbHVlIG9uIENo
cm9tZSB3aGVuIGEgaGlnaCBEUEkgc2NyZWVuIGlzIHVzZWQuCisKKyAgICAgICAgKiBwdWJsaWMv
djMvbW9kZWxzL3RpbWUtc2VyaWVzLmpzOgorICAgICAgICAoVGltZVNlcmllcy5wcm90b3R5cGUu
dmlld0JldHdlZW5Qb2ludHMpOiBSZW5hbWVkIGZyb20gZGF0YUJldHdlZW5Qb2ludHMuIE5vdyBy
ZXR1cm5zIGEgVGltZVNlcmllc1ZpZXcuCisgICAgICAgIChUaW1lU2VyaWVzVmlldyk6IEFkZGVk
LiBUaGlzIGNvbnN0cnVjdG9yIGlzIHRvIGJlIGNhbGxlZCBieSB2aWV3QmV0d2VlblBvaW50cywg
dmlld1RpbWVSYW5nZSwgYW5kIGZpbHRlci4KKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3Rv
dHlwZS5fYnVpbGRQb2ludEluZGV4TWFwKTogQWRkZWQuIFVzZWQgaW4gbW9kZSAoMikuCisgICAg
ICAgIChUaW1lU2VyaWVzVmlldy5wcm90b3R5cGUubGVuZ3RoKTogQWRkZWQuCisgICAgICAgIChU
aW1lU2VyaWVzVmlldy5wcm90b3R5cGUuZmlyc3RQb2ludCk6IEFkZGVkLgorICAgICAgICAoVGlt
ZVNlcmllc1ZpZXcucHJvdG90eXBlLmxhc3RQb2ludCk6IEFkZGVkLgorICAgICAgICAoVGltZVNl
cmllc1ZpZXcucHJvdG90eXBlLm5leHRQb2ludCk6IEFkZGVkLiBOb3RlIGluZGV4IGlzIGFsd2F5
cyBhIHBvc2l0aW9uIGluIHRoaXMuX2RhdGEuIEluIG1vZGUgKDEpLAorICAgICAgICB0aGlzIGlz
IHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9pbnQgaW4gdGhlIHVuZGVybHlpbmcgVGltZVNlcmllcycg
X2RhdGEuIEluIG1vZGUgKDIpLCB0aGlzIGlzIHRoZSBwb3NpdGlvbgorICAgICAgICBvZiB0aGUg
cG9pbnQgaW4gdGhpcy5fZGF0YSB3aGljaCBpcyBkaWN0aW5jdCBmcm9tIHRoZSB1bmRlcmx5aW5n
IFRpbWVTZXJpZXMnIF9kYXRhLgorICAgICAgICAoVGltZVNlcmllc1ZpZXcucHJvdG90eXBlLnBy
ZXZpb3VzUG9pbnQpOiBEaXR0by4KKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3RvdHlwZS5m
aW5kUG9pbnRCeUluZGV4KTogQWRkZWQuIEZpbmRzIHRoZSBwb2ludCB1c2luZyB0aGUgcG9zaXRp
b25hbCBpbmRleCBmcm9tIHRoZQorICAgICAgICBiZWdpbm5pbmcgb2YgdGhpcyB2aWV3LiBmaW5k
UG9pbnRCeUluZGV4KDApIG9uIG9uZSB2aWV3IG1heSBub3QgYmUgc2FtZSBhcyBmaW5kUG9pbnRC
eUluZGV4KDApIG9mIGFub3RoZXIuCisgICAgICAgIChUaW1lU2VyaWVzVmlldy5wcm90b3R5cGUu
ZmluZEJ5SWQpOiBBZGRlZC4gVGhpcyBpcyBPKG4pLgorICAgICAgICAoVGltZVNlcmllc1ZpZXcu
cHJvdG90eXBlLnZhbHVlcyk6IEFkZGVkLiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiBlYWNoIHBvaW50
IGluIHRoaXMgdmlldy4KKyAgICAgICAgKFRpbWVTZXJpZXNWaWV3LnByb3RvdHlwZS5maWx0ZXIp
OiBBZGRlZC4gQ3JlYXRlcyBhIG5ldyB2aWV3IHdpdGggYSBzdWJzZXQgb2YgZGF0YSBwb2ludHMg
dGhlIHByZWRpY2F0ZQorICAgICAgICBmdW5jdGlvbiByZXR1cm5lZCB0cnVlLgorICAgICAgICAo
VGltZVNlcmllc1ZpZXcucHJvdG90eXBlLnZpZXdUaW1lUmFuZ2UpOiBBZGRlZC4gQ3JlYXRlcyBh
IG5ldyB2aWV3IHdpdGggYSBzdWJzZXQgb2YgZGF0YSBwb2ludHMgZm9yIHRoZQorICAgICAgICBn
aXZlbiB0aW1lIHJhZ25lLiBXaGVuIHRoZSByZXN1bHRhbnQgdmlldyB3b3VsZCBpbmNsdWRlIGFs
bCBwb2ludHMgb2YgdGhpcyB2aWV3LCBpdCBzaW1wbHkgcmV0dXJucyBpdHNlbGYKKyAgICAgICAg
YXMgYW4gb3B0aW1pemF0aW9uLgorICAgICAgICAoVGltZVNlcmllc1ZpZXcucHJvdG90eXBlLmZp
cnN0UG9pbnRJblRpbWVSYW5nZSk6IEFkZGVkLiBSZXR1cm5zIHRoZSBmaXJzdCBwb2ludCBpbiB0
aGUgdmlldyB3aGljaCBsaWVzCisgICAgICAgIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgcmFu
Z2UuCisgICAgICAgIChUaW1lU2VyaWVzVmlldy5wcm90b3R5cGUuU3ltYm9sLml0ZXJhdG9yKTog
QWRkZWQuIEl0ZXJhdGVzIG92ZXIgZWFjaCBwb2ludCBpbiB0aGUgdmlldy4KKworICAgICAgICAq
IHB1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanM6CisgICAgICAgIChBbmFseXNp
c1Rhc2tDaGFydFBhbmUucHJvdG90eXBlLnNlbGVjdGVkUG9pbnRzKTogVXNlIHNlbGVjdGVkUG9p
bnRzIGluIGxpZXUgb2YgZ2V0dGluZyBzZWxlY3Rpb24gYW5kIHRoZW4KKyAgICAgICAgY2FsbGlu
ZyBzYW1wbGVkRGF0YUJldHdlZW4gd2l0aCB0aGF0IHJhbmdlLgorCisgICAgICAgICogcHVibGlj
L3YzL3BhZ2VzL3N1bW1hcnktcGFnZS5qczoKKyAgICAgICAgKFN1bW1hcnlQYWdlQ29uZmlndXJh
dGlvbkdyb3VwLnNldCBfbWVkaWFuRm9yVGltZVJhbmdlKTogTW9kZXJuaXplZC4KKworICAgICAg
ICAqIHVuaXQtdGVzdHMvdGltZS1zZXJpZXMtdGVzdHMuanM6IEFkZGVkIHRlc3RzIGZvciBUaW1l
U2VyaWVzIGFuZCBUaW1lU2VyaWVzVmlldy4gQWxyZWFkeSBjYXVnaHQgYnVncyEKKyAgICAgICAg
KGFkZFBvaW50c1RvU2VyaWVzKToKKwogMjAxNy0wMi0xNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgdGVzdHMgZm9yIHRoZSB0aW1lIHNlcmllcyBjaGFy
dCBhbmQgZml4IGJ1Z3MgSSBmb3VuZCBhbG9uZyB0aGUgd2F5CkluZGV4OiBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtc3RhdHVzLXZpZXcuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRz
L2NoYXJ0LXN0YXR1cy12aWV3LmpzCShyZXZpc2lvbiAyMTI3OTApCisrKyBXZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY2hhcnQtc3RhdHVzLXZpZXcuanMJKHdv
cmtpbmcgY29weSkKQEAgLTUwLDE0ICs1MCwxNSBAQCBjbGFzcyBDaGFydFN0YXR1c1ZpZXcgZXh0
ZW5kcyBDb21wb25lbnRCCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAg
ICAgICBpZiAoc2VsZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlzLl9j
aGFydC5zYW1wbGVkRGF0YUJldHdlZW4oJ2N1cnJlbnQnLCBzZWxlY3Rpb25bMF0sIHNlbGVjdGlv
blsxXSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgICAgIGNvbnN0
IHZpZXcgPSB0aGlzLl9jaGFydC5zZWxlY3RlZFBvaW50cygnY3VycmVudCcpOworICAgICAgICAg
ICAgICAgIGlmICghdmlldykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAxKSB7CisgICAgICAgICAg
ICAgICAgaWYgKHZpZXcgJiYgdmlldy5sZW5ndGgoKSA+IDEpIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc29sZS5sb2codmlldy5sZW5ndGgoKSwgdmlldy5maXJzdFBvaW50KCksIHZpZXcubGFz
dFBvaW50KCkpCiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3VzZWRTZWxlY3Rpb24gPSBzZWxl
Y3Rpb247Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb2ludCA9IGRhdGFbZGF0YS5sZW5n
dGggLSAxXTsKLSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNQb2ludCA9IGRhdGFbMF07Cisg
ICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQb2ludCA9IHZpZXcubGFzdFBvaW50KCk7CisgICAg
ICAgICAgICAgICAgICAgIHByZXZpb3VzUG9pbnQgPSB2aWV3LmZpcnN0UG9pbnQoKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgIHsKICAgICAgICAgICAgICAgICBjdXJy
ZW50UG9pbnQgPSB0aGlzLl9jaGFydC5jdXJyZW50UG9pbnQoKTsKSW5kZXg6IFdlYnNpdGVzL3Bl
cmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9pbnRlcmFjdGl2ZS10aW1lLXNlcmll
cy1jaGFydC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGlj
L3YzL2NvbXBvbmVudHMvaW50ZXJhY3RpdmUtdGltZS1zZXJpZXMtY2hhcnQuanMJKHJldmlzaW9u
IDIxMjc5MCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50
cy9pbnRlcmFjdGl2ZS10aW1lLXNlcmllcy1jaGFydC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjMs
NiArMjMsNyBAQCBjbGFzcyBJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFydCBleHRlbmRzCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKIAogICAgICAgICBpZiAoIXRoaXMuX3NhbXBsZWRUaW1lU2Vy
aWVzRGF0YSkgeworICAgICAgICAgICAgLy8gRklYTUU6IFdoeSBhcmUgd2Ugbm90IHVzaW5nIGRp
ZmYgaW4gdGhpcyBjb2RlIHBhdGg/CiAgICAgICAgICAgICB0aGlzLl9lbnN1cmVGZXRjaGVkVGlt
ZVNlcmllcygpOwogICAgICAgICAgICAgZm9yICh2YXIgc2VyaWVzIG9mIHRoaXMuX2ZldGNoZWRU
aW1lU2VyaWVzKSB7CiAgICAgICAgICAgICAgICAgdmFyIHBvaW50ID0gc2VyaWVzLmZpbmRCeUlk
KGlkKTsKQEAgLTMyLDE1ICszMywxNSBAQCBjbGFzcyBJbnRlcmFjdGl2ZVRpbWVTZXJpZXNDaGFy
dCBleHRlbmRzCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgfQogCi0gICAgICAg
IGZvciAodmFyIGRhdGEgb2YgdGhpcy5fc2FtcGxlZFRpbWVTZXJpZXNEYXRhKSB7Ci0gICAgICAg
ICAgICBpZiAoIWRhdGEpCisgICAgICAgIGZvciAodmFyIHZpZXcgb2YgdGhpcy5fc2FtcGxlZFRp
bWVTZXJpZXNEYXRhKSB7CisgICAgICAgICAgICBpZiAoIXZpZXcpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICB2YXIgaW5kZXggPSBkYXRhLmZpbmRJbmRleChmdW5jdGlv
biAocG9pbnQpIHsgcmV0dXJuIHBvaW50LmlkID09IGlkOyB9KTsKLSAgICAgICAgICAgIGlmIChp
bmRleCA8IDApCisgICAgICAgICAgICBsZXQgcG9pbnQgPSB2aWV3LmZpbmRCeUlkKGlkKTsKKyAg
ICAgICAgICAgIGlmICghcG9pbnQpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICBpZiAoZGlmZikKLSAgICAgICAgICAgICAgICBpbmRleCArPSBkaWZmOwotICAgICAgICAg
ICAgcmV0dXJuIGRhdGFbTWF0aC5taW4oTWF0aC5tYXgoMCwgaW5kZXgpLCBkYXRhLmxlbmd0aCld
OworICAgICAgICAgICAgaWYgKCFkaWZmKQorICAgICAgICAgICAgICAgIHJldHVybiBwb2ludDsK
KyAgICAgICAgICAgIHJldHVybiAocG9pbnQgJiYgZGlmZiA+IDAgPyB2aWV3Lm5leHRQb2ludChw
b2ludCkgOiB2aWV3LnByZXZpb3VzUG9pbnQocG9pbnQpKSB8fCBwb2ludDsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbnVsbDsKICAgICB9CkBAIC00OSwxNCArNTAsMTYgQEAgY2xhc3MgSW50
ZXJhY3RpdmVUaW1lU2VyaWVzQ2hhcnQgZXh0ZW5kcwogCiAgICAgc2VsZWN0ZWRQb2ludHModHlw
ZSkKICAgICB7Ci0gICAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLl9zZWxlY3Rpb25UaW1lUmFu
Z2U7Ci0gICAgICAgIHJldHVybiBzZWxlY3Rpb24gPyB0aGlzLnNhbXBsZWREYXRhQmV0d2Vlbih0
eXBlLCBzZWxlY3Rpb25bMF0sIHNlbGVjdGlvblsxXSkgOiBudWxsOworICAgICAgICBjb25zdCBz
ZWxlY3Rpb24gPSB0aGlzLl9zZWxlY3Rpb25UaW1lUmFuZ2U7CisgICAgICAgIGNvbnN0IGRhdGEg
PSB0aGlzLnNhbXBsZWRUaW1lU2VyaWVzRGF0YSh0eXBlKTsKKyAgICAgICAgcmV0dXJuIHNlbGVj
dGlvbiAmJiBkYXRhID8gZGF0YS52aWV3VGltZVJhbmdlKHNlbGVjdGlvblswXSwgc2VsZWN0aW9u
WzFdKSA6IG51bGw7CiAgICAgfQogCiAgICAgZmlyc3RTZWxlY3RlZFBvaW50KHR5cGUpCiAgICAg
ewotICAgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5fc2VsZWN0aW9uVGltZVJhbmdlOwotICAg
ICAgICByZXR1cm4gc2VsZWN0aW9uID8gdGhpcy5maXJzdFNhbXBsZWRQb2ludEJldHdlZW5UaW1l
KHR5cGUsIHNlbGVjdGlvblswXSwgc2VsZWN0aW9uWzFdKSA6IG51bGw7CisgICAgICAgIGNvbnN0
IHNlbGVjdGlvbiA9IHRoaXMuX3NlbGVjdGlvblRpbWVSYW5nZTsKKyAgICAgICAgY29uc3QgZGF0
YSA9IHRoaXMuc2FtcGxlZFRpbWVTZXJpZXNEYXRhKHR5cGUpOworICAgICAgICByZXR1cm4gc2Vs
ZWN0aW9uICYmIGRhdGEgPyBkYXRhLmZpcnN0UG9pbnRJblRpbWVSYW5nZShzZWxlY3Rpb25bMF0s
IHNlbGVjdGlvblsxXSkgOiBudWxsOwogICAgIH0KIAogICAgIGxvY2tlZEluZGljYXRvcigpIHsg
cmV0dXJuIHRoaXMuX2luZGljYXRvcklzTG9ja2VkID8gdGhpcy5jdXJyZW50UG9pbnQoKSA6IG51
bGw7IH0KQEAgLTM4MywxMCArMzg2LDEwIEBAIGNsYXNzIEludGVyYWN0aXZlVGltZVNlcmllc0No
YXJ0IGV4dGVuZHMKICAgICAgICAgcmV0dXJuIG1ldHJpY3M7CiAgICAgfQogCi0gICAgX3NhbXBs
ZVRpbWVTZXJpZXMoZGF0YSwgbWF4aW11bU51bWJlck9mUG9pbnRzLCBleGNsdWRlZFBvaW50cykK
KyAgICBfc2FtcGxlVGltZVNlcmllcyhkYXRhLCBtaW5pbXVtVGltZURpZmYsIGV4Y2x1ZGVkUG9p
bnRzKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2luZGljYXRvcklEKQotICAgICAgICAgICAg
ZXhjbHVkZWRQb2ludHMucHVzaCh0aGlzLl9pbmRpY2F0b3JJRCk7CisgICAgICAgICAgICBleGNs
dWRlZFBvaW50cy5hZGQodGhpcy5faW5kaWNhdG9ySUQpOwogICAgICAgICByZXR1cm4gc3VwZXIu
X3NhbXBsZVRpbWVTZXJpZXMoZGF0YSwgbWF4aW11bU51bWJlck9mUG9pbnRzLCBleGNsdWRlZFBv
aW50cyk7CiAgICAgfQogCkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2NvbXBvbmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL3RpbWUtc2VyaWVzLWNoYXJ0Lmpz
CShyZXZpc2lvbiAyMTI3OTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3Yz
L2NvbXBvbmVudHMvdGltZS1zZXJpZXMtY2hhcnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEzMSwy
MiArMTMxLDYgQEAgY2xhc3MgVGltZVNlcmllc0NoYXJ0IGV4dGVuZHMgQ29tcG9uZW50QgogICAg
ICAgICByZXR1cm4gbnVsbDsKICAgICB9CiAKLSAgICBzYW1wbGVkRGF0YUJldHdlZW4odHlwZSwg
c3RhcnRUaW1lLCBlbmRUaW1lKQotICAgIHsKLSAgICAgICAgdmFyIGRhdGEgPSB0aGlzLnNhbXBs
ZWRUaW1lU2VyaWVzRGF0YSh0eXBlKTsKLSAgICAgICAgaWYgKCFkYXRhKQotICAgICAgICAgICAg
cmV0dXJuIG51bGw7Ci0gICAgICAgIHJldHVybiBkYXRhLmZpbHRlcihmdW5jdGlvbiAocG9pbnQp
IHsgcmV0dXJuIHN0YXJ0VGltZSA8PSBwb2ludC50aW1lICYmIHBvaW50LnRpbWUgPD0gZW5kVGlt
ZTsgfSk7Ci0gICAgfQotCi0gICAgZmlyc3RTYW1wbGVkUG9pbnRCZXR3ZWVuVGltZSh0eXBlLCBz
dGFydFRpbWUsIGVuZFRpbWUpCi0gICAgewotICAgICAgICB2YXIgZGF0YSA9IHRoaXMuc2FtcGxl
ZFRpbWVTZXJpZXNEYXRhKHR5cGUpOwotICAgICAgICBpZiAoIWRhdGEpCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0dXJuIGRhdGEuZmluZChmdW5jdGlvbiAocG9pbnQpIHsg
cmV0dXJuIHN0YXJ0VGltZSA8PSBwb2ludC50aW1lICYmIHBvaW50LnRpbWUgPD0gZW5kVGltZTsg
fSk7Ci0gICAgfQotCiAgICAgc2V0QW5ub3RhdGlvbnMoYW5ub3RhdGlvbnMpCiAgICAgewogICAg
ICAgICB0aGlzLl9hbm5vdGF0aW9ucyA9IGFubm90YXRpb25zOwpAQCAtNDk3LDI5ICs0ODEsMjgg
QEAgY2xhc3MgVGltZVNlcmllc0NoYXJ0IGV4dGVuZHMgQ29tcG9uZW50QgogCiAgICAgICAgIElu
c3RydW1lbnRhdGlvbi5zdGFydE1lYXN1cmluZ1RpbWUoJ1RpbWVTZXJpZXNDaGFydCcsICdlbnN1
cmVTYW1wbGVkVGltZVNlcmllcycpOwogCi0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAg
ICAgdmFyIHN0YXJ0VGltZSA9IHRoaXMuX3N0YXJ0VGltZTsKLSAgICAgICAgdmFyIGVuZFRpbWUg
PSB0aGlzLl9lbmRUaW1lOwotICAgICAgICB0aGlzLl9zYW1wbGVkVGltZVNlcmllc0RhdGEgPSB0
aGlzLl9zb3VyY2VMaXN0Lm1hcChmdW5jdGlvbiAoc291cmNlLCBzb3VyY2VJbmRleCkgewotICAg
ICAgICAgICAgdmFyIHRpbWVTZXJpZXMgPSBzZWxmLl9mZXRjaGVkVGltZVNlcmllc1tzb3VyY2VJ
bmRleF07CisgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHRoaXMuX3N0YXJ0VGltZTsKKyAgICAg
ICAgY29uc3QgZW5kVGltZSA9IHRoaXMuX2VuZFRpbWU7CisgICAgICAgIHRoaXMuX3NhbXBsZWRU
aW1lU2VyaWVzRGF0YSA9IHRoaXMuX3NvdXJjZUxpc3QubWFwKChzb3VyY2UsIHNvdXJjZUluZGV4
KSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gdGhpcy5fZmV0Y2hlZFRpbWVT
ZXJpZXNbc291cmNlSW5kZXhdOwogICAgICAgICAgICAgaWYgKCF0aW1lU2VyaWVzKQogICAgICAg
ICAgICAgICAgIHJldHVybiBudWxsOwogCiAgICAgICAgICAgICAvLyBBIGNoYXJ0IHdpdGggWCBw
eCB3aWR0aCBzaG91bGRuJ3QgaGF2ZSBtb3JlIHRoYW4gMlggLyA8cmFkaXVzLW9mLXBvaW50cz4g
ZGF0YSBwb2ludHMuCi0gICAgICAgICAgICB2YXIgbWF4aW11bU51bWJlck9mUG9pbnRzID0gMiAq
IG1ldHJpY3MuY2hhcnRXaWR0aCAvIChzb3VyY2UucG9pbnRSYWRpdXMgfHwgMik7CisgICAgICAg
ICAgICBjb25zdCBtYXhpbXVtTnVtYmVyT2ZQb2ludHMgPSAyICogbWV0cmljcy5jaGFydFdpZHRo
IC8gKHNvdXJjZS5wb2ludFJhZGl1cyB8fCAyKTsKIAotICAgICAgICAgICAgdmFyIHBvaW50QWZ0
ZXJTdGFydCA9IHRpbWVTZXJpZXMuZmluZFBvaW50QWZ0ZXJUaW1lKHN0YXJ0VGltZSk7Ci0gICAg
ICAgICAgICB2YXIgcG9pbnRCZWZvcmVTdGFydCA9IChwb2ludEFmdGVyU3RhcnQgPyB0aW1lU2Vy
aWVzLnByZXZpb3VzUG9pbnQocG9pbnRBZnRlclN0YXJ0KSA6IG51bGwpIHx8IHRpbWVTZXJpZXMu
Zmlyc3RQb2ludCgpOwotICAgICAgICAgICAgdmFyIHBvaW50QWZ0ZXJFbmQgPSB0aW1lU2VyaWVz
LmZpbmRQb2ludEFmdGVyVGltZShlbmRUaW1lKSB8fCB0aW1lU2VyaWVzLmxhc3RQb2ludCgpOwor
ICAgICAgICAgICAgY29uc3QgcG9pbnRBZnRlclN0YXJ0ID0gdGltZVNlcmllcy5maW5kUG9pbnRB
ZnRlclRpbWUoc3RhcnRUaW1lKTsKKyAgICAgICAgICAgIGNvbnN0IHBvaW50QmVmb3JlU3RhcnQg
PSAocG9pbnRBZnRlclN0YXJ0ID8gdGltZVNlcmllcy5wcmV2aW91c1BvaW50KHBvaW50QWZ0ZXJT
dGFydCkgOiBudWxsKSB8fCB0aW1lU2VyaWVzLmZpcnN0UG9pbnQoKTsKKyAgICAgICAgICAgIGNv
bnN0IHBvaW50QWZ0ZXJFbmQgPSB0aW1lU2VyaWVzLmZpbmRQb2ludEFmdGVyVGltZShlbmRUaW1l
KSB8fCB0aW1lU2VyaWVzLmxhc3RQb2ludCgpOwogICAgICAgICAgICAgaWYgKCFwb2ludEJlZm9y
ZVN0YXJ0IHx8ICFwb2ludEFmdGVyRW5kKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwog
CiAgICAgICAgICAgICAvLyBGSVhNRTogTW92ZSB0aGlzIHRvIFRpbWVTZXJpZXMucHJvdG90eXBl
LgotICAgICAgICAgICAgdmFyIGZpbHRlcmVkRGF0YSA9IHRpbWVTZXJpZXMuZGF0YUJldHdlZW5Q
b2ludHMocG9pbnRCZWZvcmVTdGFydCwgcG9pbnRBZnRlckVuZCk7CisgICAgICAgICAgICBjb25z
dCB2aWV3ID0gdGltZVNlcmllcy52aWV3QmV0d2VlblBvaW50cyhwb2ludEJlZm9yZVN0YXJ0LCBw
b2ludEFmdGVyRW5kKTsKICAgICAgICAgICAgIGlmICghc291cmNlLnNhbXBsZURhdGEpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkRGF0YTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
dmlldzsKIAotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3NhbXBsZVRpbWVTZXJpZXMoZmlsdGVy
ZWREYXRhLCBtYXhpbXVtTnVtYmVyT2ZQb2ludHMsIGZpbHRlcmVkRGF0YS5zbGljZSgtMSkubWFw
KGZ1bmN0aW9uIChwb2ludCkgeyByZXR1cm4gcG9pbnQuaWQ7IH0pKTsKKyAgICAgICAgICAgIHJl
dHVybiB0aGlzLl9zYW1wbGVUaW1lU2VyaWVzKHZpZXcsIChlbmRUaW1lIC0gc3RhcnRUaW1lKSAv
IG1heGltdW1OdW1iZXJPZlBvaW50cywgbmV3IFNldCk7CiAgICAgICAgIH0pOwogCiAgICAgICAg
IEluc3RydW1lbnRhdGlvbi5lbmRNZWFzdXJpbmdUaW1lKCdUaW1lU2VyaWVzQ2hhcnQnLCAnZW5z
dXJlU2FtcGxlZFRpbWVTZXJpZXMnKTsKQEAgLTUyOSw0OSArNTEyLDI0IEBAIGNsYXNzIFRpbWVT
ZXJpZXNDaGFydCBleHRlbmRzIENvbXBvbmVudEIKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgX3NhbXBsZVRpbWVTZXJpZXMoZGF0YSwgbWF4aW11bU51bWJlck9mUG9pbnRzLCBl
eGNsdWRlZFBvaW50cykKKyAgICBfc2FtcGxlVGltZVNlcmllcyh2aWV3LCBtaW5pbXVtVGltZURp
ZmYsIGV4Y2x1ZGVkUG9pbnRzKQogICAgIHsKKyAgICAgICAgaWYgKHZpZXcubGVuZ3RoKCkgPCAy
KQorICAgICAgICAgICAgcmV0dXJuIHZpZXc7CisKICAgICAgICAgSW5zdHJ1bWVudGF0aW9uLnN0
YXJ0TWVhc3VyaW5nVGltZSgnVGltZVNlcmllc0NoYXJ0JywgJ3NhbXBsZVRpbWVTZXJpZXMnKTsK
IAotICAgICAgICAvLyBGSVhNRTogRG8gdGhpcyBpbiBPKG4pIHVzaW5nIHF1aWNrc2VsZWN0OiBo
dHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9RdWlja3NlbGVjdAotICAgICAgICBmdW5jdGlv
biBmaW5kTWVkaWFuKGxpc3QsIHN0YXJ0SW5kZXgsIGluZGV4QWZ0ZXJFbmQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhciBzb3J0ZWRMaXN0ID0gbGlzdC5zbGljZShzdGFydEluZGV4LCBpbmRl
eEFmdGVyRW5kKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLnZhbHVlIC0gYi52YWx1
ZTsgfSk7Ci0gICAgICAgICAgICByZXR1cm4gc29ydGVkTGlzdFtNYXRoLmZsb29yKHNvcnRlZExp
c3QubGVuZ3RoIC8gMildOwotICAgICAgICB9Ci0KLSAgICAgICAgdmFyIHNhbXBsaW5nU2l6ZSA9
IE1hdGguY2VpbChkYXRhLmxlbmd0aCAvIG1heGltdW1OdW1iZXJPZlBvaW50cyk7Ci0KLSAgICAg
ICAgdmFyIHRvdGFsVGltZURpZmYgPSBkYXRhW2RhdGEubGVuZ3RoIC0gMV0udGltZSAtIGRhdGFb
MF0udGltZTsKLSAgICAgICAgdmFyIHRpbWVQZXJTYW1wbGUgPSB0b3RhbFRpbWVEaWZmIC8gbWF4
aW11bU51bWJlck9mUG9pbnRzOwotCi0gICAgICAgIHZhciBzYW1wbGVkRGF0YSA9IFtdOwotICAg
ICAgICB2YXIgbGFzdEluZGV4ID0gZGF0YS5sZW5ndGggLSAxOwotICAgICAgICB2YXIgaSA9IDA7
Ci0gICAgICAgIHdoaWxlIChpIDw9IGxhc3RJbmRleCkgewotICAgICAgICAgICAgdmFyIHN0YXJ0
UG9pbnQgPSBkYXRhW2ldOwotICAgICAgICAgICAgdmFyIGo7Ci0gICAgICAgICAgICBmb3IgKGog
PSBpOyBqIDw9IGxhc3RJbmRleDsgaisrKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGVuZFBvaW50
ID0gZGF0YVtqXTsKLSAgICAgICAgICAgICAgICBpZiAoZXhjbHVkZWRQb2ludHMuaW5jbHVkZXMo
ZW5kUG9pbnQuaWQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGotLTsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChlbmRQ
b2ludC50aW1lIC0gc3RhcnRQb2ludC50aW1lID49IHRpbWVQZXJTYW1wbGUpCi0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGkgPCBqIC0g
MSkgewotICAgICAgICAgICAgICAgIHNhbXBsZWREYXRhLnB1c2goZmluZE1lZGlhbihkYXRhLCBp
LCBqKSk7Ci0gICAgICAgICAgICAgICAgaSA9IGo7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHNhbXBsZWREYXRhLnB1c2goc3RhcnRQb2ludCk7Ci0gICAgICAgICAgICAg
ICAgaSsrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGNvbnN0IHNhbXBsZWRE
YXRhID0gdmlldy5maWx0ZXIoKHBvaW50LCBpKSA9PiB7CisgICAgICAgICAgICBpZiAoZXhjbHVk
ZWRQb2ludHMuaGFzKHBvaW50LmlkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgICAgIGxldCBwcmV2aW91c1BvaW50ID0gdmlldy5wcmV2aW91c1BvaW50KHBvaW50KSB8
fCBwb2ludDsKKyAgICAgICAgICAgIGxldCBuZXh0UG9pbnQgPSB2aWV3Lm5leHRQb2ludChwb2lu
dCkgfHwgcG9pbnQ7CisgICAgICAgICAgICByZXR1cm4gbmV4dFBvaW50LnRpbWUgLSBwcmV2aW91
c1BvaW50LnRpbWUgPj0gbWluaW11bVRpbWVEaWZmOworICAgICAgICB9KTsKIAogICAgICAgICBJ
bnN0cnVtZW50YXRpb24uZW5kTWVhc3VyaW5nVGltZSgnVGltZVNlcmllc0NoYXJ0JywgJ3NhbXBs
ZVRpbWVTZXJpZXMnKTsKIAotICAgICAgICBJbnN0cnVtZW50YXRpb24ucmVwb3J0TWVhc3VyZW1l
bnQoJ1RpbWVTZXJpZXNDaGFydCcsICdzYW1wbGluZ1JhdGlvJywgJyUnLCBzYW1wbGVkRGF0YS5s
ZW5ndGggLyBkYXRhLmxlbmd0aCAqIDEwMCk7CisgICAgICAgIEluc3RydW1lbnRhdGlvbi5yZXBv
cnRNZWFzdXJlbWVudCgnVGltZVNlcmllc0NoYXJ0JywgJ3NhbXBsaW5nUmF0aW8nLCAnJScsIHNh
bXBsZWREYXRhLmxlbmd0aCgpIC8gdmlldy5sZW5ndGgoKSAqIDEwMCk7CiAKICAgICAgICAgcmV0
dXJuIHNhbXBsZWREYXRhOwogICAgIH0KQEAgLTYyNCw2ICs1ODIsOCBAQCBjbGFzcyBUaW1lU2Vy
aWVzQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRCCiAgICAgICAgIHZhciBzY2FsZSA9IHdpbmRvdy5k
ZXZpY2VQaXhlbFJhdGlvOwogICAgICAgICBjYW52YXMud2lkdGggPSBuZXdXaWR0aCAqIHNjYWxl
OwogICAgICAgICBjYW52YXMuaGVpZ2h0ID0gbmV3SGVpZ2h0ICogc2NhbGU7CisgICAgICAgIGNh
bnZhcy5zdHlsZS53aWR0aCA9IG5ld1dpZHRoICsgJ3B4JzsKKyAgICAgICAgY2FudmFzLnN0eWxl
LmhlaWdodCA9IG5ld0hlaWdodCArICdweCc7CiAgICAgICAgIHRoaXMuX2NvbnRleHRTY2FsZVgg
PSBzY2FsZTsKICAgICAgICAgdGhpcy5fY29udGV4dFNjYWxlWSA9IHNjYWxlOwogICAgICAgICB0
aGlzLl93aWR0aCA9IG5ld1dpZHRoOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1
YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL3B1YmxpYy92My9tb2RlbHMvdGltZS1zZXJpZXMuanMJKHJldmlzaW9uIDIx
Mjc5MCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvbW9kZWxzL3RpbWUt
c2VyaWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxNCArNzQsMTQ4IEBAIHZhciBUaW1lU2Vy
aWVzID0gY2xhc3MgewogCiAgICAgZmluZFBvaW50QWZ0ZXJUaW1lKHRpbWUpIHsgcmV0dXJuIHRo
aXMuX2RhdGEuZmluZChmdW5jdGlvbiAocG9pbnQpIHsgcmV0dXJuIHBvaW50LnRpbWUgPj0gdGlt
ZTsgfSk7IH0KIAotICAgIGRhdGFCZXR3ZWVuUG9pbnRzKGZpcnN0UG9pbnQsIGxhc3RQb2ludCkK
KyAgICB2aWV3QmV0d2VlblBvaW50cyhmaXJzdFBvaW50LCBsYXN0UG9pbnQpCiAgICAgewogICAg
ICAgICBjb25zb2xlLmFzc2VydChmaXJzdFBvaW50LnNlcmllcyA9PSB0aGlzKTsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQobGFzdFBvaW50LnNlcmllcyA9PSB0aGlzKTsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX2RhdGEuc2xpY2UoZmlyc3RQb2ludC5zZXJpZXNJbmRleCwgbGFzdFBvaW50LnNlcmll
c0luZGV4ICsgMSk7CisgICAgICAgIHJldHVybiBuZXcgVGltZVNlcmllc1ZpZXcodGhpcywgZmly
c3RQb2ludC5zZXJpZXNJbmRleCwgbGFzdFBvaW50LnNlcmllc0luZGV4ICsgMSk7CiAgICAgfQot
CiB9OwogCitjbGFzcyBUaW1lU2VyaWVzVmlldyB7CisgICAgY29uc3RydWN0b3IodGltZVNlcmll
cywgc3RhcnRpbmdJbmRleCwgYWZ0ZXJFbmRpbmdJbmRleCwgZmlsdGVyZWREYXRhID0gbnVsbCkK
KyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRpbWVTZXJpZXMgaW5zdGFuY2VvZiBUaW1l
U2VyaWVzKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoc3RhcnRpbmdJbmRleCA8PSBhZnRlckVu
ZGluZ0luZGV4KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYWZ0ZXJFbmRpbmdJbmRleCA8PSB0
aW1lU2VyaWVzLl9kYXRhLmxlbmd0aCk7CisgICAgICAgIHRoaXMuX3RpbWVTZXJpZXMgPSB0aW1l
U2VyaWVzOworICAgICAgICB0aGlzLl9kYXRhID0gZmlsdGVyZWREYXRhIHx8IHRpbWVTZXJpZXMu
X2RhdGE7CisgICAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7CisgICAgICAgIHRoaXMuX2xlbmd0
aCA9IGFmdGVyRW5kaW5nSW5kZXggLSBzdGFydGluZ0luZGV4OworICAgICAgICB0aGlzLl9zdGFy
dGluZ0luZGV4ID0gc3RhcnRpbmdJbmRleDsKKyAgICAgICAgdGhpcy5fYWZ0ZXJFbmRpbmdJbmRl
eCA9IGFmdGVyRW5kaW5nSW5kZXg7CisgICAgICAgIHRoaXMuX3BvaW50SW5kZXhNYXAgPSBudWxs
OworCisgICAgICAgIGlmICh0aGlzLl9kYXRhICE9IHRpbWVTZXJpZXMuX2RhdGEpIHsKKyAgICAg
ICAgICAgIHRoaXMuX2ZpbmRJbmRleEZvclBvaW50ID0gKHBvaW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgaWYgKHRoaXMuX3BvaW50SW5kZXhNYXAgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fYnVpbGRQb2ludEluZGV4TWFwKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX3BvaW50SW5kZXhNYXAuZ2V0KHBvaW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICB0aGlzLl9maW5kSW5kZXhGb3JQb2ludCA9IChwb2ludCkgPT4geyBy
ZXR1cm4gcG9pbnQuc2VyaWVzSW5kZXg7IH0KKyAgICB9CisKKyAgICBfYnVpbGRQb2ludEluZGV4
TWFwKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3BvaW50SW5kZXhNYXAgPSBuZXcgTWFwOworICAg
ICAgICBjb25zdCBkYXRhID0gdGhpcy5fZGF0YTsKKyAgICAgICAgY29uc3QgbGVuZ3RoID0gZGF0
YS5sZW5ndGg7CisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspCisgICAg
ICAgICAgICB0aGlzLl9wb2ludEluZGV4TWFwLnNldChkYXRhW2ldLCBpKTsKKyAgICB9CisKKyAg
ICBsZW5ndGgoKSB7IHJldHVybiB0aGlzLl9sZW5ndGg7IH0KKworICAgIGZpcnN0UG9pbnQoKSB7
IHJldHVybiB0aGlzLl9sZW5ndGggPyB0aGlzLl9kYXRhW3RoaXMuX3N0YXJ0aW5nSW5kZXhdIDog
bnVsbDsgfQorICAgIGxhc3RQb2ludCgpIHsgcmV0dXJuIHRoaXMuX2xlbmd0aCA/IHRoaXMuX2Rh
dGFbdGhpcy5fYWZ0ZXJFbmRpbmdJbmRleCAtIDFdIDogbnVsbDsgfQorCisgICAgbmV4dFBvaW50
KHBvaW50KQorICAgIHsKKyAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5fZmluZEluZGV4Rm9yUG9p
bnQocG9pbnQpOworICAgICAgICBpbmRleCsrOworICAgICAgICBpZiAoaW5kZXggPT0gdGhpcy5f
YWZ0ZXJFbmRpbmdJbmRleCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICByZXR1
cm4gdGhpcy5fZGF0YVtpbmRleF07CisgICAgfQorCisgICAgcHJldmlvdXNQb2ludChwb2ludCkK
KyAgICB7CisgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fZmluZEluZGV4Rm9yUG9pbnQocG9p
bnQpOworICAgICAgICBpZiAoaW5kZXggPT0gdGhpcy5fc3RhcnRpbmdJbmRleCkKKyAgICAgICAg
ICAgIHJldHVybiBudWxsOworICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVtpbmRleCAtIDFdOwor
ICAgIH0KKworICAgIGZpbmRQb2ludEJ5SW5kZXgoaW5kZXgpCisgICAgeworICAgICAgICBpbmRl
eCArPSB0aGlzLl9zdGFydGluZ0luZGV4OworICAgICAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4
ID49IHRoaXMuX2FmdGVyRW5kaW5nSW5kZXgpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2RhdGFbaW5kZXhdOworICAgIH0KKworICAgIGZpbmRCeUlkKGlk
KQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgcG9pbnQgb2YgdGhpcykgeworICAgICAgICAgICAg
aWYgKHBvaW50LmlkID09IGlkKQorICAgICAgICAgICAgICAgIHJldHVybiBwb2ludDsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICB2YWx1ZXMoKQorICAgIHsK
KyAgICAgICAgaWYgKHRoaXMuX3ZhbHVlcyA9PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLl92
YWx1ZXMgPSBuZXcgQXJyYXkodGhpcy5fbGVuZ3RoKTsKKyAgICAgICAgICAgIGxldCBpID0gMDsK
KyAgICAgICAgICAgIGZvciAobGV0IHBvaW50IG9mIHRoaXMpCisgICAgICAgICAgICAgICAgdGhp
cy5fdmFsdWVzW2krK10gPSBwb2ludC52YWx1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
dGhpcy5fdmFsdWVzOworICAgIH0KKworICAgIGZpbHRlcihjYWxsYmFjaykKKyAgICB7CisgICAg
ICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9kYXRhOworICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGEg
PSBbXTsKKyAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuX3N0YXJ0aW5nSW5kZXg7IGkgPCB0aGlz
Ll9hZnRlckVuZGluZ0luZGV4OyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjYWxsYmFjayhkYXRh
W2ldLCBpKSkKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZERhdGEucHVzaChkYXRhW2ldKTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gbmV3IFRpbWVTZXJpZXNWaWV3KHRoaXMuX3RpbWVTZXJp
ZXMsIDAsIGZpbHRlcmVkRGF0YS5sZW5ndGgsIGZpbHRlcmVkRGF0YSk7CisgICAgfQorCisgICAg
dmlld1RpbWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpCisgICAgeworICAgICAgICBjb25zdCBk
YXRhID0gdGhpcy5fZGF0YTsKKyAgICAgICAgbGV0IHN0YXJ0aW5nSW5kZXggPSBudWxsOworICAg
ICAgICBsZXQgZW5kaW5nSW5kZXggPSBudWxsOworICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5f
c3RhcnRpbmdJbmRleDsgaSA8IHRoaXMuX2FmdGVyRW5kaW5nSW5kZXg7IGkrKykgeworICAgICAg
ICAgICAgaWYgKHN0YXJ0aW5nSW5kZXggPT0gbnVsbCAmJiBkYXRhW2ldLnRpbWUgPj0gc3RhcnRU
aW1lKQorICAgICAgICAgICAgICAgIHN0YXJ0aW5nSW5kZXggPSBpOworICAgICAgICAgICAgaWYg
KGRhdGFbaV0udGltZSA8PSBlbmRUaW1lKQorICAgICAgICAgICAgICAgIGVuZGluZ0luZGV4ID0g
aTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RhcnRpbmdJbmRleCA9PSBudWxsIHx8IGVuZGlu
Z0luZGV4ID09IG51bGwpCisgICAgICAgICAgICByZXR1cm4gbmV3IFRpbWVTZXJpZXNWaWV3KHRo
aXMuX3RpbWVTZXJpZXMsIDAsIDAsIGRhdGEpOworICAgICAgICByZXR1cm4gbmV3IFRpbWVTZXJp
ZXNWaWV3KHRoaXMuX3RpbWVTZXJpZXMsIHN0YXJ0aW5nSW5kZXgsIGVuZGluZ0luZGV4ICsgMSwg
ZGF0YSk7CisgICAgfQorCisgICAgZmlyc3RQb2ludEluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5k
VGltZSkKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHN0YXJ0VGltZSA8PSBlbmRUaW1l
KTsKKyAgICAgICAgZm9yIChsZXQgcG9pbnQgb2YgdGhpcykgeworICAgICAgICAgICAgaWYgKHBv
aW50LnRpbWUgPiBlbmRUaW1lKQorICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAg
ICAgICAgaWYgKHBvaW50LnRpbWUgPj0gc3RhcnRUaW1lKQorICAgICAgICAgICAgICAgIHJldHVy
biBwb2ludDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICBb
U3ltYm9sLml0ZXJhdG9yXSgpCisgICAgeworICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fZGF0
YTsKKyAgICAgICAgY29uc3QgZW5kID0gdGhpcy5fYWZ0ZXJFbmRpbmdJbmRleDsKKyAgICAgICAg
bGV0IGkgPSB0aGlzLl9zdGFydGluZ0luZGV4OworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgbmV4dCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiBkYXRhW2ldLCBkb25l
OiBpKysgPT0gZW5kfTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9Cit9CisKIGlm
ICh0eXBlb2YgbW9kdWxlICE9ICd1bmRlZmluZWQnKQogICAgIG1vZHVsZS5leHBvcnRzLlRpbWVT
ZXJpZXMgPSBUaW1lU2VyaWVzOwpJbmRleDogV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1Ymxp
Yy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9wYWdlcy9hbmFseXNpcy10YXNrLXBhZ2UuanMJKHJl
dmlzaW9uIDIxMjc5MCkKKysrIFdlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFn
ZXMvYW5hbHlzaXMtdGFzay1wYWdlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNCwxMSArMjQsNyBA
QCBjbGFzcyBBbmFseXNpc1Rhc2tDaGFydFBhbmUgZXh0ZW5kcyBDaGFyCiAKICAgICBzZWxlY3Rl
ZFBvaW50cygpCiAgICAgewotICAgICAgICB2YXIgc2VsZWN0aW9uID0gdGhpcy5fbWFpbkNoYXJ0
ID8gdGhpcy5fbWFpbkNoYXJ0LmN1cnJlbnRTZWxlY3Rpb24oKSA6IG51bGw7Ci0gICAgICAgIGlm
ICghc2VsZWN0aW9uKQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0KLSAgICAgICAgcmV0dXJu
IHRoaXMuX21haW5DaGFydC5zYW1wbGVkRGF0YUJldHdlZW4oJ2N1cnJlbnQnLCBzZWxlY3Rpb25b
MF0sIHNlbGVjdGlvblsxXSk7CisgICAgICAgIHJldHVybiB0aGlzLl9tYWluQ2hhcnQuc2VsZWN0
ZWRQb2ludHMoJ2N1cnJlbnQnKTsKICAgICB9CiB9CiAKSW5kZXg6IFdlYnNpdGVzL3BlcmYud2Vi
a2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvc3VtbWFyeS1wYWdlLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvcGFnZXMvc3VtbWFyeS1wYWdlLmpzCShy
ZXZpc2lvbiAyMTI3OTApCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvcHVibGljL3YzL3Bh
Z2VzL3N1bW1hcnktcGFnZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMzY0LDEzICszNjQsMTIgQEAg
Y2xhc3MgU3VtbWFyeVBhZ2VDb25maWd1cmF0aW9uR3JvdXAgewogICAgICAgICBpZiAoIXRpbWVT
ZXJpZXMuZmlyc3RQb2ludCgpKQogICAgICAgICAgICAgcmV0dXJuIE5hTjsKIAotICAgICAgICB2
YXIgc3RhcnRQb2ludCA9IHRpbWVTZXJpZXMuZmluZFBvaW50QWZ0ZXJUaW1lKHRpbWVSYW5nZVsw
XSkgfHwgdGltZVNlcmllcy5sYXN0UG9pbnQoKTsKLSAgICAgICAgdmFyIGFmdGVyRW5kUG9pbnQg
PSB0aW1lU2VyaWVzLmZpbmRQb2ludEFmdGVyVGltZSh0aW1lUmFuZ2VbMV0pIHx8IHRpbWVTZXJp
ZXMubGFzdFBvaW50KCk7Ci0gICAgICAgIHZhciBlbmRQb2ludCA9IHRpbWVTZXJpZXMucHJldmlv
dXNQb2ludChhZnRlckVuZFBvaW50KTsKKyAgICAgICAgY29uc3Qgc3RhcnRQb2ludCA9IHRpbWVT
ZXJpZXMuZmluZFBvaW50QWZ0ZXJUaW1lKHRpbWVSYW5nZVswXSkgfHwgdGltZVNlcmllcy5sYXN0
UG9pbnQoKTsKKyAgICAgICAgY29uc3QgYWZ0ZXJFbmRQb2ludCA9IHRpbWVTZXJpZXMuZmluZFBv
aW50QWZ0ZXJUaW1lKHRpbWVSYW5nZVsxXSkgfHwgdGltZVNlcmllcy5sYXN0UG9pbnQoKTsKKyAg
ICAgICAgbGV0IGVuZFBvaW50ID0gdGltZVNlcmllcy5wcmV2aW91c1BvaW50KGFmdGVyRW5kUG9p
bnQpOwogICAgICAgICBpZiAoIWVuZFBvaW50IHx8IHN0YXJ0UG9pbnQgPT0gYWZ0ZXJFbmRQb2lu
dCkKICAgICAgICAgICAgIGVuZFBvaW50ID0gYWZ0ZXJFbmRQb2ludDsKIAotICAgICAgICB2YXIg
cG9pbnRzID0gdGltZVNlcmllcy5kYXRhQmV0d2VlblBvaW50cyhzdGFydFBvaW50LCBlbmRQb2lu
dCkubWFwKGZ1bmN0aW9uIChwb2ludCkgeyByZXR1cm4gcG9pbnQudmFsdWU7IH0pOwotICAgICAg
ICByZXR1cm4gU3RhdGlzdGljcy5tZWRpYW4ocG9pbnRzKTsKKyAgICAgICAgcmV0dXJuIFN0YXRp
c3RpY3MubWVkaWFuKHRpbWVTZXJpZXMudmlld0JldHdlZW5Qb2ludHMoc3RhcnRQb2ludCwgZW5k
UG9pbnQpLnZhbHVlcygpKTsKICAgICB9CiB9CkluZGV4OiBXZWJzaXRlcy9wZXJmLndlYmtpdC5v
cmcvdW5pdC10ZXN0cy90aW1lLXNlcmllcy10ZXN0cy5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRl
cy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90aW1lLXNlcmllcy10ZXN0cy5qcwkobm9uZXhp
c3RlbnQpCisrKyBXZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvdW5pdC10ZXN0cy90aW1lLXNlcmll
cy10ZXN0cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQzNSBAQAorJ3VzZSBzdHJpY3Qn
OworCitjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTsKK2lmICghYXNzZXJ0LmFsbW9z
dEVxdWFsKQorICAgIGFzc2VydC5hbG1vc3RFcXVhbCA9IHJlcXVpcmUoJy4vcmVzb3VyY2VzL2Fs
bW9zdC1lcXVhbC5qcycpOworCitjb25zdCBNb2NrUmVtb3RlQVBJID0gcmVxdWlyZSgnLi9yZXNv
dXJjZXMvbW9jay1yZW1vdGUtYXBpLmpzJykuTW9ja1JlbW90ZUFQSTsKK3JlcXVpcmUoJy4uL3Rv
b2xzL2pzL3YzLW1vZGVscy5qcycpOworCitsZXQgdGhyZWVQb2ludHM7CitsZXQgZml2ZVBvaW50
czsKK2JlZm9yZUVhY2goKCkgPT4geworICAgIHRocmVlUG9pbnRzID0gWworICAgICAgICB7aWQ6
IDkxMCwgdGltZTogMTAxLCB2YWx1ZTogMTEwfSwKKyAgICAgICAge2lkOiA5MDIsIHRpbWU6IDIy
MCwgdmFsdWU6IDEwMn0sCisgICAgICAgIHtpZDogOTMwLCB0aW1lOiAzMDMsIHZhbHVlOiAxMzB9
LAorICAgIF07CisgICAgZml2ZVBvaW50cyA9IFsuLi50aHJlZVBvaW50cywKKyAgICAgICAge2lk
OiA5MDQsIHRpbWU6IDQwMCwgdmFsdWU6IDExNH0sCisgICAgICAgIHtpZDogOTUwLCB0aW1lOiA1
MDUsIHZhbHVlOiAxMDV9LAorICAgICAgICB7aWQ6IDk2MCwgdGltZTogNjAwLCB2YWx1ZTogMTE2
fSwKKyAgICBdOworfSk7CisKK2Z1bmN0aW9uIGFkZFBvaW50c1RvU2VyaWVzKHRpbWVTZXJpZXMs
IGxpc3QgPSB0aHJlZVBvaW50cykKK3sKKyAgICBmb3IgKGxldCBwb2ludCBvZiBsaXN0KQorICAg
ICAgICB0aW1lU2VyaWVzLmFwcGVuZChwb2ludCk7Cit9CisKK2Rlc2NyaWJlKCdUaW1lU2VyaWVz
JywgKCkgPT4geworCisgICAgZGVzY3JpYmUoJ2xlbmd0aCcsICgpID0+IHsKKyAgICAgICAgaXQo
J3Nob3VsZCByZXR1cm4gdGhlIGxlbmd0aCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRp
bWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJp
ZXModGltZVNlcmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5sZW5n
dGgoKSwgMyk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIDAgd2hl
biB0aGVyZSBhcmUgbm8gcG9pbnRzJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNl
cmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNl
cmllcy5sZW5ndGgoKSwgMCk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUo
J2ZpcnN0UG9pbnQnLCAoKSA9PiB7CisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBmaXJz
dCBwb2ludCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGlt
ZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcyk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maXJzdFBvaW50KCksIHRocmVlUG9p
bnRzWzBdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3
aGVuIHRoZXJlIGFyZSBubyBwb2ludHMnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1l
U2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1l
U2VyaWVzLmZpcnN0UG9pbnQoKSwgbnVsbCk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAg
ZGVzY3JpYmUoJ2xhc3RQb2ludCcsICgpID0+IHsKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4g
dGhlIGZpcnN0IHBvaW50JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9
IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2Vy
aWVzKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmxhc3RQb2ludCgpLCB0
aHJlZVBvaW50c1syXSk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJu
IG51bGwgd2hlbiB0aGVyZSBhcmUgbm8gcG9pbnRzJywgKCkgPT4geworICAgICAgICAgICAgY29u
c3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1
YWwodGltZVNlcmllcy5sYXN0UG9pbnQoKSwgbnVsbCk7CisgICAgICAgIH0pOworICAgIH0pOwor
CisgICAgZGVzY3JpYmUoJ25leHRQb2ludCcsICgpID0+IHsKKyAgICAgICAgaXQoJ3Nob3VsZCBy
ZXR1cm4gdGhlIG5leHQgcG9pbnQgd2hlbiBjYWxsZWQgb24gdGhlIGZpcnN0IHBvaW50JywgKCkg
PT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7Cisg
ICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0aW1lU2VyaWVzLm5leHRQb2ludCh0aHJlZVBvaW50c1swXSksIHRocmVlUG9p
bnRzWzFdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIG5l
eHQgcG9pbnQgd2hlbiBjYWxsZWQgb24gYSBtaWQtcG9pbnQnLCAoKSA9PiB7CisgICAgICAgICAg
ICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBv
aW50c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVT
ZXJpZXMubmV4dFBvaW50KHRocmVlUG9pbnRzWzFdKSwgdGhyZWVQb2ludHNbMl0pOworICAgICAg
ICB9KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdoZW4gY2FsbGVkIG9uIHRo
ZSBsYXN0IHBvaW50JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5l
dyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVz
KTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLm5leHRQb2ludCh0aHJlZVBv
aW50c1syXSksIG51bGwpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCdw
cmV2aW91c1BvaW50JywgKCkgPT4geworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiBudWxsIHdo
ZW4gY2FsbGVkIG9uIHRoZSBmaXJzdCBwb2ludCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0
IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9T
ZXJpZXModGltZVNlcmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5w
cmV2aW91c1BvaW50KHRocmVlUG9pbnRzWzBdKSwgbnVsbCk7CisgICAgICAgIH0pOworCisgICAg
ICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBwcmV2aW91cyBwb2ludCB3aGVuIGNhbGxlZCBvbiBh
IG1pZC1wb2ludCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcg
VGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcyk7
CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5wcmV2aW91c1BvaW50KHRocmVl
UG9pbnRzWzFdKSwgdGhyZWVQb2ludHNbMF0pOworICAgICAgICB9KTsKKworICAgICAgICBpdCgn
c2hvdWxkIHJldHVybiB0aGUgcHJldmlvdXMgcG9pbnQgd2hlbiBjYWxsZWQgb24gdGhlIGxhc3Qg
cG9pbnQnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVT
ZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMucHJldmlvdXNQb2ludCh0aHJlZVBvaW50
c1syXSksIHRocmVlUG9pbnRzWzFdKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBkZXNj
cmliZSgnZmluZFBvaW50QnlJbmRleCcsICgpID0+IHsKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1
cm4gbnVsbCB0aGUgaW5kZXggaXMgbGVzcyB0aGFuIDAnLCAoKSA9PiB7CisgICAgICAgICAgICBj
b25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50
c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJp
ZXMuZmluZFBvaW50QnlJbmRleCgtMTApLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0aW1lU2VyaWVzLmZpbmRQb2ludEJ5SW5kZXgoLTEpLCBudWxsKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBpbmRleCBpcyBncmVhdGVy
IHRoYW4gb3IgZXF1YWwgdG8gdGhlIGxlbmd0aCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0
IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9T
ZXJpZXModGltZVNlcmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5m
aW5kUG9pbnRCeUluZGV4KDEwKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGlt
ZVNlcmllcy5maW5kUG9pbnRCeUluZGV4KDMpLCBudWxsKTsKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgaXQoJ3Nob3VsZCByZXR1cm4gbnVsbCB3aGVuIHRoZSBpbmRleCBpcyBub3QgYSBudW1iZXIn
LCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMo
KTsKKyAgICAgICAgICAgIGFkZFBvaW50c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMuZmluZFBvaW50QnlJbmRleCh1bmRlZmluZWQpLCBu
dWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEJ5SW5k
ZXgoTmFOKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5k
UG9pbnRCeUluZGV4KCdhJyksIG51bGwpOworICAgICAgICB9KTsKKworICAgICAgICBpdCgnc2hv
dWxkIHJldHVybiB0aGUgcG9pbnQgYXQgdGhlIHNwZWNpZmllZCBpbmRleCB3aGVuIGl0IGlzIGlu
IHRoZSB2YWxpZCByYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMg
PSBuZXcgVGltZVNlcmllcygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNl
cmllcyk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5kUG9pbnRCeUlu
ZGV4KDApLCB0aHJlZVBvaW50c1swXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGltZVNl
cmllcy5maW5kUG9pbnRCeUluZGV4KDEpLCB0aHJlZVBvaW50c1sxXSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5kUG9pbnRCeUluZGV4KDIpLCB0aHJlZVBvaW50c1sy
XSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ2ZpbmRCeUlkJywgKCkg
PT4geworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgcG9pbnQgd2l0aCB0aGUgc3BlY2lm
aWVkIElEJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1l
U2VyaWVzKCk7CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRCeUlkKHRocmVlUG9pbnRzWzBd
LmlkKSwgdGhyZWVQb2ludHNbMF0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJp
ZXMuZmluZEJ5SWQodGhyZWVQb2ludHNbMV0uaWQpLCB0aHJlZVBvaW50c1sxXSk7CisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodGltZVNlcmllcy5maW5kQnlJZCh0aHJlZVBvaW50c1syXS5pZCks
IHRocmVlUG9pbnRzWzJdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1
cm4gbnVsbCBmb3IgYSBub24tZXhpc3RlbnQgSUQnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25z
dCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50c1Rv
U2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMu
ZmluZEJ5SWQobnVsbCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJp
ZXMuZmluZEJ5SWQodW5kZWZpbmVkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGltZVNlcmllcy5maW5kQnlJZChOYU4pLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh0aW1lU2VyaWVzLmZpbmRCeUlkKCdhJyksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHRpbWVTZXJpZXMuZmluZEJ5SWQoNDIzMTU2MzI0NiksIG51bGwpOworICAgICAgICB9KTsK
KyAgICB9KTsKKworICAgIGRlc2NyaWJlKCdmaW5kUG9pbnRBZnRlclRpbWUnLCAoKSA9PiB7Cisg
ICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSBwb2ludCBhdCB0aGUgc3BlY2lmaWVkIHRpbWUn
LCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMo
KTsKKyAgICAgICAgICAgIGFkZFBvaW50c1RvU2VyaWVzKHRpbWVTZXJpZXMpOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMuZmluZFBvaW50QWZ0ZXJUaW1lKHRocmVlUG9pbnRz
WzBdLnRpbWUpLCB0aHJlZVBvaW50c1swXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodGlt
ZVNlcmllcy5maW5kUG9pbnRBZnRlclRpbWUodGhyZWVQb2ludHNbMV0udGltZSksIHRocmVlUG9p
bnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEFm
dGVyVGltZSh0aHJlZVBvaW50c1syXS50aW1lKSwgdGhyZWVQb2ludHNbMl0pOworICAgICAgICB9
KTsKKworICAgICAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgcG9pbnQgYWZ0ZXIgdGhlIHNwZWNp
ZmllZCB0aW1lJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBU
aW1lU2VyaWVzKCk7CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEFmdGVyVGltZSh0
aHJlZVBvaW50c1swXS50aW1lIC0gMC4xKSwgdGhyZWVQb2ludHNbMF0pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHRpbWVTZXJpZXMuZmluZFBvaW50QWZ0ZXJUaW1lKHRocmVlUG9pbnRzWzFd
LnRpbWUgLSAwLjEpLCB0aHJlZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dGltZVNlcmllcy5maW5kUG9pbnRBZnRlclRpbWUodGhyZWVQb2ludHNbMl0udGltZSAtIDAuMSks
IHRocmVlUG9pbnRzWzJdKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCByZXR1
cm4gbnVsbCB3aGVuIHRoZXJlIGFyZSBubyBwb2ludHMgYWZ0ZXIgdGhlIHNwZWNpZmllZCB0aW1l
JywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVz
KCk7CisgICAgICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEFmdGVyVGltZSh0aHJlZVBvaW50
c1syXS50aW1lICsgMC4xKSwgbnVsbCk7CisgICAgICAgIH0pOworCisgICAgICAgIGl0KCdzaG91
bGQgcmV0dXJuIHRoZSBmaXJzdCBwb2ludCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBwb2ludHMg
YXQgdGhlIHNwZWNpZmllZCB0aW1lJywgKCkgPT4geworICAgICAgICAgICAgY29uc3QgdGltZVNl
cmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAgICAgICAgICBjb25zdCBwb2ludHMgPSBbCisg
ICAgICAgICAgICAgICAge2lkOiA5MDksIHRpbWU6ICA5OSwgdmFsdWU6IDEwNX0sCisgICAgICAg
ICAgICAgICAge2lkOiA5MTAsIHRpbWU6IDEwMCwgdmFsdWU6IDExMH0sCisgICAgICAgICAgICAg
ICAge2lkOiA5MDIsIHRpbWU6IDEwMCwgdmFsdWU6IDEwMn0sCisgICAgICAgICAgICAgICAge2lk
OiA5MzAsIHRpbWU6IDEwMSwgdmFsdWU6IDEzMH0sCisgICAgICAgICAgICBdOworICAgICAgICAg
ICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcywgcG9pbnRzKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh0aW1lU2VyaWVzLmZpbmRQb2ludEFmdGVyVGltZShwb2ludHNbMV0udGltZSks
IHBvaW50c1sxXSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ3ZpZXdC
ZXR3ZWVuUG9pbnRzJywgKCkgPT4geworCisgICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGEgdmll
dyBiZXR3ZWVuIHR3byBwb2ludHMnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2Vy
aWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50c1RvU2VyaWVzKHRp
bWVTZXJpZXMsIGZpdmVQb2ludHMpOworICAgICAgICAgICAgY29uc3QgdmlldyA9IHRpbWVTZXJp
ZXMudmlld0JldHdlZW5Qb2ludHMoZml2ZVBvaW50c1sxXSwgZml2ZVBvaW50c1szXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5sZW5ndGgoKSwgMyk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodmlldy5maXJzdFBvaW50KCksIGZpdmVQb2ludHNbMV0pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcubGFzdFBvaW50KCksIGZpdmVQb2ludHNbM10pOworCisgICAgICAg
ICAgICBhc3NlcnQuZXF1YWwodmlldy5uZXh0UG9pbnQoZml2ZVBvaW50c1sxXSksIGZpdmVQb2lu
dHNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcubmV4dFBvaW50KGZpdmVQb2lu
dHNbMl0pLCBmaXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lm5l
eHRQb2ludChmaXZlUG9pbnRzWzNdKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVh
bCh2aWV3LnByZXZpb3VzUG9pbnQoZml2ZVBvaW50c1sxXSksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcucHJldmlvdXNQb2ludChmaXZlUG9pbnRzWzJdKSwgZml2ZVBvaW50
c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5wcmV2aW91c1BvaW50KGZpdmVQ
b2ludHNbM10pLCBmaXZlUG9pbnRzWzJdKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZp
ZXcuZmluZFBvaW50QnlJbmRleCgwKSwgZml2ZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3Nl
cnQuZXF1YWwodmlldy5maW5kUG9pbnRCeUluZGV4KDEpLCBmaXZlUG9pbnRzWzJdKTsKKyAgICAg
ICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5kZXgoMiksIGZpdmVQb2ludHNb
M10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZFBvaW50QnlJbmRleCgzKSwg
bnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2lu
dHNbMF0uaWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlk
KGZpdmVQb2ludHNbMV0uaWQpLCBmaXZlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5l
cXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbMl0uaWQpLCBmaXZlUG9pbnRzWzJdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbM10uaWQpLCBm
aXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZp
dmVQb2ludHNbNF0uaWQpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2
aWV3LnZhbHVlcygpLCBbZml2ZVBvaW50c1sxXS52YWx1ZSwgZml2ZVBvaW50c1syXS52YWx1ZSwg
Zml2ZVBvaW50c1szXS52YWx1ZV0pOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZp
ZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMF0udGltZSwgZml2ZVBvaW50c1s0
XS50aW1lKSwgZml2ZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZp
ZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMV0udGltZSwgZml2ZVBvaW50c1s0
XS50aW1lKSwgZml2ZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZp
ZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMV0udGltZSwgZml2ZVBvaW50c1sx
XS50aW1lKSwgZml2ZVBvaW50c1sxXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZp
ZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMF0udGltZSwgZml2ZVBvaW50c1sw
XS50aW1lKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZpZXcuZmlyc3RQ
b2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMV0udGltZSArIDAuMSwgZml2ZVBvaW50c1syXS50
aW1lKSwgZml2ZVBvaW50c1syXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZpZXcu
Zmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbM10udGltZSAtIDAuMSwgZml2ZVBvaW50
c1s0XS50aW1lKSwgZml2ZVBvaW50c1szXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbNF0udGltZSwgZml2ZVBvaW50
c1s0XS50aW1lKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoWy4uLnZp
ZXddLCBmaXZlUG9pbnRzLnNsaWNlKDEsIDQpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQo
J3Nob3VsZCByZXR1cm4gYSB2aWV3IHdpdGggZXhhY3RseSBvbmUgcG9pbnQgZm9yIHdoZW4gdGhl
IHN0YXJ0aW5nIHBvaW50IGlzIGlkZW50aWNhbCB0byB0aGUgZW5kaW5nIHBvaW50JywgKCkgPT4g
eworICAgICAgICAgICAgY29uc3QgdGltZVNlcmllcyA9IG5ldyBUaW1lU2VyaWVzKCk7CisgICAg
ICAgICAgICBhZGRQb2ludHNUb1Nlcmllcyh0aW1lU2VyaWVzLCBmaXZlUG9pbnRzKTsKKyAgICAg
ICAgICAgIGNvbnN0IHZpZXcgPSB0aW1lU2VyaWVzLnZpZXdCZXR3ZWVuUG9pbnRzKGZpdmVQb2lu
dHNbMl0sIGZpdmVQb2ludHNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcubGVu
Z3RoKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmlyc3RQb2ludCgpLCBm
aXZlUG9pbnRzWzJdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lmxhc3RQb2ludCgp
LCBmaXZlUG9pbnRzWzJdKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZFBv
aW50QnlJbmRleCgwKSwgZml2ZVBvaW50c1syXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwo
dmlldy5maW5kUG9pbnRCeUluZGV4KDEpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1swXS5pZCksIG51bGwpOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1sxXS5pZCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1syXS5pZCksIGZp
dmVQb2ludHNbMl0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2
ZVBvaW50c1szXS5pZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmlu
ZEJ5SWQoZml2ZVBvaW50c1s0XS5pZCksIG51bGwpOworCisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHZpZXcudmFsdWVzKCksIFtmaXZlUG9pbnRzWzJdLnZhbHVlXSk7CisKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50
c1swXS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzJdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50
c1sxXS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzJdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50
c1sxXS50aW1lLCBmaXZlUG9pbnRzWzFdLnRpbWUpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1swXS50aW1l
LCBmaXZlUG9pbnRzWzBdLnRpbWUpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1sxXS50aW1lICsgMC4xLCBm
aXZlUG9pbnRzWzJdLnRpbWUpLCBmaXZlUG9pbnRzWzJdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1szXS50aW1lIC0g
MC4xLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1s0XS50aW1lLCBmaXZl
UG9pbnRzWzRdLnRpbWUpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbChb
Li4udmlld10sIFtmaXZlUG9pbnRzWzJdXSk7CisgICAgICAgIH0pOworCisgICAgfSk7CisKK30p
OworCitkZXNjcmliZSgnVGltZVNlcmllc1ZpZXcnLCAoKSA9PiB7CisKKyAgICBkZXNjcmliZSgn
ZmlsdGVyJywgKCkgPT4geworICAgICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIGZpbHRlcmVkIHZp
ZXcnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJp
ZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50c1RvU2VyaWVzKHRpbWVTZXJpZXMsIGZpdmVQb2lu
dHMpOworICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxWaWV3ID0gdGltZVNlcmllcy52aWV3QmV0
d2VlblBvaW50cyhmaXZlUG9pbnRzWzBdLCBmaXZlUG9pbnRzWzRdKTsKKyAgICAgICAgICAgIGNv
bnN0IHZpZXcgPSBvcmlnaW5hbFZpZXcuZmlsdGVyKChwb2ludCkgPT4geyByZXR1cm4gcG9pbnQg
PT0gZml2ZVBvaW50c1sxXSB8fCBwb2ludCA9PSBmaXZlUG9pbnRzWzNdOyB9KTsKKworICAgICAg
ICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcubGVuZ3RoKCksIDIpOworICAgICAgICAgICAgYXNzZXJ0
LmVxdWFsKHZpZXcuZmlyc3RQb2ludCgpLCBmaXZlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFz
c2VydC5lcXVhbCh2aWV3Lmxhc3RQb2ludCgpLCBmaXZlUG9pbnRzWzNdKTsKKworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHZpZXcubmV4dFBvaW50KGZpdmVQb2ludHNbMV0pLCBmaXZlUG9pbnRz
WzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lm5leHRQb2ludChmaXZlUG9pbnRz
WzNdKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LnByZXZpb3VzUG9p
bnQoZml2ZVBvaW50c1sxXSksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcu
cHJldmlvdXNQb2ludChmaXZlUG9pbnRzWzNdKSwgZml2ZVBvaW50c1sxXSk7CisKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5kZXgoMCksIGZpdmVQb2ludHNbMV0p
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZFBvaW50QnlJbmRleCgxKSwgZml2
ZVBvaW50c1szXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kUG9pbnRCeUlu
ZGV4KDIpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQo
Zml2ZVBvaW50c1swXS5pZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcu
ZmluZEJ5SWQoZml2ZVBvaW50c1sxXS5pZCksIGZpdmVQb2ludHNbMV0pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1syXS5pZCksIG51bGwpOworICAg
ICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1szXS5pZCksIGZp
dmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2
ZVBvaW50c1s0XS5pZCksIG51bGwpOworCisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZp
ZXcudmFsdWVzKCksIFtmaXZlUG9pbnRzWzFdLnZhbHVlLCBmaXZlUG9pbnRzWzNdLnZhbHVlXSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFu
Z2UoZml2ZVBvaW50c1swXS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzFd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFu
Z2UoZml2ZVBvaW50c1sxXS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzFd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFu
Z2UoZml2ZVBvaW50c1sxXS50aW1lLCBmaXZlUG9pbnRzWzFdLnRpbWUpLCBmaXZlUG9pbnRzWzFd
KTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFu
Z2UoZml2ZVBvaW50c1swXS50aW1lLCBmaXZlUG9pbnRzWzBdLnRpbWUpLCBudWxsKTsKKyAgICAg
ICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBv
aW50c1sxXS50aW1lICsgMC4xLCBmaXZlUG9pbnRzWzJdLnRpbWUpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50
c1szXS50aW1lIC0gMC4xLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzNdKTsKKyAg
ICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2
ZVBvaW50c1s0XS50aW1lLCBmaXZlUG9pbnRzWzRdLnRpbWUpLCBudWxsKTsKKworICAgICAgICAg
ICAgYXNzZXJ0LmRlZXBFcXVhbChbLi4udmlld10sIFtmaXZlUG9pbnRzWzFdLCBmaXZlUG9pbnRz
WzNdXSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgZGVzY3JpYmUoJ3ZpZXdUaW1lUmFu
Z2UnLCAoKSA9PiB7CisgICAgICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgdmlldyBmaWx0ZXJlZCBi
eSB0aGUgc3BlY2lmaWVkIHRpbWUgcmFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAgICBjb25zdCB0
aW1lU2VyaWVzID0gbmV3IFRpbWVTZXJpZXMoKTsKKyAgICAgICAgICAgIGFkZFBvaW50c1RvU2Vy
aWVzKHRpbWVTZXJpZXMsIGZpdmVQb2ludHMpOworICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxW
aWV3ID0gdGltZVNlcmllcy52aWV3QmV0d2VlblBvaW50cyhmaXZlUG9pbnRzWzBdLCBmaXZlUG9p
bnRzWzRdKTsKKyAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBvcmlnaW5hbFZpZXcudmlld1RpbWVS
YW5nZShmaXZlUG9pbnRzWzFdLnRpbWUgLSAwLjEsIGZpdmVQb2ludHNbNF0udGltZSAtIDAuMSk7
CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lmxlbmd0aCgpLCAzKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpcnN0UG9pbnQoKSwgZml2ZVBvaW50c1sxXSk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5sYXN0UG9pbnQoKSwgZml2ZVBvaW50c1szXSk7CisK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3Lm5leHRQb2ludChmaXZlUG9pbnRzWzFdKSwg
Zml2ZVBvaW50c1syXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5uZXh0UG9pbnQo
Zml2ZVBvaW50c1syXSksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHZpZXcubmV4dFBvaW50KGZpdmVQb2ludHNbM10pLCBudWxsKTsKKworICAgICAgICAgICAgYXNz
ZXJ0LmVxdWFsKHZpZXcucHJldmlvdXNQb2ludChmaXZlUG9pbnRzWzFdKSwgbnVsbCk7CisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5wcmV2aW91c1BvaW50KGZpdmVQb2ludHNbMl0pLCBm
aXZlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LnByZXZpb3VzUG9p
bnQoZml2ZVBvaW50c1szXSksIGZpdmVQb2ludHNbMl0pOworCisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodmlldy5maW5kUG9pbnRCeUluZGV4KDApLCBmaXZlUG9pbnRzWzFdKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5kZXgoMSksIGZpdmVQb2ludHNbMl0p
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZFBvaW50QnlJbmRleCgyKSwgZml2
ZVBvaW50c1szXSk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kUG9pbnRCeUlu
ZGV4KDMpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQo
Zml2ZVBvaW50c1swXS5pZCksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcu
ZmluZEJ5SWQoZml2ZVBvaW50c1sxXS5pZCksIGZpdmVQb2ludHNbMV0pOworICAgICAgICAgICAg
YXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1syXS5pZCksIGZpdmVQb2ludHNb
Ml0pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmluZEJ5SWQoZml2ZVBvaW50c1sz
XS5pZCksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmlu
ZEJ5SWQoZml2ZVBvaW50c1s0XS5pZCksIG51bGwpOworCisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHZpZXcudmFsdWVzKCksIFtmaXZlUG9pbnRzWzFdLnZhbHVlLCBmaXZlUG9pbnRzWzJd
LnZhbHVlLCBmaXZlUG9pbnRzWzNdLnZhbHVlXSk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1swXS50aW1lLCBmaXZl
UG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1sxXS50aW1lLCBmaXZl
UG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1sxXS50aW1lLCBmaXZl
UG9pbnRzWzFdLnRpbWUpLCBmaXZlUG9pbnRzWzFdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVw
RXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1swXS50aW1lLCBmaXZl
UG9pbnRzWzBdLnRpbWUpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmll
dy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1sxXS50aW1lICsgMC4xLCBmaXZlUG9p
bnRzWzJdLnRpbWUpLCBmaXZlUG9pbnRzWzJdKTsKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1
YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1szXS50aW1lIC0gMC4xLCBm
aXZlUG9pbnRzWzRdLnRpbWUpLCBmaXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5k
ZWVwRXF1YWwodmlldy5maXJzdFBvaW50SW5UaW1lUmFuZ2UoZml2ZVBvaW50c1s0XS50aW1lLCBm
aXZlUG9pbnRzWzRdLnRpbWUpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bChbLi4udmlld10sIGZpdmVQb2ludHMuc2xpY2UoMSwgNCkpOworICAgICAgICB9KTsKKworICAg
ICAgICBpdCgnc2hvdWxkIGNyZWF0ZSBhIHZpZXcgZmlsdGVyZWQgYnkgdGhlIHNwZWNpZmllZCB0
aW1lIHJhbmdlIG9uIGEgdmlldyBhbHJlYWR5IGZpbHRlcmVkIGJ5IGEgdGltZSByYW5nZScsICgp
ID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmllcygpOwor
ICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcywgZml2ZVBvaW50cyk7Cisg
ICAgICAgICAgICBjb25zdCBvcmlnaW5hbFZpZXcgPSB0aW1lU2VyaWVzLnZpZXdCZXR3ZWVuUG9p
bnRzKGZpdmVQb2ludHNbMF0sIGZpdmVQb2ludHNbNF0pOworICAgICAgICAgICAgY29uc3QgcHJl
ZmlsdGVyZWRWaWV3ID0gb3JpZ2luYWxWaWV3LnZpZXdUaW1lUmFuZ2UoZml2ZVBvaW50c1sxXS50
aW1lIC0gMC4xLCBmaXZlUG9pbnRzWzRdLnRpbWUgLSAwLjEpOworICAgICAgICAgICAgY29uc3Qg
dmlldyA9IHByZWZpbHRlcmVkVmlldy52aWV3VGltZVJhbmdlKGZpdmVQb2ludHNbM10udGltZSAt
IDAuMSwgZml2ZVBvaW50c1szXS50aW1lICsgMC4xKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVx
dWFsKHZpZXcubGVuZ3RoKCksIDEpOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcuZmly
c3RQb2ludCgpLCBmaXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3
Lmxhc3RQb2ludCgpLCBmaXZlUG9pbnRzWzNdKTsKKworICAgICAgICAgICAgYXNzZXJ0LmVxdWFs
KHZpZXcubmV4dFBvaW50KGZpdmVQb2ludHNbM10pLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh2aWV3LnByZXZpb3VzUG9pbnQoZml2ZVBvaW50c1szXSksIG51bGwpOworCisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kUG9pbnRCeUluZGV4KDApLCBmaXZlUG9pbnRz
WzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5SW5kZXgoMSks
IG51bGwpOworCisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9p
bnRzWzBdLmlkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJ
ZChmaXZlUG9pbnRzWzFdLmlkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZXF1YWwodmll
dy5maW5kQnlJZChmaXZlUG9pbnRzWzJdLmlkKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQu
ZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzNdLmlkKSwgZml2ZVBvaW50c1szXSk7Cisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5maW5kQnlJZChmaXZlUG9pbnRzWzRdLmlkKSwg
bnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwodmlldy52YWx1ZXMoKSwgW2Zp
dmVQb2ludHNbM10udmFsdWVdKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3
LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzBdLnRpbWUsIGZpdmVQb2ludHNbNF0u
dGltZSksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3
LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzFdLnRpbWUsIGZpdmVQb2ludHNbNF0u
dGltZSksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3
LmZpcnN0UG9pbnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzFdLnRpbWUsIGZpdmVQb2ludHNbMV0u
dGltZSksIG51bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9p
bnRJblRpbWVSYW5nZShmaXZlUG9pbnRzWzBdLnRpbWUsIGZpdmVQb2ludHNbMF0udGltZSksIG51
bGwpOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVS
YW5nZShmaXZlUG9pbnRzWzFdLnRpbWUgKyAwLjEsIGZpdmVQb2ludHNbMl0udGltZSksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRpbWVSYW5n
ZShmaXZlUG9pbnRzWzNdLnRpbWUgLSAwLjEsIGZpdmVQb2ludHNbNF0udGltZSksIGZpdmVQb2lu
dHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVhbCh2aWV3LmZpcnN0UG9pbnRJblRp
bWVSYW5nZShmaXZlUG9pbnRzWzRdLnRpbWUsIGZpdmVQb2ludHNbNF0udGltZSksIG51bGwpOwor
CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKFsuLi52aWV3XSwgW2ZpdmVQb2ludHNbM11d
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXQoJ3Nob3VsZCBjcmVhdGUgYSB2aWV3IGZpbHRl
cmVkIGJ5IHRoZSBzcGVjaWZpZWQgdGltZSByYW5nZSBvbiBhIHZpZXcgYWxyZWFkeSBmaWx0ZXJl
ZCcsICgpID0+IHsKKyAgICAgICAgICAgIGNvbnN0IHRpbWVTZXJpZXMgPSBuZXcgVGltZVNlcmll
cygpOworICAgICAgICAgICAgYWRkUG9pbnRzVG9TZXJpZXModGltZVNlcmllcywgZml2ZVBvaW50
cyk7CisgICAgICAgICAgICBjb25zdCBvcmlnaW5hbFZpZXcgPSB0aW1lU2VyaWVzLnZpZXdCZXR3
ZWVuUG9pbnRzKGZpdmVQb2ludHNbMF0sIGZpdmVQb2ludHNbNF0pOworICAgICAgICAgICAgY29u
c3QgcHJlZmlsdGVyZWRWaWV3ID0gb3JpZ2luYWxWaWV3LmZpbHRlcigocG9pbnQpID0+IHsgcmV0
dXJuIHBvaW50ID09IGZpdmVQb2ludHNbMV0gfHwgcG9pbnQgPT0gZml2ZVBvaW50c1szXTsgfSk7
CisgICAgICAgICAgICBjb25zdCB2aWV3ID0gcHJlZmlsdGVyZWRWaWV3LnZpZXdUaW1lUmFuZ2Uo
Zml2ZVBvaW50c1szXS50aW1lIC0gMC4xLCBmaXZlUG9pbnRzWzNdLnRpbWUgKyAwLjEpOworCisg
ICAgICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5sZW5ndGgoKSwgMSk7CisgICAgICAgICAgICBh
c3NlcnQuZXF1YWwodmlldy5maXJzdFBvaW50KCksIGZpdmVQb2ludHNbM10pOworICAgICAgICAg
ICAgYXNzZXJ0LmVxdWFsKHZpZXcubGFzdFBvaW50KCksIGZpdmVQb2ludHNbM10pOworCisgICAg
ICAgICAgICBhc3NlcnQuZXF1YWwodmlldy5uZXh0UG9pbnQoZml2ZVBvaW50c1szXSksIG51bGwp
OworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcucHJldmlvdXNQb2ludChmaXZlUG9pbnRz
WzNdKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRQb2ludEJ5
SW5kZXgoMCksIGZpdmVQb2ludHNbM10pOworICAgICAgICAgICAgYXNzZXJ0LmVxdWFsKHZpZXcu
ZmluZFBvaW50QnlJbmRleCgxKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2
aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbMF0uaWQpLCBudWxsKTsKKyAgICAgICAgICAgIGFzc2Vy
dC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbMV0uaWQpLCBudWxsKTsKKyAgICAgICAg
ICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbMl0uaWQpLCBudWxsKTsK
KyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlkKGZpdmVQb2ludHNbM10uaWQp
LCBmaXZlUG9pbnRzWzNdKTsKKyAgICAgICAgICAgIGFzc2VydC5lcXVhbCh2aWV3LmZpbmRCeUlk
KGZpdmVQb2ludHNbNF0uaWQpLCBudWxsKTsKKworICAgICAgICAgICAgYXNzZXJ0LmRlZXBFcXVh
bCh2aWV3LnZhbHVlcygpLCBbZml2ZVBvaW50c1szXS52YWx1ZV0pOworCisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMF0u
dGltZSwgZml2ZVBvaW50c1s0XS50aW1lKSwgZml2ZVBvaW50c1szXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMV0u
dGltZSwgZml2ZVBvaW50c1s0XS50aW1lKSwgZml2ZVBvaW50c1szXSk7CisgICAgICAgICAgICBh
c3NlcnQuZGVlcEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMV0u
dGltZSwgZml2ZVBvaW50c1sxXS50aW1lKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVl
cEVxdWFsKHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMF0udGltZSwgZml2
ZVBvaW50c1swXS50aW1lKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZp
ZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbMV0udGltZSArIDAuMSwgZml2ZVBv
aW50c1syXS50aW1lKSwgbnVsbCk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFsKHZpZXcu
Zmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbM10udGltZSAtIDAuMSwgZml2ZVBvaW50
c1s0XS50aW1lKSwgZml2ZVBvaW50c1szXSk7CisgICAgICAgICAgICBhc3NlcnQuZGVlcEVxdWFs
KHZpZXcuZmlyc3RQb2ludEluVGltZVJhbmdlKGZpdmVQb2ludHNbNF0udGltZSwgZml2ZVBvaW50
c1s0XS50aW1lKSwgbnVsbCk7CisKKyAgICAgICAgICAgIGFzc2VydC5kZWVwRXF1YWwoWy4uLnZp
ZXddLCBbZml2ZVBvaW50c1szXV0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworfSk7Cg==
</data>
<flag name="review"
          id="324096"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>