<?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>82735</bug_id>
          
          <creation_ts>2012-03-30 09:13:07 -0700</creation_ts>
          <short_desc>Web Inspector: [refactoring] factor our frame aggregation logic to TimelineFrameController</short_desc>
          <delta_ts>2012-04-02 05:49:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>592204</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-03-30 09:13:07 -0700</bug_when>
    <thetext>We&apos;d like to reuse frame information in both overview pane and lower pane, so this should be moved out to a separate class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592206</commentid>
    <comment_count>1</comment_count>
      <attachid>134824</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-03-30 09:16:30 -0700</bug_when>
    <thetext>Created attachment 134824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592214</commentid>
    <comment_count>2</comment_count>
      <attachid>134824</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-30 09:25:01 -0700</bug_when>
    <thetext>Comment on attachment 134824
Patch

Attachment 134824 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12288282</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592216</commentid>
    <comment_count>3</comment_count>
      <attachid>134824</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-30 09:25:47 -0700</bug_when>
    <thetext>Comment on attachment 134824
Patch

Attachment 134824 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12266359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592222</commentid>
    <comment_count>4</comment_count>
      <attachid>134824</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-30 09:29:13 -0700</bug_when>
    <thetext>Comment on attachment 134824
Patch

Please add the new file to the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592223</commentid>
    <comment_count>5</comment_count>
      <attachid>134828</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-03-30 09:30:13 -0700</bug_when>
    <thetext>Created attachment 134828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592230</commentid>
    <comment_count>6</comment_count>
      <attachid>134828</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-03-30 09:44:22 -0700</bug_when>
    <thetext>Comment on attachment 134828
Patch

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

It sounds like this change is not only factoring out what is claimed, but makes random changes to the code. Could you please split it?

&gt; Source/WebCore/ChangeLog:8
&gt; +        * WebCore.gypi: Added TimelineFrameController.js

Where is the new file?

&gt; Source/WebCore/inspector/front-end/TimelineFrameController.js:52
&gt; +        this._addRecord(event.data);

Do we need to add this when panel is not shown?

&gt; Source/WebCore/inspector/front-end/TimelineFrameController.js:87
&gt; +        console.error(&quot;shynthetic frame&quot;);

Please remove the debug logging.

&gt; Source/WebCore/inspector/front-end/TimelineModel.js:105
&gt; +    var categories = Object.keys(increment);

Please annotate this, btw we do for in all over the place.

&gt; Source/WebCore/inspector/front-end/TimelineModel.js:116
&gt; +    var childrenTime = 0;

Please annotate this.

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:-931
&gt; -        var totalTime = 0;

Where did this method go?

&gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:885
&gt; +                if (!longestFrame || longestFrame.cpuTime &lt; this._frames[currentFrame].cpuTime)

What is longestFrame?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593259</commentid>
    <comment_count>7</comment_count>
      <attachid>135044</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-04-02 02:01:17 -0700</bug_when>
    <thetext>Created attachment 135044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593266</commentid>
    <comment_count>8</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-04-02 02:07:52 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; 
&gt; It sounds like this change is not only factoring out what is claimed, but makes random changes to the code. Could you please split it?

Well, those are not entirely random. I wouldn&apos;t like to spit it, as these are closely interconnected. I tried to do a better job of explaining what happens in the ChangeLog.

&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        * WebCore.gypi: Added TimelineFrameController.js
&gt; Where is the new file?

Fixing.

&gt; &gt; Source/WebCore/inspector/front-end/TimelineFrameController.js:52
&gt; &gt; +        this._addRecord(event.data);
&gt; Do we need to add this when panel is not shown?

I addressed this as a separate change (bug 82861)

&gt; &gt; Source/WebCore/inspector/front-end/TimelineFrameController.js:87
&gt; &gt; +        console.error(&quot;shynthetic frame&quot;);
&gt; Please remove the debug logging.

Oops. Thanks for spotting!

&gt; &gt; Source/WebCore/inspector/front-end/TimelineModel.js:105
&gt; &gt; +    var categories = Object.keys(increment);
&gt; Please annotate this, btw we do for in all over the place.

done.

&gt; &gt; Source/WebCore/inspector/front-end/TimelineModel.js:116
&gt; &gt; +    var childrenTime = 0;
&gt; 
&gt; Please annotate this.
Done.

&gt; &gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:-931
&gt; &gt; -        var totalTime = 0;
&gt; 
&gt; Where did this method go?

We used to do aggregation separately by frames or by top-level events in case we don&apos;t have frames. Now we just always simulate frames in TimelineFrameController, and the aggregation happens there as well -- except for the case when we need to show one bar per multiple frames.

&gt; &gt; Source/WebCore/inspector/front-end/TimelineOverviewPane.js:885
&gt; &gt; +                if (!longestFrame || longestFrame.cpuTime &lt; this._frames[currentFrame].cpuTime)
&gt; 
&gt; What is longestFrame?

The frame that took most CPU time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593400</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-04-02 05:49:58 -0700</bug_when>
    <thetext>Committed r112865: &lt;http://trac.webkit.org/changeset/112865&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134824</attachid>
            <date>2012-03-30 09:16:30 -0700</date>
            <delta_ts>2012-03-30 09:30:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82735-20120330201629.patch</filename>
            <type>text/plain</type>
            <size>20770</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUzNmYyZDZmMzYwYzFl
NDI0Mzg4ZjZlMTE1MTIwYmU2NDU4NzFkYS4uZTNkMzgxN2FjOGRlMmUyNjMzNTU4NDRiMTRkMWNk
MzRiYjI3YTNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTMwICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW3JlZmFjdG9yaW5nXSBmYWN0b3Igb3VyIGZyYW1lIGFnZ3JlZ2F0aW9uIGxvZ2ljIHRvIFRp
bWVsaW5lRnJhbWVDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MjczNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBUaW1lbGluZUZyYW1lQ29udHJvbGxl
ci5qcworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBkaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHk6IGRpdHRvLgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qczogQWRkZWQgdXRpbGl0aWVzIGZv
ciBhZ2dyZWdhdGluZyB0aW1lcyBieSBjYXRlZ29yaWVzLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuYWdncmVnYXRlVGltZUJ5Q2F0ZWdvcmllcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5hZ2dyZWdhdGVUaW1lRm9yUmVjb3JkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzOiBVc2UgZnJhbWUg
aW5mb3JtYXRpb24gc3VwcGxpZWQgYnkgVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuX3Nob3dUaW1lbGlu
ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlw
ZS5fc2V0VmVydGljYWxPdmVydmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1BhbmUucHJvdG90eXBlLmFkZEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlLnVwZGF0ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0aWNhbE92ZXJ2aWV3LnByb3RvdHlwZS5hZGRG
cmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0aWNhbE92ZXJ2aWV3LnBy
b3RvdHlwZS5fYWdncmVnYXRlRnJhbWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlLmdldFdpbmRvd1RpbWVzKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6IENyZWF0ZS9kaXNwb3NlIFRpbWVs
aW5lRnJhbWVDb250cm9sbGVyIHdoZW4gc3dpdGNoaW5nIHRvL2Zyb20gdmVydGljYWwgb3ZlcnZp
ZXcgbW9kZS4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5SZWNvcmQucHJvdG90eXBlLmNhbGN1bGF0ZUFnZ3JlZ2F0ZWRTdGF0cyk6IEZhY3RvcmVk
IG91dCBzdGF0aXN0aWNzIGFnZ3JlZ2F0aW9uIHRvIHV0aWxpdGllcyBtZXRob2QgaW4gdGhlIG1v
ZGVsLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzogQWRkZWQgVGlt
ZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sOiBkaXR0by4KKwogMjAxMi0wMy0yOSAgQW5kcmV5IEtvc3lha292ICA8Y2Fz
ZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcHJvdmUgd2luZG93
IHNlbGVjdGlvbiBhY2N1cmFjeSBpbiB2ZXJ0aWNhbCBvdmVydmlldyBvZiB0aW1lbGluZSBwYW5l
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDJhMzhmNzcwOTQ5OWRiODBiNDBjM2IwZGMwMDZkNTM0NzY3
NDRkMGEuLjdiNzNjZTE4YzcwOTE5NTNjYjEwNmE1YzVkYmFkN2Y3ZDNjODY4NzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTYzNDUsNiArNjM0NSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9UZXh0RWRpdG9yTW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvVGV4dFByb21wdC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9U
ZXh0Vmlld2VyLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
RnJhbWVDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lTWFuYWdlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU1vZGVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA1ZTFkZGZhMDdkY2IzNjE5ZTAyNzcwN2IwYTQ5MDc2MDlmMjMz
MTFkLi5mY2U1ODhiZDNhOTFhNDcwYmVjYzJjMTU3ODJkZGU1ZWY5MjI5NWUzIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzQxNDksNiArNzQx
NDksMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcZnJvbnQtZW5kXFRpbWVsaW5lTWFuYWdlci5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5w
eSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQppbmRleCBl
YTkzN2ZhNWRiNDQ5NjU4ODYzZmU5OTIzNmI2ZWNmMmYwODU3ODk0Li5mZWVlOGQ4MGM2NmVjZDBl
YTg1NzdhNjNjNDNmMGI4MDg0MDhiYzNkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC04NCw3ICs4NCw2IEBAIG1vZHVsZXMgPSBbCiAgICAg
ICAgICAgICAiU25pcHBldHNNb2RlbC5qcyIsCiAgICAgICAgICAgICAiVGltZWxpbmVNYW5hZ2Vy
LmpzIiwKICAgICAgICAgICAgICJUaW1lbGluZU1vZGVsLmpzIiwKLSAgICAgICAgICAgICJUaW1l
bGluZVByZXNlbnRhdGlvbk1vZGVsLmpzIiwKICAgICAgICAgICAgICJSYXdTb3VyY2VDb2RlLmpz
IiwKICAgICAgICAgICAgICJSZW1vdGVPYmplY3QuanMiLAogICAgICAgICAgICAgIlJlc291cmNl
LmpzIiwKQEAgLTIyOSw2ICsyMjgsOCBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAgIk1lbW9y
eVN0YXRpc3RpY3MuanMiLAogICAgICAgICAgICAgIlRpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIiwK
ICAgICAgICAgICAgICJUaW1lbGluZVBhbmVsLmpzIiwKKyAgICAgICAgICAgICJUaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLmpzIiwKKyAgICAgICAgICAgICJUaW1lbGluZUZyYW1lQ29udHJvbGxl
ci5qcyIKICAgICAgICAgXQogICAgIH0sCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCmluZGV4IGFlM2Q2YmRlODY0MTM3
OWQ2YWFkMjc1YjU0YjgwYTczYjVhMmE0MzkuLjNjYTA1ZWU0MDEyZGRiZDE0NDEzYTNkMTIzNmVl
MTk4ZGVlNDUzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lTW9kZWwuanMKQEAgLTEwMCw2ICsxMDAsMzAgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lTW9kZWwuZHVyYXRpb25JblNlY29uZHMgPSBmdW5jdGlvbihyZWNvcmQpCiAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmVuZFRpbWVJblNlY29uZHMocmVjb3JkKSAt
IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOwog
fQogCitXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5hZ2dyZWdhdGVUaW1lQnlDYXRlZ29yaWVz
ID0gZnVuY3Rpb24odG90YWwsIGluY3JlbWVudCkKK3sKKyAgICB2YXIgY2F0ZWdvcmllcyA9IE9i
amVjdC5rZXlzKGluY3JlbWVudCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRlZ29yaWVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbaV07Cisg
ICAgICAgIHZhciB2YWx1ZSA9IHRvdGFsW2NhdGVnb3J5XSB8fCAwOworICAgICAgICB2YWx1ZSAr
PSBpbmNyZW1lbnRbY2F0ZWdvcnldOworICAgICAgICB0b3RhbFtjYXRlZ29yeV0gPSB2YWx1ZTsK
KyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmFnZ3JlZ2F0ZVRpbWVGb3JS
ZWNvcmQgPSBmdW5jdGlvbih0b3RhbCwgcmF3UmVjb3JkKQoreworICAgIHZhciBjaGlsZHJlblRp
bWUgPSAwOworICAgIHZhciBjaGlsZHJlbiA9IHJhd1JlY29yZC5jaGlsZHJlbiB8fCBbXTsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSAgeworICAgICAgICBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5hZ2dyZWdhdGVUaW1lRm9yUmVjb3JkKHRvdGFsLCBj
aGlsZHJlbltpXSk7CisgICAgICAgIGNoaWxkcmVuVGltZSArPSBXZWJJbnNwZWN0b3IuVGltZWxp
bmVNb2RlbC5kdXJhdGlvbkluU2Vjb25kcyhjaGlsZHJlbltpXSk7CisgICAgfQorICAgIHZhciBj
YXRlZ29yeU5hbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5yZWNv
cmRTdHlsZShyYXdSZWNvcmQpLmNhdGVnb3J5Lm5hbWU7CisgICAgdmFyIG93blRpbWUgPSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5kdXJhdGlvbkluU2Vjb25kcyhyYXdSZWNvcmQpIC0gY2hp
bGRyZW5UaW1lOworICAgIHRvdGFsW2NhdGVnb3J5TmFtZV0gPSAodG90YWxbY2F0ZWdvcnlOYW1l
XSB8fCAwKSArIG93blRpbWU7Cit9CisKIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnByb3Rv
dHlwZSA9IHsKICAgICBzdGFydFJlY29yZDogZnVuY3Rpb24oKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQ
YW5lLmpzCmluZGV4IDExZjdjMDhkNTEwYTllMDdkNmJlZDI2MmNlOGM5YTI3NWViMTgyNjkuLmI1
ZWU2MmVkNjIwY2E3YjE2NjNmNTA2ODA1MTllOGI3OWUwZmJkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFu
ZS5qcwpAQCAtMTQyLDcgKzE0Miw2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFu
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2hlYXBHcmFwaC5oaWRlKCk7CiAgICAgICAg
IHRoaXMuX3NldFZlcnRpY2FsT3ZlcnZpZXcodGhpcy5fY3VycmVudE1vZGUgPT09IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5Nb2RlLkV2ZW50c1ZlcnRpY2FsKTsKICAgICAgICAg
dGhpcy5fb3ZlcnZpZXdHcmlkLml0ZW1zR3JhcGhzRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJo
aWRkZW4iKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlQ2F0ZWdvcnlTdHJpcHMoKTsKICAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZp
ZXdQYW5lLkV2ZW50cy5Nb2RlQ2hhbmdlZCwgdGhpcy5fY3VycmVudE1vZGUpOwogICAgIH0sCiAK
QEAgLTE2OCw2ICsxNjcsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJv
dG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fdmVydGljYWxPdmVydmlldy5kZXRhY2goKTsK
ICAgICAgICAgICAgIHRoaXMuX3ZlcnRpY2FsT3ZlcnZpZXcgPSBudWxsOwogICAgICAgICAgICAg
dGhpcy5fb3ZlcnZpZXdHcmlkLml0ZW1zR3JhcGhzRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJo
aWRkZW4iKTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNhdGVnb3J5U3RyaXBzKCk7CiAgICAg
ICAgIH0KICAgICB9LAogCkBAIC0yNzcsNiArMjc3LDE1IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3RvcFBhbmVTaWRlYmFy
RWxlbWVudC5zdHlsZS53aWR0aCA9IHdpZHRoICsgInB4IjsKICAgICB9LAogCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxpbmVGcmFtZX0gZnJhbWUKKyAgICAgKi8K
KyAgICBhZGRGcmFtZTogZnVuY3Rpb24oZnJhbWUpCisgICAgeworICAgICAgICB0aGlzLl92ZXJ0
aWNhbE92ZXJ2aWV3LmFkZEZyYW1lKGZyYW1lKTsKKyAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZy
ZXNoKCk7CisgICAgfSwKKwogICAgIF9yZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
dGhpcy5fd2luZG93U3RhcnRUaW1lID0gMDsKQEAgLTgzNCwzMyArODQzLDE4IEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlID0gewogICAgIHJlc2V0OiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZWNvcmRzUGVyQmFyID0gMTsKLSAgICAg
ICAgdGhpcy5fZnJhbWVNb2RlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2JhclRpbWVzID0gW107
CiAgICAgICAgIHRoaXMuX2xvbmdlc3RCYXJUaW1lID0gMDsKLSAgICAgICAgdGhpcy5fYWdncmVn
YXRlZFJlY29yZHMgPSBbXTsKKyAgICAgICAgdGhpcy5fZnJhbWVzID0gW107CiAgICAgfSwKIAog
ICAgIHVwZGF0ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHJlY29yZHMgPSBbXTsK
LSAgICAgICAgdmFyIGZyYW1lQ291bnQgPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuX2FnZ3JlZ2F0ZWRSZWNvcmRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIg
cmVjb3JkID0gdGhpcy5fYWdncmVnYXRlZFJlY29yZHNbaV07Ci0gICAgICAgICAgICBpZiAocmVj
b3JkLmNhdGVnb3J5LmhpZGRlbikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgIGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3Jk
VHlwZS5CZWdpbkZyYW1lIHx8IChmcmFtZUNvdW50ICYmIChpICsgMSA9PT0gcmVjb3Jkcy5sZW5n
dGgpKSkKLSAgICAgICAgICAgICAgICArK2ZyYW1lQ291bnQ7Ci0gICAgICAgICAgICByZWNvcmRz
LnB1c2gocmVjb3JkKTsKLSAgICAgICAgfQotICAgICAgICAvLyBJZiB3ZSBoYXZlIGZyYW1lcywg
YWdncmVnYXRlIGJ5IGZyYW1lczsgb3RoZXJ3aXNlLCBqdXN0IHNob3cgdG9wLWxldmVsIHJlY29y
ZHMuCi0gICAgICAgIHZhciByZWNvcmRDb3VudCA9IGZyYW1lQ291bnQgfHwgcmVjb3Jkcy5sZW5n
dGg7Ci0KICAgICAgICAgY29uc3QgbWluQmFyV2lkdGggPSA0OwotICAgICAgICB0aGlzLl9yZWNv
cmRzUGVyQmFyID0gTWF0aC5tYXgoMSwgcmVjb3JkQ291bnQgKiBtaW5CYXJXaWR0aCAvIHRoaXMu
ZWxlbWVudC5jbGllbnRXaWR0aCk7Ci0gICAgICAgIHZhciBudW1iZXJPZkJhcnMgPSBNYXRoLmNl
aWwocmVjb3JkQ291bnQgLyB0aGlzLl9yZWNvcmRzUGVyQmFyKTsKKyAgICAgICAgdmFyIGZyYW1l
c1BlckJhciA9IE1hdGgubWF4KDEsIHRoaXMuX2ZyYW1lcy5sZW5ndGggKiBtaW5CYXJXaWR0aCAv
IHRoaXMuZWxlbWVudC5jbGllbnRXaWR0aCk7CiAgICAgICAgIHRoaXMuX2JhclRpbWVzID0gW107
CiAgICAgICAgIHRoaXMuX2xvbmdlc3RCYXJUaW1lID0gMDsKLSAgICAgICAgdmFyIGJhckhlaWdo
dHMgPSBmcmFtZUNvdW50ID8gdGhpcy5fYWdncmVnYXRlRnJhbWVzKHJlY29yZHMsIG51bWJlck9m
QmFycykgOiB0aGlzLl9hZ2dyZWdhdGVSZWNvcmRzKHJlY29yZHMsIG51bWJlck9mQmFycyk7Cisg
ICAgICAgIHZhciBiYXJIZWlnaHRzID0gdGhpcy5fYWdncmVnYXRlRnJhbWVzKGZyYW1lc1BlckJh
cik7CiAKICAgICAgICAgY29uc3QgcGFkZGluZ1RvcCA9IDQ7CiAgICAgICAgIHZhciBzY2FsZSA9
ICh0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gcGFkZGluZ1RvcCkgLyB0aGlzLl9sb25nZXN0
QmFyVGltZTsKQEAgLTg2OCwxMDYgKzg2MiwzNSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0
aWNhbE92ZXJ2aWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVuZGVyQmFycyhiYXJI
ZWlnaHRzLCBzY2FsZSk7CiAgICAgfSwKIAotICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkUmVjb3JkcyA9IFtdOwotICAgICAgICB2YXIgcmVj
b3JkcyA9IHRoaXMuX21vZGVsLnJlY29yZHM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRSZWNvcmRz
LnB1c2gobmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZ3JlZ2F0ZWRSZWNvcmQocmVjb3Jkc1tp
XSkpOwotCi0gICAgICAgIHRoaXMudXBkYXRlKCk7Ci0gICAgICAgIHRoaXMuX21vZGVsLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuRXZlbnRzLlJlY29yZEFkZGVk
LCB0aGlzLl9vblJlY29yZEFkZGVkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5fbW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5FdmVudHMuUmVjb3Jkc0NsZWFy
ZWQsIHRoaXMucmVzZXQsIHRoaXMpOwotICAgIH0sCi0KLSAgICB3aWxsSGlkZTogZnVuY3Rpb24o
KQotICAgIHsKLSAgICAgICAgdGhpcy5fbW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5FdmVudHMuUmVjb3JkQWRkZWQsIHRoaXMuX29uUmVjb3JkQWRk
ZWQsIHRoaXMpOwotICAgICAgICB0aGlzLl9tb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5UaW1lbGluZU1vZGVsLkV2ZW50cy5SZWNvcmRzQ2xlYXJlZCwgdGhpcy5yZXNldCwg
dGhpcyk7Ci0gICAgfSwKLQogICAgIC8qKgotICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3Bl
Y3Rvci5UaW1lbGluZUFnZ3JlZ2F0ZWRSZWNvcmQ+fSByZWNvcmRzCi0gICAgICogQHBhcmFtIHtu
dW1iZXJ9IG51bWJlck9mQmFycworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5l
RnJhbWV9IGZyYW1lCiAgICAgICovCi0gICAgX2FnZ3JlZ2F0ZUZyYW1lczogZnVuY3Rpb24ocmVj
b3JkcywgbnVtYmVyT2ZCYXJzKQorICAgIGFkZEZyYW1lOiBmdW5jdGlvbihmcmFtZSkKICAgICB7
Ci0gICAgICAgIHZhciBzdGF0aXN0aWNzID0gW107Ci0gICAgICAgIGZvciAodmFyIGJhck51bWJl
ciA9IDAsIGN1cnJlbnRSZWNvcmQgPSAwLCBjdXJyZW50RnJhbWUgPSAwOwotICAgICAgICAgICAg
IGJhck51bWJlciA8IG51bWJlck9mQmFycyAmJiBjdXJyZW50UmVjb3JkIDwgcmVjb3Jkcy5sZW5n
dGg7ICsrYmFyTnVtYmVyKSB7Ci0gICAgICAgICAgICB2YXIgbGFzdEZyYW1lID0gTWF0aC5mbG9v
cigoYmFyTnVtYmVyICsgMSkgKiB0aGlzLl9yZWNvcmRzUGVyQmFyKTsKLSAgICAgICAgICAgIHZh
ciBiYXJTdGFydFRpbWUgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmRdLnN0YXJ0VGltZTsKLSAgICAg
ICAgICAgIHZhciBsb25nZXN0RnJhbWVTdGF0aXN0aWNzOwotICAgICAgICAgICAgdmFyIGxvbmdl
c3RGcmFtZVRpbWUgPSAwOwotCi0gICAgICAgICAgICBmb3IgKDsgY3VycmVudEZyYW1lIDwgbGFz
dEZyYW1lICYmIGN1cnJlbnRSZWNvcmQgPCByZWNvcmRzLmxlbmd0aDsgKytjdXJyZW50RnJhbWUp
IHsKLSAgICAgICAgICAgICAgICBpZiAocmVjb3Jkc1tjdXJyZW50UmVjb3JkXS50eXBlID09PSBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJlZ2luRnJhbWUpCi0gICAgICAg
ICAgICAgICAgICAgIGN1cnJlbnRSZWNvcmQrKzsKLSAgICAgICAgICAgICAgICB2YXIgZnJhbWVT
dGF0aXN0aWNzID0ge307Ci0gICAgICAgICAgICAgICAgdmFyIGZyYW1lSW5mbyA9IHRoaXMuX2Fn
Z3JlZ2F0ZUZyYW1lU3RhdGlzdGljcyhyZWNvcmRzLCBjdXJyZW50UmVjb3JkLCBmcmFtZVN0YXRp
c3RpY3MpOwotICAgICAgICAgICAgICAgIGN1cnJlbnRSZWNvcmQgKz0gZnJhbWVJbmZvLnJlY29y
ZENvdW50OwotICAgICAgICAgICAgICAgIGlmIChmcmFtZUluZm8udG90YWxUaW1lID4gbG9uZ2Vz
dEZyYW1lVGltZSkgewotICAgICAgICAgICAgICAgICAgICBsb25nZXN0RnJhbWVTdGF0aXN0aWNz
ID0gZnJhbWVTdGF0aXN0aWNzOwotICAgICAgICAgICAgICAgICAgICBsb25nZXN0RnJhbWVUaW1l
ID0gZnJhbWVJbmZvLnRvdGFsVGltZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICB2YXIgYmFyRW5kVGltZSA9IHJlY29yZHNbY3VycmVudFJlY29yZCAtIDFd
LmVuZFRpbWU7Ci0gICAgICAgICAgICBpZiAobG9uZ2VzdEZyYW1lU3RhdGlzdGljcykgewotICAg
ICAgICAgICAgICAgIHRoaXMuX2xvbmdlc3RCYXJUaW1lID0gTWF0aC5tYXgodGhpcy5fbG9uZ2Vz
dEJhclRpbWUsIGxvbmdlc3RGcmFtZVRpbWUpOwotICAgICAgICAgICAgICAgIHN0YXRpc3RpY3Mu
cHVzaChsb25nZXN0RnJhbWVTdGF0aXN0aWNzKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9iYXJU
aW1lcy5wdXNoKHsgc3RhcnRUaW1lOiBiYXJTdGFydFRpbWUsIGVuZFRpbWU6IGJhckVuZFRpbWUg
fSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0YXRpc3RpY3M7
CisgICAgICAgIHRoaXMuX2ZyYW1lcy5wdXNoKGZyYW1lKTsKICAgICB9LAogCiAgICAgLyoqCi0g
ICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdncmVnYXRlZFJlY29y
ZD59IHJlY29yZHMKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRJbmRleAotICAgICAqIEBw
YXJhbSB7T2JqZWN0fSBzdGF0aXN0aWNzCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGZyYW1lc1Bl
ckJhcgogICAgICAqLwotICAgIF9hZ2dyZWdhdGVGcmFtZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKHJl
Y29yZHMsIHN0YXJ0SW5kZXgsIHN0YXRpc3RpY3MpCi0gICAgewotICAgICAgICB2YXIgdG90YWxU
aW1lID0gMDsKLSAgICAgICAgZm9yICh2YXIgaW5kZXggPSBzdGFydEluZGV4OyBpbmRleCA8IHJl
Y29yZHMubGVuZ3RoOyArK2luZGV4KSB7Ci0gICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVjb3Jk
c1tpbmRleF07Ci0gICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5U
aW1lbGluZU1vZGVsLlJlY29yZFR5cGUuQmVnaW5GcmFtZSkKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIHZhciBjYXRlZ29yaWVzID0gT2JqZWN0LmtleXMocmVjb3JkLnRpbWVC
eUNhdGVnb3J5KTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5s
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBjYXRlZ29yeSA9IGNhdGVnb3JpZXNb
aV07Ci0gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gc3RhdGlzdGljc1tjYXRlZ29yeV0gfHwg
MDsKLSAgICAgICAgICAgICAgICB2YWx1ZSArPSByZWNvcmQudGltZUJ5Q2F0ZWdvcnlbY2F0ZWdv
cnldOwotICAgICAgICAgICAgICAgIHRvdGFsVGltZSArPSByZWNvcmQudGltZUJ5Q2F0ZWdvcnlb
Y2F0ZWdvcnldOwotICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NbY2F0ZWdvcnldID0gdmFsdWU7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAg
IHRvdGFsVGltZTogdG90YWxUaW1lLAotICAgICAgICAgICAgcmVjb3JkQ291bnQ6IGluZGV4IC0g
c3RhcnRJbmRleAotICAgICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7
QXJyYXkuPFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZ3JlZ2F0ZWRSZWNvcmQ+fSByZWNvcmRzCi0g
ICAgICogQHBhcmFtIHtudW1iZXJ9IG51bWJlck9mQmFycwotICAgICAqLwotICAgIF9hZ2dyZWdh
dGVSZWNvcmRzOiBmdW5jdGlvbihyZWNvcmRzLCBudW1iZXJPZkJhcnMpCisgICAgX2FnZ3JlZ2F0
ZUZyYW1lczogZnVuY3Rpb24oZnJhbWVzUGVyQmFyKQogICAgIHsKICAgICAgICAgdmFyIHN0YXRp
c3RpY3MgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgYmFyTnVtYmVyID0gMCwgY3VycmVudFJlY29y
ZCA9IDA7IGJhck51bWJlciA8IG51bWJlck9mQmFycyAmJiBjdXJyZW50UmVjb3JkIDwgcmVjb3Jk
cy5sZW5ndGg7ICsrYmFyTnVtYmVyKSB7Ci0gICAgICAgICAgICB2YXIgYmFyU3RhcnRUaW1lID0g
cmVjb3Jkc1tjdXJyZW50UmVjb3JkXS5zdGFydFRpbWU7Ci0gICAgICAgICAgICB2YXIgbG9uZ2Vz
dFJlY29yZCA9IHJlY29yZHNbY3VycmVudFJlY29yZF07Ci0gICAgICAgICAgICB2YXIgbGFzdElu
ZGV4ID0gTWF0aC5taW4oTWF0aC5mbG9vcigoYmFyTnVtYmVyICsgMSkgKiB0aGlzLl9yZWNvcmRz
UGVyQmFyKSwgcmVjb3Jkcy5sZW5ndGgpOwotICAgICAgICAgICAgZm9yICgrK2N1cnJlbnRSZWNv
cmQ7IGN1cnJlbnRSZWNvcmQgPCBsYXN0SW5kZXg7ICsrY3VycmVudFJlY29yZCkgewotICAgICAg
ICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmRdOwotICAgICAgICAg
ICAgICAgIGlmIChsb25nZXN0UmVjb3JkLmR1cmF0aW9uIDwgcmVjb3JkLmR1cmF0aW9uKQotICAg
ICAgICAgICAgICAgICAgICBsb25nZXN0UmVjb3JkID0gcmVjb3JkOworICAgICAgICBmb3IgKHZh
ciBiYXJOdW1iZXIgPSAwLCBjdXJyZW50RnJhbWUgPSAwOyBjdXJyZW50RnJhbWUgPCB0aGlzLl9m
cmFtZXMubGVuZ3RoOyArK2Jhck51bWJlcikgeworICAgICAgICAgICAgdmFyIGJhclN0YXJ0VGlt
ZSA9IHRoaXMuX2ZyYW1lc1tjdXJyZW50RnJhbWVdLnN0YXJ0VGltZTsKKyAgICAgICAgICAgIHZh
ciBsb25nZXN0RnJhbWUgPSBudWxsOworCisgICAgICAgICAgICBmb3IgKHZhciBsYXN0RnJhbWUg
PSBNYXRoLm1pbihNYXRoLmZsb29yKChiYXJOdW1iZXIgKyAxKSAqIGZyYW1lc1BlckJhciksIHRo
aXMuX2ZyYW1lcy5sZW5ndGgpOyAKKyAgICAgICAgICAgICAgICAgY3VycmVudEZyYW1lIDwgbGFz
dEZyYW1lOyArK2N1cnJlbnRGcmFtZSkgeworICAgICAgICAgICAgICAgIGlmICghbG9uZ2VzdEZy
YW1lIHx8IGxvbmdlc3RGcmFtZS5jcHVUaW1lIDwgdGhpcy5fZnJhbWVzW2N1cnJlbnRGcmFtZV0u
Y3B1VGltZSkKKyAgICAgICAgICAgICAgICAgICAgbG9uZ2VzdEZyYW1lID0gdGhpcy5fZnJhbWVz
W2N1cnJlbnRGcmFtZV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgYmFyRW5kVGlt
ZSA9IHRoaXMuX2ZyYW1lc1tjdXJyZW50RnJhbWUgLSAxXS5lbmRUaW1lOworICAgICAgICAgICAg
aWYgKGxvbmdlc3RGcmFtZSkgeworICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdlc3RCYXJUaW1l
ID0gTWF0aC5tYXgodGhpcy5fbG9uZ2VzdEJhclRpbWUsIGxvbmdlc3RGcmFtZS5jcHVUaW1lKTsK
KyAgICAgICAgICAgICAgICBzdGF0aXN0aWNzLnB1c2gobG9uZ2VzdEZyYW1lLnRpbWVCeUNhdGVn
b3J5KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9iYXJUaW1lcy5wdXNoKHsgc3RhcnRUaW1lOiBi
YXJTdGFydFRpbWUsIGVuZFRpbWU6IGJhckVuZFRpbWUgfSk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB2YXIgYmFyRW5kVGltZSA9IHJlY29yZHNbY3VycmVudFJlY29yZCAtIDFdLmVuZFRp
bWU7Ci0gICAgICAgICAgICBzdGF0aXN0aWNzLnB1c2gobG9uZ2VzdFJlY29yZC50aW1lQnlDYXRl
Z29yeSk7Ci0gICAgICAgICAgICB0aGlzLl9sb25nZXN0QmFyVGltZSA9IE1hdGgubWF4KHRoaXMu
X2xvbmdlc3RCYXJUaW1lLCBsb25nZXN0UmVjb3JkLmR1cmF0aW9uKTsKLSAgICAgICAgICAgIHRo
aXMuX2JhclRpbWVzLnB1c2goeyBzdGFydFRpbWU6IGJhclN0YXJ0VGltZSwgZW5kVGltZTogYmFy
RW5kVGltZSB9KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gc3RhdGlzdGljczsKICAgICB9
LApAQCAtMTAyNSwxMSArOTQ4LDYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmVydGljYWxPdmVy
dmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzdGFydFRpbWU6IGZpcnN0QmFyID49IHRo
aXMuX2JhclRpbWVzLmxlbmd0aCA/IEluZmluaXR5IDogdGhpcy5fYmFyVGltZXNbZmlyc3RCYXJd
LnN0YXJ0VGltZSwKICAgICAgICAgICAgIGVuZFRpbWU6IHJpZ2h0T2Zmc2V0ICsgc25hcFRvUmln
aHRUb2xlcmFuY2VQaXhlbHMgPiB3aW5kb3dTcGFuID8gSW5maW5pdHkgOiB0aGlzLl9iYXJUaW1l
c1tsYXN0QmFyXS5lbmRUaW1lCiAgICAgICAgIH0KLSAgICB9LAotCi0gICAgX29uUmVjb3JkQWRk
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fYWdncmVnYXRlZFJlY29y
ZHMucHVzaChuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdncmVnYXRlZFJlY29yZChldmVudC5k
YXRhKSk7CiAgICAgfQogfQogCkBAIC0xMDM3LDM5ICs5NTUsNiBAQCBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVWZXJ0aWNhbE92ZXJ2aWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3Iu
Vmlldy5wcgogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFtIHtPYmplY3R9IHJhd1Jl
Y29yZAotICovCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2dyZWdhdGVkUmVjb3JkID0gZnVuY3Rp
b24ocmF3UmVjb3JkKQotewotICAgIHRoaXMudGltZUJ5Q2F0ZWdvcnkgPSB7fTsKLSAgICB0aGlz
LmNhdGVnb3J5ID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdv
cnlGb3JSZWNvcmQocmF3UmVjb3JkKTsKLSAgICB0aGlzLnR5cGUgPSByYXdSZWNvcmQudHlwZTsK
LSAgICB0aGlzLl9hZ2dyZWdhdGVTdGF0aXN0aWNzKHJhd1JlY29yZCk7Ci0gICAgdGhpcy5zdGFy
dFRpbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5zdGFydFRpbWVJblNlY29uZHMocmF3
UmVjb3JkKTsKLSAgICB0aGlzLmVuZFRpbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5l
bmRUaW1lSW5TZWNvbmRzKHJhd1JlY29yZCk7Ci0gICAgdGhpcy5kdXJhdGlvbiA9IHRoaXMuZW5k
VGltZSAtIHRoaXMuc3RhcnRUaW1lOwotfQotCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2dyZWdh
dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge09iamVjdH0g
cmF3UmVjb3JkCi0gICAgICovCi0gICAgX2FnZ3JlZ2F0ZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKHJh
d1JlY29yZCkKLSAgICB7Ci0gICAgICAgIHZhciBjaGlsZHJlblRpbWUgPSAwOwotICAgICAgICB2
YXIgY2hpbGRyZW4gPSByYXdSZWNvcmQuY2hpbGRyZW4gfHwgW107Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpICB7Ci0gICAgICAgICAgICB0aGlzLl9h
Z2dyZWdhdGVTdGF0aXN0aWNzKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgICAgIGNoaWxkcmVuVGlt
ZSArPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5kdXJhdGlvbkluU2Vjb25kcyhjaGlsZHJl
bltpXSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGNhdGVnb3J5TmFtZSA9IFdlYkluc3BlY3Rv
ci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnJlY29yZFN0eWxlKHJhd1JlY29yZCkuY2F0ZWdv
cnkubmFtZTsKLSAgICAgICAgdmFyIG93blRpbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bC5kdXJhdGlvbkluU2Vjb25kcyhyYXdSZWNvcmQpIC0gY2hpbGRyZW5UaW1lOwotICAgICAgICB0
aGlzLnRpbWVCeUNhdGVnb3J5W2NhdGVnb3J5TmFtZV0gPSAodGhpcy50aW1lQnlDYXRlZ29yeVtj
YXRlZ29yeU5hbWVdIHx8IDApICsgb3duVGltZTsKLSAgICB9Ci19Ci0KLS8qKgotICogQGNvbnN0
cnVjdG9yCiAgKi8KIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3TW9kZVNlbGVjdG9yID0g
ZnVuY3Rpb24oc2VsZWN0Q2FsbGJhY2spCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggZGViZDI4ZmY2NmExZWJiMjkz
ZDk1NWUwOTYyNDlkNTgyZDYyODNhYS4uNTk4NTIyNWYzYWM0YWJiNjA0ODNiMDhkZjA1OTE2NmIx
ZDM3OGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVQYW5lbC5qcwpAQCAtMzgxLDEwICszODEsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAodmVydGljYWxPdmVydmlldyAhPT0g
dGhpcy5fdmVydGljYWxPdmVydmlldykgewogICAgICAgICAgICAgdGhpcy5fdmVydGljYWxPdmVy
dmlldyA9IHZlcnRpY2FsT3ZlcnZpZXc7CiAgICAgICAgICAgICB0aGlzLl9nbHVlUGFyZW50QnV0
dG9uLmRpc2FibGVkID0gdmVydGljYWxPdmVydmlldzsKLSAgICAgICAgICAgIGlmICh2ZXJ0aWNh
bE92ZXJ2aWV3KQorICAgICAgICAgICAgaWYgKHZlcnRpY2FsT3ZlcnZpZXcpIHsKICAgICAgICAg
ICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidGltZWxpbmUtdmVydGljYWwtb3Zl
cnZpZXciKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0aGlzLl9mcmFtZUNv
bnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyKHRoaXMu
X21vZGVsLCB0aGlzLl9vdmVydmlld1BhbmUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9mcmFtZUNvbnRyb2xsZXIuZGlzcG9zZSgpOworICAgICAgICAgICAg
ICAgIHRoaXMuX2ZyYW1lQ29udHJvbGxlciA9IG51bGw7CiAgICAgICAgICAgICAgICAgdGhpcy5l
bGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInRpbWVsaW5lLXZlcnRpY2FsLW92ZXJ2aWV3Iik7Cisg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5zZXRHbHVl
UmVjb3Jkcyh0aGlzLl9nbHVlUGFyZW50QnV0dG9uLnRvZ2dsZWQgJiYgIXZlcnRpY2FsT3ZlcnZp
ZXcpOwogICAgICAgICAgICAgdGhpcy5fcmVwb3B1bGF0ZVJlY29yZHMoKTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDQyOWZiZDhkNmY2ZDcyNDhiYWE4MzMy
NzFkOWQ3NzM0ZWNhYmRlZjEuLjg2MzYyMjVhZDdiNjI1YTQ2NjMxYzBhNjYzYmU4NjAxNGMzZWFh
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTU3NSwxMSArNTc1LDggQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fY3B1VGltZSA9IHRoaXMuX3NlbGZUaW1lOwogCiAgICAgICAgIGlm
ICh0aGlzLl9jaGlsZHJlbikgewotICAgICAgICAgICAgZm9yICh2YXIgaW5kZXggPSB0aGlzLl9j
aGlsZHJlbi5sZW5ndGg7IGluZGV4OyAtLWluZGV4KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGNo
aWxkID0gdGhpcy5fY2hpbGRyZW5baW5kZXggLSAxXTsKLSAgICAgICAgICAgICAgICBmb3IgKHZh
ciBjYXRlZ29yeSBpbiBjYXRlZ29yaWVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZ2dy
ZWdhdGVkU3RhdHNbY2F0ZWdvcnldICs9IGNoaWxkLl9hZ2dyZWdhdGVkU3RhdHNbY2F0ZWdvcnld
OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh2YXIgaW5kZXggPSB0aGlzLl9jaGls
ZHJlbi5sZW5ndGg7IGluZGV4OyAtLWluZGV4KQorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5UaW1lbGluZU1vZGVsLmFnZ3JlZ2F0ZVRpbWVCeUNhdGVnb3JpZXModGhpcy5fYWdncmVnYXRl
ZFN0YXRzLCB0aGlzLl9jaGlsZHJlbltpbmRleCAtIDFdKTsKICAgICAgICAgICAgIGZvciAodmFy
IGNhdGVnb3J5IGluIHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0cykKICAgICAgICAgICAgICAgICB0aGlz
Ll9jcHVUaW1lICs9IHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0c1tjYXRlZ29yeV07CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFy
YyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCBl
NzY4YjBiNzY5YjJkNDlhZDBiYzBlNmI0ZDYzODBkNTE4N2IzNDk2Li4zYzM4ZDE4MTZkNmZlMmE5
MDg1NmFlYzIyM2U1Y2ZjYjc4ZGJjNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0xNTAsNiArMTUwLDcgQEAKICAgICA8ZmlsZT5UZXh0
RWRpdG9yTW9kZWwuanM8L2ZpbGU+CiAgICAgPGZpbGU+VGV4dFByb21wdC5qczwvZmlsZT4KICAg
ICA8ZmlsZT5UZXh0Vmlld2VyLmpzPC9maWxlPgorICAgIDxmaWxlPlRpbWVsaW5lRnJhbWVDb250
cm9sbGVyLmpzPC9maWxlPgogICAgIDxmaWxlPlRpbWVsaW5lTWFuYWdlci5qczwvZmlsZT4KICAg
ICA8ZmlsZT5UaW1lbGluZU1vZGVsLmpzPC9maWxlPgogICAgIDxmaWxlPlRpbWVsaW5lUHJlc2Vu
dGF0aW9uTW9kZWwuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCAyMDkyMmQ5ZGQ5NjhhMDkxZWE3OTRhNmUwYzc1
MGYxZDJkYTdkOWJiLi4wNGZkZWIwYTU5YmMwYjQ3ZmU0NDY0ZjYxMzUyMGEyOThlY2FhMzFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5o
dG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwKQEAgLTE4MSw2ICsxODEsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVsaW5lUGFuZWwuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVs
aW5lT3ZlcnZpZXdQYW5lLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJUaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGVzdENvbnRyb2xsZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkhlbHBTY3Jl
ZW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
IkRpYWxvZy5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134828</attachid>
            <date>2012-03-30 09:30:13 -0700</date>
            <delta_ts>2012-04-02 02:01:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82735-20120330203011.patch</filename>
            <type>text/plain</type>
            <size>25498</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUzNmYyZDZmMzYwYzFl
NDI0Mzg4ZjZlMTE1MTIwYmU2NDU4NzFkYS4uZTNkMzgxN2FjOGRlMmUyNjMzNTU4NDRiMTRkMWNk
MzRiYjI3YTNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTMwICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW3JlZmFjdG9yaW5nXSBmYWN0b3Igb3VyIGZyYW1lIGFnZ3JlZ2F0aW9uIGxvZ2ljIHRvIFRp
bWVsaW5lRnJhbWVDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MjczNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBUaW1lbGluZUZyYW1lQ29udHJvbGxl
ci5qcworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBkaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHk6IGRpdHRvLgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qczogQWRkZWQgdXRpbGl0aWVzIGZv
ciBhZ2dyZWdhdGluZyB0aW1lcyBieSBjYXRlZ29yaWVzLgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuYWdncmVnYXRlVGltZUJ5Q2F0ZWdvcmllcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5hZ2dyZWdhdGVUaW1lRm9yUmVjb3JkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzOiBVc2UgZnJhbWUg
aW5mb3JtYXRpb24gc3VwcGxpZWQgYnkgVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuX3Nob3dUaW1lbGlu
ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlw
ZS5fc2V0VmVydGljYWxPdmVydmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVP
dmVydmlld1BhbmUucHJvdG90eXBlLmFkZEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UaW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlLnVwZGF0ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0aWNhbE92ZXJ2aWV3LnByb3RvdHlwZS5hZGRG
cmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0aWNhbE92ZXJ2aWV3LnBy
b3RvdHlwZS5fYWdncmVnYXRlRnJhbWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlLmdldFdpbmRvd1RpbWVzKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6IENyZWF0ZS9kaXNwb3NlIFRpbWVs
aW5lRnJhbWVDb250cm9sbGVyIHdoZW4gc3dpdGNoaW5nIHRvL2Zyb20gdmVydGljYWwgb3ZlcnZp
ZXcgbW9kZS4KKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5SZWNvcmQucHJvdG90eXBlLmNhbGN1bGF0ZUFnZ3JlZ2F0ZWRTdGF0cyk6IEZhY3RvcmVk
IG91dCBzdGF0aXN0aWNzIGFnZ3JlZ2F0aW9uIHRvIHV0aWxpdGllcyBtZXRob2QgaW4gdGhlIG1v
ZGVsLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzogQWRkZWQgVGlt
ZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sOiBkaXR0by4KKwogMjAxMi0wMy0yOSAgQW5kcmV5IEtvc3lha292ICA8Y2Fz
ZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcHJvdmUgd2luZG93
IHNlbGVjdGlvbiBhY2N1cmFjeSBpbiB2ZXJ0aWNhbCBvdmVydmlldyBvZiB0aW1lbGluZSBwYW5l
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDJhMzhmNzcwOTQ5OWRiODBiNDBjM2IwZGMwMDZkNTM0NzY3
NDRkMGEuLjdiNzNjZTE4YzcwOTE5NTNjYjEwNmE1YzVkYmFkN2Y3ZDNjODY4NzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTYzNDUsNiArNjM0NSw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9UZXh0RWRpdG9yTW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvVGV4dFByb21wdC5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9U
ZXh0Vmlld2VyLmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
RnJhbWVDb250cm9sbGVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lTWFuYWdlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU1vZGVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwuanMnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA1ZTFkZGZhMDdkY2IzNjE5ZTAyNzcwN2IwYTQ5MDc2MDlmMjMz
MTFkLi5mY2U1ODhiZDNhOTFhNDcwYmVjYzJjMTU3ODJkZGU1ZWY5MjI5NWUzIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzQxNDksNiArNzQx
NDksMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcZnJvbnQtZW5kXFRpbWVsaW5lTWFuYWdlci5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5w
eSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQppbmRleCBl
YTkzN2ZhNWRiNDQ5NjU4ODYzZmU5OTIzNmI2ZWNmMmYwODU3ODk0Li5mZWVlOGQ4MGM2NmVjZDBl
YTg1NzdhNjNjNDNmMGI4MDg0MDhiYzNkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC04NCw3ICs4NCw2IEBAIG1vZHVsZXMgPSBbCiAgICAg
ICAgICAgICAiU25pcHBldHNNb2RlbC5qcyIsCiAgICAgICAgICAgICAiVGltZWxpbmVNYW5hZ2Vy
LmpzIiwKICAgICAgICAgICAgICJUaW1lbGluZU1vZGVsLmpzIiwKLSAgICAgICAgICAgICJUaW1l
bGluZVByZXNlbnRhdGlvbk1vZGVsLmpzIiwKICAgICAgICAgICAgICJSYXdTb3VyY2VDb2RlLmpz
IiwKICAgICAgICAgICAgICJSZW1vdGVPYmplY3QuanMiLAogICAgICAgICAgICAgIlJlc291cmNl
LmpzIiwKQEAgLTIyOSw2ICsyMjgsOCBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAgIk1lbW9y
eVN0YXRpc3RpY3MuanMiLAogICAgICAgICAgICAgIlRpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIiwK
ICAgICAgICAgICAgICJUaW1lbGluZVBhbmVsLmpzIiwKKyAgICAgICAgICAgICJUaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLmpzIiwKKyAgICAgICAgICAgICJUaW1lbGluZUZyYW1lQ29udHJvbGxl
ci5qcyIKICAgICAgICAgXQogICAgIH0sCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmY2NTIzMWFkMmY5Njk3YzMwYWEwMTU2YWNiODIyNDJiMTRkZmNjYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxp
bmVGcmFtZUNvbnRyb2xsZXIuanMKQEAgLTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBjb25zdHJ1Y3Rv
cgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbH0gbW9kZWwKKyAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lfSBvdmVydmlld1BhbmUKKyAqLwor
V2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyID0gZnVuY3Rpb24obW9kZWwsIG92
ZXJ2aWV3UGFuZSkKK3sKKyAgICB0aGlzLl9sYXN0RnJhbWUgPSBudWxsOworICAgIHRoaXMuX21v
ZGVsID0gbW9kZWw7CisgICAgdGhpcy5fb3ZlcnZpZXdQYW5lID0gb3ZlcnZpZXdQYW5lOworICAg
IHRoaXMuX21vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwu
RXZlbnRzLlJlY29yZEFkZGVkLCB0aGlzLl9vblJlY29yZEFkZGVkLCB0aGlzKTsKKyAgICB0aGlz
Ll9tb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLkV2ZW50
cy5SZWNvcmRzQ2xlYXJlZCwgdGhpcy5fb25SZWNvcmRzQ2xlYXJlZCwgdGhpcyk7CisKKyAgICB2
YXIgcmVjb3JkcyA9IG1vZGVsLnJlY29yZHM7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNv
cmRzLmxlbmd0aDsgKytpKQorICAgICAgICB0aGlzLl9hZGRSZWNvcmQocmVjb3Jkc1tpXSk7Cit9
CisKK1dlYkluc3BlY3Rvci5UaW1lbGluZUZyYW1lQ29udHJvbGxlci5wcm90b3R5cGUgPSB7Cisg
ICAgX29uUmVjb3JkQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5f
YWRkUmVjb3JkKGV2ZW50LmRhdGEpOworICAgIH0sCisKKyAgICBfb25SZWNvcmRzQ2xlYXJlZDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fbGFzdEZyYW1lID0gbnVsbDsKKyAgICB9
LAorCisgICAgX2FkZFJlY29yZDogZnVuY3Rpb24ocmVjb3JkKQorICAgIHsKKyAgICAgICAgaWYg
KHJlY29yZC50eXBlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJl
Z2luRnJhbWUpCisgICAgICAgICAgICB0aGlzLl9mbHVzaEZyYW1lKHJlY29yZCk7CisgICAgICAg
IGVsc2UgaWYgKHRoaXMuX2xhc3RGcmFtZSkgeworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lTW9kZWwuYWdncmVnYXRlVGltZUZvclJlY29yZCh0aGlzLl9sYXN0RnJhbWUudGltZUJ5
Q2F0ZWdvcnksIHJlY29yZCk7CisgICAgICAgICAgICB0aGlzLl9sYXN0RnJhbWUuY3B1VGltZSAr
PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5kdXJhdGlvbkluU2Vjb25kcyhyZWNvcmQpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm8gZnJhbWUgcmVjb3JkcyBzbyBmYXIg
LS0gZ2VuZXJhdGUgYSBzeW50aGV0aWMgZnJhbWUgcGVyIGVhY2ggdG9wLWxldmVsIHJlY29yZCwg
YnV0IG9ubHkKKyAgICAgICAgICAgIC8vIGRpc3BhdGNoIHRoZXNlIHRvIHRoZSBvdmVydmlldy4K
KyAgICAgICAgICAgIHRoaXMuX292ZXJ2aWV3UGFuZS5hZGRGcmFtZSh0aGlzLl9jcmVhdGVTeW50
aGV0aWNGcmFtZShyZWNvcmQpKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfZmx1c2hGcmFt
ZTogZnVuY3Rpb24ocmVjb3JkKQorICAgIHsKKyAgICAgICAgdmFyIGZyYW1lQmVnaW5UaW1lID0g
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCk7Cisg
ICAgICAgIGlmICh0aGlzLl9sYXN0RnJhbWUpIHsKKyAgICAgICAgICAgIHRoaXMuX2xhc3RGcmFt
ZS5lbmRUaW1lID0gZnJhbWVCZWdpblRpbWU7CisgICAgICAgICAgICB0aGlzLl9vdmVydmlld1Bh
bmUuYWRkRnJhbWUodGhpcy5fbGFzdEZyYW1lKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9s
YXN0RnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWUoKTsKKyAgICAgICAgdGhp
cy5fbGFzdEZyYW1lLnN0YXJ0VGltZSA9IGZyYW1lQmVnaW5UaW1lOworICAgIH0sCisKKyAgICBf
Y3JlYXRlU3ludGhldGljRnJhbWU6IGZ1bmN0aW9uKHJlY29yZCkKKyAgICB7CisgICAgICAgIGNv
bnNvbGUuZXJyb3IoInNoeW50aGV0aWMgZnJhbWUiKTsKKyAgICAgICAgdmFyIGZyYW1lID0gbmV3
IFdlYkluc3BlY3Rvci5UaW1lbGluZUZyYW1lKCk7CisgICAgICAgIGZyYW1lLnN0YXJ0VGltZSA9
IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOwor
ICAgICAgICBmcmFtZS5lbmRUaW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuZW5kVGlt
ZUluU2Vjb25kcyhyZWNvcmQpOworICAgICAgICBmcmFtZS5jcHVUaW1lID0gV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuZHVyYXRpb25JblNlY29uZHMocmVjb3JkKTsKKyAgICAgICAgcmV0dXJu
IGZyYW1lOworICAgIH0sCisKKyAgICBkaXNwb3NlOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICB0aGlzLl9tb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLkV2ZW50cy5SZWNvcmRBZGRlZCwgdGhpcy5fb25SZWNvcmRBZGRlZCwgdGhpcyk7CisgICAg
ICAgIHRoaXMuX21vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
TW9kZWwuRXZlbnRzLlJlY29yZHNDbGVhcmVkLCB0aGlzLl9vblJlY29yZHNDbGVhcmVkLCB0aGlz
KTsKKyAgICB9Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KK1dlYkluc3BlY3Rvci5U
aW1lbGluZUZyYW1lID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMudGltZUJ5Q2F0ZWdvcnkgPSB7
fTsKKyAgICB0aGlzLmNwdVRpbWUgPSAwOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1vZGVsLmpzCmluZGV4IGFlM2Q2YmRlODY0MTM3OWQ2
YWFkMjc1YjU0YjgwYTczYjVhMmE0MzkuLjNjYTA1ZWU0MDEyZGRiZDE0NDEzYTNkMTIzNmVlMTk4
ZGVlNDUzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGltZWxpbmVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RpbWVsaW5lTW9kZWwuanMKQEAgLTEwMCw2ICsxMDAsMzAgQEAgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lTW9kZWwuZHVyYXRpb25JblNlY29uZHMgPSBmdW5jdGlvbihyZWNvcmQpCiAgICAgcmV0dXJu
IFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmVuZFRpbWVJblNlY29uZHMocmVjb3JkKSAtIFdl
Ykluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnN0YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOwogfQog
CitXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5hZ2dyZWdhdGVUaW1lQnlDYXRlZ29yaWVzID0g
ZnVuY3Rpb24odG90YWwsIGluY3JlbWVudCkKK3sKKyAgICB2YXIgY2F0ZWdvcmllcyA9IE9iamVj
dC5rZXlzKGluY3JlbWVudCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRlZ29yaWVzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgIHZhciBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbaV07CisgICAg
ICAgIHZhciB2YWx1ZSA9IHRvdGFsW2NhdGVnb3J5XSB8fCAwOworICAgICAgICB2YWx1ZSArPSBp
bmNyZW1lbnRbY2F0ZWdvcnldOworICAgICAgICB0b3RhbFtjYXRlZ29yeV0gPSB2YWx1ZTsKKyAg
ICB9Cit9CisKK1dlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmFnZ3JlZ2F0ZVRpbWVGb3JSZWNv
cmQgPSBmdW5jdGlvbih0b3RhbCwgcmF3UmVjb3JkKQoreworICAgIHZhciBjaGlsZHJlblRpbWUg
PSAwOworICAgIHZhciBjaGlsZHJlbiA9IHJhd1JlY29yZC5jaGlsZHJlbiB8fCBbXTsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSAgeworICAgICAgICBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5hZ2dyZWdhdGVUaW1lRm9yUmVjb3JkKHRvdGFsLCBjaGls
ZHJlbltpXSk7CisgICAgICAgIGNoaWxkcmVuVGltZSArPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVN
b2RlbC5kdXJhdGlvbkluU2Vjb25kcyhjaGlsZHJlbltpXSk7CisgICAgfQorICAgIHZhciBjYXRl
Z29yeU5hbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5yZWNvcmRT
dHlsZShyYXdSZWNvcmQpLmNhdGVnb3J5Lm5hbWU7CisgICAgdmFyIG93blRpbWUgPSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5kdXJhdGlvbkluU2Vjb25kcyhyYXdSZWNvcmQpIC0gY2hpbGRy
ZW5UaW1lOworICAgIHRvdGFsW2NhdGVnb3J5TmFtZV0gPSAodG90YWxbY2F0ZWdvcnlOYW1lXSB8
fCAwKSArIG93blRpbWU7Cit9CisKIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICBzdGFydFJlY29yZDogZnVuY3Rpb24oKQogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5l
LmpzCmluZGV4IDExZjdjMDhkNTEwYTllMDdkNmJlZDI2MmNlOGM5YTI3NWViMTgyNjkuLmI1ZWU2
MmVkNjIwY2E3YjE2NjNmNTA2ODA1MTllOGI3OWUwZmJkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5q
cwpAQCAtMTQyLDcgKzE0Miw2IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2hlYXBHcmFwaC5oaWRlKCk7CiAgICAgICAgIHRo
aXMuX3NldFZlcnRpY2FsT3ZlcnZpZXcodGhpcy5fY3VycmVudE1vZGUgPT09IFdlYkluc3BlY3Rv
ci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5Nb2RlLkV2ZW50c1ZlcnRpY2FsKTsKICAgICAgICAgdGhp
cy5fb3ZlcnZpZXdHcmlkLml0ZW1zR3JhcGhzRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRk
ZW4iKTsKLSAgICAgICAgdGhpcy5fdXBkYXRlQ2F0ZWdvcnlTdHJpcHMoKTsKICAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQ
YW5lLkV2ZW50cy5Nb2RlQ2hhbmdlZCwgdGhpcy5fY3VycmVudE1vZGUpOwogICAgIH0sCiAKQEAg
LTE2OCw2ICsxNjcsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90
eXBlID0gewogICAgICAgICAgICAgdGhpcy5fdmVydGljYWxPdmVydmlldy5kZXRhY2goKTsKICAg
ICAgICAgICAgIHRoaXMuX3ZlcnRpY2FsT3ZlcnZpZXcgPSBudWxsOwogICAgICAgICAgICAgdGhp
cy5fb3ZlcnZpZXdHcmlkLml0ZW1zR3JhcGhzRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJoaWRk
ZW4iKTsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNhdGVnb3J5U3RyaXBzKCk7CiAgICAgICAg
IH0KICAgICB9LAogCkBAIC0yNzcsNiArMjc3LDE1IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92
ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3RvcFBhbmVTaWRlYmFyRWxl
bWVudC5zdHlsZS53aWR0aCA9IHdpZHRoICsgInB4IjsKICAgICB9LAogCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGltZWxpbmVGcmFtZX0gZnJhbWUKKyAgICAgKi8KKyAg
ICBhZGRGcmFtZTogZnVuY3Rpb24oZnJhbWUpCisgICAgeworICAgICAgICB0aGlzLl92ZXJ0aWNh
bE92ZXJ2aWV3LmFkZEZyYW1lKGZyYW1lKTsKKyAgICAgICAgdGhpcy5fc2NoZWR1bGVSZWZyZXNo
KCk7CisgICAgfSwKKwogICAgIF9yZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhp
cy5fd2luZG93U3RhcnRUaW1lID0gMDsKQEAgLTgzNCwzMyArODQzLDE4IEBAIFdlYkluc3BlY3Rv
ci5UaW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlID0gewogICAgIHJlc2V0OiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZWNvcmRzUGVyQmFyID0gMTsKLSAgICAgICAg
dGhpcy5fZnJhbWVNb2RlID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2JhclRpbWVzID0gW107CiAg
ICAgICAgIHRoaXMuX2xvbmdlc3RCYXJUaW1lID0gMDsKLSAgICAgICAgdGhpcy5fYWdncmVnYXRl
ZFJlY29yZHMgPSBbXTsKKyAgICAgICAgdGhpcy5fZnJhbWVzID0gW107CiAgICAgfSwKIAogICAg
IHVwZGF0ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHJlY29yZHMgPSBbXTsKLSAg
ICAgICAgdmFyIGZyYW1lQ291bnQgPSAwOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRo
aXMuX2FnZ3JlZ2F0ZWRSZWNvcmRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcmVj
b3JkID0gdGhpcy5fYWdncmVnYXRlZFJlY29yZHNbaV07Ci0gICAgICAgICAgICBpZiAocmVjb3Jk
LmNhdGVnb3J5LmhpZGRlbikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IGlmIChyZWNvcmQudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlw
ZS5CZWdpbkZyYW1lIHx8IChmcmFtZUNvdW50ICYmIChpICsgMSA9PT0gcmVjb3Jkcy5sZW5ndGgp
KSkKLSAgICAgICAgICAgICAgICArK2ZyYW1lQ291bnQ7Ci0gICAgICAgICAgICByZWNvcmRzLnB1
c2gocmVjb3JkKTsKLSAgICAgICAgfQotICAgICAgICAvLyBJZiB3ZSBoYXZlIGZyYW1lcywgYWdn
cmVnYXRlIGJ5IGZyYW1lczsgb3RoZXJ3aXNlLCBqdXN0IHNob3cgdG9wLWxldmVsIHJlY29yZHMu
Ci0gICAgICAgIHZhciByZWNvcmRDb3VudCA9IGZyYW1lQ291bnQgfHwgcmVjb3Jkcy5sZW5ndGg7
Ci0KICAgICAgICAgY29uc3QgbWluQmFyV2lkdGggPSA0OwotICAgICAgICB0aGlzLl9yZWNvcmRz
UGVyQmFyID0gTWF0aC5tYXgoMSwgcmVjb3JkQ291bnQgKiBtaW5CYXJXaWR0aCAvIHRoaXMuZWxl
bWVudC5jbGllbnRXaWR0aCk7Ci0gICAgICAgIHZhciBudW1iZXJPZkJhcnMgPSBNYXRoLmNlaWwo
cmVjb3JkQ291bnQgLyB0aGlzLl9yZWNvcmRzUGVyQmFyKTsKKyAgICAgICAgdmFyIGZyYW1lc1Bl
ckJhciA9IE1hdGgubWF4KDEsIHRoaXMuX2ZyYW1lcy5sZW5ndGggKiBtaW5CYXJXaWR0aCAvIHRo
aXMuZWxlbWVudC5jbGllbnRXaWR0aCk7CiAgICAgICAgIHRoaXMuX2JhclRpbWVzID0gW107CiAg
ICAgICAgIHRoaXMuX2xvbmdlc3RCYXJUaW1lID0gMDsKLSAgICAgICAgdmFyIGJhckhlaWdodHMg
PSBmcmFtZUNvdW50ID8gdGhpcy5fYWdncmVnYXRlRnJhbWVzKHJlY29yZHMsIG51bWJlck9mQmFy
cykgOiB0aGlzLl9hZ2dyZWdhdGVSZWNvcmRzKHJlY29yZHMsIG51bWJlck9mQmFycyk7CisgICAg
ICAgIHZhciBiYXJIZWlnaHRzID0gdGhpcy5fYWdncmVnYXRlRnJhbWVzKGZyYW1lc1BlckJhcik7
CiAKICAgICAgICAgY29uc3QgcGFkZGluZ1RvcCA9IDQ7CiAgICAgICAgIHZhciBzY2FsZSA9ICh0
aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gcGFkZGluZ1RvcCkgLyB0aGlzLl9sb25nZXN0QmFy
VGltZTsKQEAgLTg2OCwxMDYgKzg2MiwzNSBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0aWNh
bE92ZXJ2aWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVuZGVyQmFycyhiYXJIZWln
aHRzLCBzY2FsZSk7CiAgICAgfSwKIAotICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkUmVjb3JkcyA9IFtdOwotICAgICAgICB2YXIgcmVjb3Jk
cyA9IHRoaXMuX21vZGVsLnJlY29yZHM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRSZWNvcmRzLnB1
c2gobmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZ3JlZ2F0ZWRSZWNvcmQocmVjb3Jkc1tpXSkp
OwotCi0gICAgICAgIHRoaXMudXBkYXRlKCk7Ci0gICAgICAgIHRoaXMuX21vZGVsLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuRXZlbnRzLlJlY29yZEFkZGVkLCB0
aGlzLl9vblJlY29yZEFkZGVkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5fbW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5FdmVudHMuUmVjb3Jkc0NsZWFyZWQs
IHRoaXMucmVzZXQsIHRoaXMpOwotICAgIH0sCi0KLSAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgdGhpcy5fbW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuVGltZWxpbmVNb2RlbC5FdmVudHMuUmVjb3JkQWRkZWQsIHRoaXMuX29uUmVjb3JkQWRkZWQs
IHRoaXMpOwotICAgICAgICB0aGlzLl9tb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU1vZGVsLkV2ZW50cy5SZWNvcmRzQ2xlYXJlZCwgdGhpcy5yZXNldCwgdGhp
cyk7Ci0gICAgfSwKLQogICAgIC8qKgotICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rv
ci5UaW1lbGluZUFnZ3JlZ2F0ZWRSZWNvcmQ+fSByZWNvcmRzCi0gICAgICogQHBhcmFtIHtudW1i
ZXJ9IG51bWJlck9mQmFycworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWV9IGZyYW1lCiAgICAgICovCi0gICAgX2FnZ3JlZ2F0ZUZyYW1lczogZnVuY3Rpb24ocmVjb3Jk
cywgbnVtYmVyT2ZCYXJzKQorICAgIGFkZEZyYW1lOiBmdW5jdGlvbihmcmFtZSkKICAgICB7Ci0g
ICAgICAgIHZhciBzdGF0aXN0aWNzID0gW107Ci0gICAgICAgIGZvciAodmFyIGJhck51bWJlciA9
IDAsIGN1cnJlbnRSZWNvcmQgPSAwLCBjdXJyZW50RnJhbWUgPSAwOwotICAgICAgICAgICAgIGJh
ck51bWJlciA8IG51bWJlck9mQmFycyAmJiBjdXJyZW50UmVjb3JkIDwgcmVjb3Jkcy5sZW5ndGg7
ICsrYmFyTnVtYmVyKSB7Ci0gICAgICAgICAgICB2YXIgbGFzdEZyYW1lID0gTWF0aC5mbG9vcigo
YmFyTnVtYmVyICsgMSkgKiB0aGlzLl9yZWNvcmRzUGVyQmFyKTsKLSAgICAgICAgICAgIHZhciBi
YXJTdGFydFRpbWUgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmRdLnN0YXJ0VGltZTsKLSAgICAgICAg
ICAgIHZhciBsb25nZXN0RnJhbWVTdGF0aXN0aWNzOwotICAgICAgICAgICAgdmFyIGxvbmdlc3RG
cmFtZVRpbWUgPSAwOwotCi0gICAgICAgICAgICBmb3IgKDsgY3VycmVudEZyYW1lIDwgbGFzdEZy
YW1lICYmIGN1cnJlbnRSZWNvcmQgPCByZWNvcmRzLmxlbmd0aDsgKytjdXJyZW50RnJhbWUpIHsK
LSAgICAgICAgICAgICAgICBpZiAocmVjb3Jkc1tjdXJyZW50UmVjb3JkXS50eXBlID09PSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJlZ2luRnJhbWUpCi0gICAgICAgICAg
ICAgICAgICAgIGN1cnJlbnRSZWNvcmQrKzsKLSAgICAgICAgICAgICAgICB2YXIgZnJhbWVTdGF0
aXN0aWNzID0ge307Ci0gICAgICAgICAgICAgICAgdmFyIGZyYW1lSW5mbyA9IHRoaXMuX2FnZ3Jl
Z2F0ZUZyYW1lU3RhdGlzdGljcyhyZWNvcmRzLCBjdXJyZW50UmVjb3JkLCBmcmFtZVN0YXRpc3Rp
Y3MpOwotICAgICAgICAgICAgICAgIGN1cnJlbnRSZWNvcmQgKz0gZnJhbWVJbmZvLnJlY29yZENv
dW50OwotICAgICAgICAgICAgICAgIGlmIChmcmFtZUluZm8udG90YWxUaW1lID4gbG9uZ2VzdEZy
YW1lVGltZSkgewotICAgICAgICAgICAgICAgICAgICBsb25nZXN0RnJhbWVTdGF0aXN0aWNzID0g
ZnJhbWVTdGF0aXN0aWNzOwotICAgICAgICAgICAgICAgICAgICBsb25nZXN0RnJhbWVUaW1lID0g
ZnJhbWVJbmZvLnRvdGFsVGltZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB2YXIgYmFyRW5kVGltZSA9IHJlY29yZHNbY3VycmVudFJlY29yZCAtIDFdLmVu
ZFRpbWU7Ci0gICAgICAgICAgICBpZiAobG9uZ2VzdEZyYW1lU3RhdGlzdGljcykgewotICAgICAg
ICAgICAgICAgIHRoaXMuX2xvbmdlc3RCYXJUaW1lID0gTWF0aC5tYXgodGhpcy5fbG9uZ2VzdEJh
clRpbWUsIGxvbmdlc3RGcmFtZVRpbWUpOwotICAgICAgICAgICAgICAgIHN0YXRpc3RpY3MucHVz
aChsb25nZXN0RnJhbWVTdGF0aXN0aWNzKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9iYXJUaW1l
cy5wdXNoKHsgc3RhcnRUaW1lOiBiYXJTdGFydFRpbWUsIGVuZFRpbWU6IGJhckVuZFRpbWUgfSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHN0YXRpc3RpY3M7Cisg
ICAgICAgIHRoaXMuX2ZyYW1lcy5wdXNoKGZyYW1lKTsKICAgICB9LAogCiAgICAgLyoqCi0gICAg
ICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdncmVnYXRlZFJlY29yZD59
IHJlY29yZHMKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRJbmRleAotICAgICAqIEBwYXJh
bSB7T2JqZWN0fSBzdGF0aXN0aWNzCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGZyYW1lc1BlckJh
cgogICAgICAqLwotICAgIF9hZ2dyZWdhdGVGcmFtZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKHJlY29y
ZHMsIHN0YXJ0SW5kZXgsIHN0YXRpc3RpY3MpCi0gICAgewotICAgICAgICB2YXIgdG90YWxUaW1l
ID0gMDsKLSAgICAgICAgZm9yICh2YXIgaW5kZXggPSBzdGFydEluZGV4OyBpbmRleCA8IHJlY29y
ZHMubGVuZ3RoOyArK2luZGV4KSB7Ci0gICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVjb3Jkc1tp
bmRleF07Ci0gICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UaW1l
bGluZU1vZGVsLlJlY29yZFR5cGUuQmVnaW5GcmFtZSkKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIHZhciBjYXRlZ29yaWVzID0gT2JqZWN0LmtleXMocmVjb3JkLnRpbWVCeUNh
dGVnb3J5KTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0ZWdvcmllcy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBjYXRlZ29yeSA9IGNhdGVnb3JpZXNbaV07
Ci0gICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gc3RhdGlzdGljc1tjYXRlZ29yeV0gfHwgMDsK
LSAgICAgICAgICAgICAgICB2YWx1ZSArPSByZWNvcmQudGltZUJ5Q2F0ZWdvcnlbY2F0ZWdvcnld
OwotICAgICAgICAgICAgICAgIHRvdGFsVGltZSArPSByZWNvcmQudGltZUJ5Q2F0ZWdvcnlbY2F0
ZWdvcnldOwotICAgICAgICAgICAgICAgIHN0YXRpc3RpY3NbY2F0ZWdvcnldID0gdmFsdWU7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgIHRv
dGFsVGltZTogdG90YWxUaW1lLAotICAgICAgICAgICAgcmVjb3JkQ291bnQ6IGluZGV4IC0gc3Rh
cnRJbmRleAotICAgICAgICB9Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7QXJy
YXkuPFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZ3JlZ2F0ZWRSZWNvcmQ+fSByZWNvcmRzCi0gICAg
ICogQHBhcmFtIHtudW1iZXJ9IG51bWJlck9mQmFycwotICAgICAqLwotICAgIF9hZ2dyZWdhdGVS
ZWNvcmRzOiBmdW5jdGlvbihyZWNvcmRzLCBudW1iZXJPZkJhcnMpCisgICAgX2FnZ3JlZ2F0ZUZy
YW1lczogZnVuY3Rpb24oZnJhbWVzUGVyQmFyKQogICAgIHsKICAgICAgICAgdmFyIHN0YXRpc3Rp
Y3MgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgYmFyTnVtYmVyID0gMCwgY3VycmVudFJlY29yZCA9
IDA7IGJhck51bWJlciA8IG51bWJlck9mQmFycyAmJiBjdXJyZW50UmVjb3JkIDwgcmVjb3Jkcy5s
ZW5ndGg7ICsrYmFyTnVtYmVyKSB7Ci0gICAgICAgICAgICB2YXIgYmFyU3RhcnRUaW1lID0gcmVj
b3Jkc1tjdXJyZW50UmVjb3JkXS5zdGFydFRpbWU7Ci0gICAgICAgICAgICB2YXIgbG9uZ2VzdFJl
Y29yZCA9IHJlY29yZHNbY3VycmVudFJlY29yZF07Ci0gICAgICAgICAgICB2YXIgbGFzdEluZGV4
ID0gTWF0aC5taW4oTWF0aC5mbG9vcigoYmFyTnVtYmVyICsgMSkgKiB0aGlzLl9yZWNvcmRzUGVy
QmFyKSwgcmVjb3Jkcy5sZW5ndGgpOwotICAgICAgICAgICAgZm9yICgrK2N1cnJlbnRSZWNvcmQ7
IGN1cnJlbnRSZWNvcmQgPCBsYXN0SW5kZXg7ICsrY3VycmVudFJlY29yZCkgewotICAgICAgICAg
ICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmRdOwotICAgICAgICAgICAg
ICAgIGlmIChsb25nZXN0UmVjb3JkLmR1cmF0aW9uIDwgcmVjb3JkLmR1cmF0aW9uKQotICAgICAg
ICAgICAgICAgICAgICBsb25nZXN0UmVjb3JkID0gcmVjb3JkOworICAgICAgICBmb3IgKHZhciBi
YXJOdW1iZXIgPSAwLCBjdXJyZW50RnJhbWUgPSAwOyBjdXJyZW50RnJhbWUgPCB0aGlzLl9mcmFt
ZXMubGVuZ3RoOyArK2Jhck51bWJlcikgeworICAgICAgICAgICAgdmFyIGJhclN0YXJ0VGltZSA9
IHRoaXMuX2ZyYW1lc1tjdXJyZW50RnJhbWVdLnN0YXJ0VGltZTsKKyAgICAgICAgICAgIHZhciBs
b25nZXN0RnJhbWUgPSBudWxsOworCisgICAgICAgICAgICBmb3IgKHZhciBsYXN0RnJhbWUgPSBN
YXRoLm1pbihNYXRoLmZsb29yKChiYXJOdW1iZXIgKyAxKSAqIGZyYW1lc1BlckJhciksIHRoaXMu
X2ZyYW1lcy5sZW5ndGgpOyAKKyAgICAgICAgICAgICAgICAgY3VycmVudEZyYW1lIDwgbGFzdEZy
YW1lOyArK2N1cnJlbnRGcmFtZSkgeworICAgICAgICAgICAgICAgIGlmICghbG9uZ2VzdEZyYW1l
IHx8IGxvbmdlc3RGcmFtZS5jcHVUaW1lIDwgdGhpcy5fZnJhbWVzW2N1cnJlbnRGcmFtZV0uY3B1
VGltZSkKKyAgICAgICAgICAgICAgICAgICAgbG9uZ2VzdEZyYW1lID0gdGhpcy5fZnJhbWVzW2N1
cnJlbnRGcmFtZV07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgYmFyRW5kVGltZSA9
IHRoaXMuX2ZyYW1lc1tjdXJyZW50RnJhbWUgLSAxXS5lbmRUaW1lOworICAgICAgICAgICAgaWYg
KGxvbmdlc3RGcmFtZSkgeworICAgICAgICAgICAgICAgIHRoaXMuX2xvbmdlc3RCYXJUaW1lID0g
TWF0aC5tYXgodGhpcy5fbG9uZ2VzdEJhclRpbWUsIGxvbmdlc3RGcmFtZS5jcHVUaW1lKTsKKyAg
ICAgICAgICAgICAgICBzdGF0aXN0aWNzLnB1c2gobG9uZ2VzdEZyYW1lLnRpbWVCeUNhdGVnb3J5
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9iYXJUaW1lcy5wdXNoKHsgc3RhcnRUaW1lOiBiYXJT
dGFydFRpbWUsIGVuZFRpbWU6IGJhckVuZFRpbWUgfSk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB2YXIgYmFyRW5kVGltZSA9IHJlY29yZHNbY3VycmVudFJlY29yZCAtIDFdLmVuZFRpbWU7
Ci0gICAgICAgICAgICBzdGF0aXN0aWNzLnB1c2gobG9uZ2VzdFJlY29yZC50aW1lQnlDYXRlZ29y
eSk7Ci0gICAgICAgICAgICB0aGlzLl9sb25nZXN0QmFyVGltZSA9IE1hdGgubWF4KHRoaXMuX2xv
bmdlc3RCYXJUaW1lLCBsb25nZXN0UmVjb3JkLmR1cmF0aW9uKTsKLSAgICAgICAgICAgIHRoaXMu
X2JhclRpbWVzLnB1c2goeyBzdGFydFRpbWU6IGJhclN0YXJ0VGltZSwgZW5kVGltZTogYmFyRW5k
VGltZSB9KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gc3RhdGlzdGljczsKICAgICB9LApA
QCAtMTAyNSwxMSArOTQ4LDYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmVydGljYWxPdmVydmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzdGFydFRpbWU6IGZpcnN0QmFyID49IHRoaXMu
X2JhclRpbWVzLmxlbmd0aCA/IEluZmluaXR5IDogdGhpcy5fYmFyVGltZXNbZmlyc3RCYXJdLnN0
YXJ0VGltZSwKICAgICAgICAgICAgIGVuZFRpbWU6IHJpZ2h0T2Zmc2V0ICsgc25hcFRvUmlnaHRU
b2xlcmFuY2VQaXhlbHMgPiB3aW5kb3dTcGFuID8gSW5maW5pdHkgOiB0aGlzLl9iYXJUaW1lc1ts
YXN0QmFyXS5lbmRUaW1lCiAgICAgICAgIH0KLSAgICB9LAotCi0gICAgX29uUmVjb3JkQWRkZWQ6
IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5fYWdncmVnYXRlZFJlY29yZHMu
cHVzaChuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdncmVnYXRlZFJlY29yZChldmVudC5kYXRh
KSk7CiAgICAgfQogfQogCkBAIC0xMDM3LDM5ICs5NTUsNiBAQCBXZWJJbnNwZWN0b3IuVGltZWxp
bmVWZXJ0aWNhbE92ZXJ2aWV3LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVmll
dy5wcgogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICogQHBhcmFtIHtPYmplY3R9IHJhd1JlY29y
ZAotICovCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2dyZWdhdGVkUmVjb3JkID0gZnVuY3Rpb24o
cmF3UmVjb3JkKQotewotICAgIHRoaXMudGltZUJ5Q2F0ZWdvcnkgPSB7fTsKLSAgICB0aGlzLmNh
dGVnb3J5ID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcnlG
b3JSZWNvcmQocmF3UmVjb3JkKTsKLSAgICB0aGlzLnR5cGUgPSByYXdSZWNvcmQudHlwZTsKLSAg
ICB0aGlzLl9hZ2dyZWdhdGVTdGF0aXN0aWNzKHJhd1JlY29yZCk7Ci0gICAgdGhpcy5zdGFydFRp
bWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5zdGFydFRpbWVJblNlY29uZHMocmF3UmVj
b3JkKTsKLSAgICB0aGlzLmVuZFRpbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5lbmRU
aW1lSW5TZWNvbmRzKHJhd1JlY29yZCk7Ci0gICAgdGhpcy5kdXJhdGlvbiA9IHRoaXMuZW5kVGlt
ZSAtIHRoaXMuc3RhcnRUaW1lOwotfQotCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2dyZWdhdGVk
UmVjb3JkLnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge09iamVjdH0gcmF3
UmVjb3JkCi0gICAgICovCi0gICAgX2FnZ3JlZ2F0ZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKHJhd1Jl
Y29yZCkKLSAgICB7Ci0gICAgICAgIHZhciBjaGlsZHJlblRpbWUgPSAwOwotICAgICAgICB2YXIg
Y2hpbGRyZW4gPSByYXdSZWNvcmQuY2hpbGRyZW4gfHwgW107Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpICB7Ci0gICAgICAgICAgICB0aGlzLl9hZ2dy
ZWdhdGVTdGF0aXN0aWNzKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgICAgIGNoaWxkcmVuVGltZSAr
PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5kdXJhdGlvbkluU2Vjb25kcyhjaGlsZHJlbltp
XSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGNhdGVnb3J5TmFtZSA9IFdlYkluc3BlY3Rvci5U
aW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnJlY29yZFN0eWxlKHJhd1JlY29yZCkuY2F0ZWdvcnku
bmFtZTsKLSAgICAgICAgdmFyIG93blRpbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5k
dXJhdGlvbkluU2Vjb25kcyhyYXdSZWNvcmQpIC0gY2hpbGRyZW5UaW1lOwotICAgICAgICB0aGlz
LnRpbWVCeUNhdGVnb3J5W2NhdGVnb3J5TmFtZV0gPSAodGhpcy50aW1lQnlDYXRlZ29yeVtjYXRl
Z29yeU5hbWVdIHx8IDApICsgb3duVGltZTsKLSAgICB9Ci19Ci0KLS8qKgotICogQGNvbnN0cnVj
dG9yCiAgKi8KIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3TW9kZVNlbGVjdG9yID0gZnVu
Y3Rpb24oc2VsZWN0Q2FsbGJhY2spCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXggZGViZDI4ZmY2NmExZWJiMjkzZDk1
NWUwOTYyNDlkNTgyZDYyODNhYS4uNTk4NTIyNWYzYWM0YWJiNjA0ODNiMDhkZjA1OTE2NmIxZDM3
OGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVQYW5lbC5qcwpAQCAtMzgxLDEwICszODEsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAodmVydGljYWxPdmVydmlldyAhPT0gdGhp
cy5fdmVydGljYWxPdmVydmlldykgewogICAgICAgICAgICAgdGhpcy5fdmVydGljYWxPdmVydmll
dyA9IHZlcnRpY2FsT3ZlcnZpZXc7CiAgICAgICAgICAgICB0aGlzLl9nbHVlUGFyZW50QnV0dG9u
LmRpc2FibGVkID0gdmVydGljYWxPdmVydmlldzsKLSAgICAgICAgICAgIGlmICh2ZXJ0aWNhbE92
ZXJ2aWV3KQorICAgICAgICAgICAgaWYgKHZlcnRpY2FsT3ZlcnZpZXcpIHsKICAgICAgICAgICAg
ICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygidGltZWxpbmUtdmVydGljYWwtb3ZlcnZp
ZXciKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0aGlzLl9mcmFtZUNvbnRy
b2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyKHRoaXMuX21v
ZGVsLCB0aGlzLl9vdmVydmlld1BhbmUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9mcmFtZUNvbnRyb2xsZXIuZGlzcG9zZSgpOworICAgICAgICAgICAgICAg
IHRoaXMuX2ZyYW1lQ29udHJvbGxlciA9IG51bGw7CiAgICAgICAgICAgICAgICAgdGhpcy5lbGVt
ZW50LnJlbW92ZVN0eWxlQ2xhc3MoInRpbWVsaW5lLXZlcnRpY2FsLW92ZXJ2aWV3Iik7CisgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5zZXRHbHVlUmVj
b3Jkcyh0aGlzLl9nbHVlUGFyZW50QnV0dG9uLnRvZ2dsZWQgJiYgIXZlcnRpY2FsT3ZlcnZpZXcp
OwogICAgICAgICAgICAgdGhpcy5fcmVwb3B1bGF0ZVJlY29yZHMoKTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNl
bnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDQyOWZiZDhkNmY2ZDcyNDhiYWE4MzMyNzFk
OWQ3NzM0ZWNhYmRlZjEuLjg2MzYyMjVhZDdiNjI1YTQ2NjMxYzBhNjYzYmU4NjAxNGMzZWFhZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTU3NSwxMSArNTc1LDggQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuUmVjb3JkLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fY3B1VGltZSA9IHRoaXMuX3NlbGZUaW1lOwogCiAgICAgICAgIGlmICh0
aGlzLl9jaGlsZHJlbikgewotICAgICAgICAgICAgZm9yICh2YXIgaW5kZXggPSB0aGlzLl9jaGls
ZHJlbi5sZW5ndGg7IGluZGV4OyAtLWluZGV4KSB7Ci0gICAgICAgICAgICAgICAgdmFyIGNoaWxk
ID0gdGhpcy5fY2hpbGRyZW5baW5kZXggLSAxXTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBj
YXRlZ29yeSBpbiBjYXRlZ29yaWVzKQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZ2dyZWdh
dGVkU3RhdHNbY2F0ZWdvcnldICs9IGNoaWxkLl9hZ2dyZWdhdGVkU3RhdHNbY2F0ZWdvcnldOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh2YXIgaW5kZXggPSB0aGlzLl9jaGlsZHJl
bi5sZW5ndGg7IGluZGV4OyAtLWluZGV4KQorICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5U
aW1lbGluZU1vZGVsLmFnZ3JlZ2F0ZVRpbWVCeUNhdGVnb3JpZXModGhpcy5fYWdncmVnYXRlZFN0
YXRzLCB0aGlzLl9jaGlsZHJlbltpbmRleCAtIDFdKTsKICAgICAgICAgICAgIGZvciAodmFyIGNh
dGVnb3J5IGluIHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0cykKICAgICAgICAgICAgICAgICB0aGlzLl9j
cHVUaW1lICs9IHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0c1tjYXRlZ29yeV07CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCBlNzY4
YjBiNzY5YjJkNDlhZDBiYzBlNmI0ZDYzODBkNTE4N2IzNDk2Li4zYzM4ZDE4MTZkNmZlMmE5MDg1
NmFlYzIyM2U1Y2ZjYjc4ZGJjNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9XZWJLaXQucXJjCkBAIC0xNTAsNiArMTUwLDcgQEAKICAgICA8ZmlsZT5UZXh0RWRp
dG9yTW9kZWwuanM8L2ZpbGU+CiAgICAgPGZpbGU+VGV4dFByb21wdC5qczwvZmlsZT4KICAgICA8
ZmlsZT5UZXh0Vmlld2VyLmpzPC9maWxlPgorICAgIDxmaWxlPlRpbWVsaW5lRnJhbWVDb250cm9s
bGVyLmpzPC9maWxlPgogICAgIDxmaWxlPlRpbWVsaW5lTWFuYWdlci5qczwvZmlsZT4KICAgICA8
ZmlsZT5UaW1lbGluZU1vZGVsLmpzPC9maWxlPgogICAgIDxmaWxlPlRpbWVsaW5lUHJlc2VudGF0
aW9uTW9kZWwuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCAyMDkyMmQ5ZGQ5NjhhMDkxZWE3OTRhNmUwYzc1MGYx
ZDJkYTdkOWJiLi4wNGZkZWIwYTU5YmMwYjQ3ZmU0NDY0ZjYxMzUyMGEyOThlY2FhMzFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1s
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwK
QEAgLTE4MSw2ICsxODEsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVsaW5lUGFuZWwuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVsaW5l
T3ZlcnZpZXdQYW5lLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJUaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGVzdENvbnRyb2xsZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkhlbHBTY3JlZW4u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRp
YWxvZy5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135044</attachid>
            <date>2012-04-02 02:01:17 -0700</date>
            <delta_ts>2012-04-02 02:43:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82735-20120402130115.patch</filename>
            <type>text/plain</type>
            <size>26719</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0MzRhODA5MmEwMGEw
ZDk3ZmJhMmQ4MGMzMWE5MDQ3OWI5ZGQ2Yi4uNDczZTI5NmFhY2UxODI5OTk1NDgyNWQ0MGI2Yjdi
NmVmMjdmZjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDEyLTA0LTAyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW3JlZmFjdG9yaW5nXSBmYWN0b3Igb3VyIGZyYW1lIGFnZ3JlZ2F0aW9uIGxvZ2ljIHRvIFRp
bWVsaW5lRnJhbWVDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MjczNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIC0gZmFjdG9yIG91dCBmcmFtZSBhZ2dyZWdhdGlvbiBsb2dpYyBmcm9tIFRp
bWVsaW5lVmVydGljYWxPdmVydmlldyBpbnRvIFRpbWVsaW5lRnJhbWVDb250cm9sbGVyOworICAg
ICAgICAtIGlmIHdlIGRvbid0IGhhdmUgZnJhbWVzLCBwcmV0ZW5kIGVhY2ggdG9wLWxldmVsIGV2
ZW50IGlzIGEgZnJhbWUgKHRoaXMgcHJlc2VydmVzIGJlaGF2aW9yIG9mIHZlcnRpY2FsIG92ZXJ2
aWV3KTsKKyAgICAgICAgLSBmYWN0b3Igb3V0IHRpbWUtYnktY2F0ZWdvcnkgc3RhdHMgYWdncmVn
YXRpb24gaW50byBjbGFzcyBtZXRob2RzIG9mIFRpbWVsaW5lTW9kZWwgZm9yIHJldXNlIGFjY3Jv
c3MgdGltZWxpbmUgbW9kdWxlczsKKyAgICAgICAgLSBkbyBub3QgZmlsdGVyIHRvcC1sZXZlbCBl
dmVudHMgYnkgdHlwZSBpbiB2ZXJ0aWNhbCBvdmVydmlldyBtb2RlOworCisgICAgICAgICogV2Vi
Q29yZS5neXBpOiBBZGRlZCBUaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcworICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBkaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y29tcGlsZS1mcm9udC1lbmQucHk6IGRpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1l
bGluZUZyYW1lQ29udHJvbGxlci5wcm90b3R5cGUuX29uUmVjb3JkQWRkZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJhbWVDb250cm9sbGVyLnByb3RvdHlwZS5fb25SZWNvcmRz
Q2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIu
cHJvdG90eXBlLl9hZGRSZWNvcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRnJh
bWVDb250cm9sbGVyLnByb3RvdHlwZS5fZmx1c2hGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIucHJvdG90eXBlLl9jcmVhdGVTeW50aGV0aWNGcmFt
ZSk6IGNyZWF0ZSBhICJmcmFtZSIgYmFzZWQgb24gYSBzaW5nbGUgdG9wLWxldmVsIHJlY29yZC4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUZyYW1lQ29udHJvbGxlci5wcm90b3R5cGUu
ZGlzcG9zZSk6IFJlbW92ZSBsaXN0ZW5lcnMgdGhhdCB3ZSBhZGRlZCBpbiBjb25zdHJ1Y3Rvci4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZUZyYW1lKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanM6IEFkZGVkIHV0aWxpdGllcyBmb3IgYWdncmVn
YXRpbmcgdGltZXMgYnkgY2F0ZWdvcmllcy4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU1vZGVsLmFnZ3JlZ2F0ZVRpbWVCeUNhdGVnb3JpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lTW9kZWwuYWdncmVnYXRlVGltZUZvclJlY29yZCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qczogVXNlIGZyYW1lIGluZm9ybWF0
aW9uIHN1cHBsaWVkIGJ5IFRpbWVsaW5lRnJhbWVDb250cm9sbGVyLgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fc2hvd1RpbWVsaW5lcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlLl9zZXRW
ZXJ0aWNhbE92ZXJ2aWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3
UGFuZS5wcm90b3R5cGUuYWRkRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5l
VmVydGljYWxPdmVydmlldy5wcm90b3R5cGUucmVzZXQpOiBDbGVhciBzdG9yZWQgZnJhbWVzIHVw
b24gcmVzZXQoKQorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmVydGljYWxPdmVydmll
dy5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVZlcnRp
Y2FsT3ZlcnZpZXcucHJvdG90eXBlLmFkZEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
aW1lbGluZVZlcnRpY2FsT3ZlcnZpZXcucHJvdG90eXBlLl9hZ2dyZWdhdGVGcmFtZXMpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmVydGljYWxPdmVydmlldy5wcm90b3R5cGUuZ2V0
V2luZG93VGltZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5l
bC5qczogQ3JlYXRlL2Rpc3Bvc2UgVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIgd2hlbiBzd2l0Y2hp
bmcgdG8vZnJvbSB2ZXJ0aWNhbCBvdmVydmlldyBtb2RlLgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLlJlY29yZC5wcm90b3R5cGUuY2FsY3VsYXRl
QWdncmVnYXRlZFN0YXRzKTogRmFjdG9yZWQgb3V0IHN0YXRpc3RpY3MgYWdncmVnYXRpb24gdG8g
dXRpbGl0aWVzIG1ldGhvZCBpbiB0aGUgbW9kZWwuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9XZWJLaXQucXJjOiBBZGRlZCBUaW1lbGluZUZyYW1lQ29udHJvbGxlci5qcworICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6IGRpdHRvLgorCisyMDEyLTA0
LTAyICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogbWFrZSB0aW1lbGluZSBvdmVydmlldyBhIHZpZXcKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyODYxCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCA4YTZmNzkxNThmYzhjNDY2ODI2MGYwMmE4N2Y5YjM1YjVlZmY1MjhlLi42MDM3ZjIzOTU4
NTdmYjRkNGEwNThhMmQ5YTkzYzE2NjE4ZjI2ZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02Mzc5
LDYgKzYzNzksNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRv
ck1vZGVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRQcm9tcHQu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcycsCisg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZUZyYW1lQ29udHJvbGxlci5q
cycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZU1hbmFnZXIuanMn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcycsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmpzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggNDQxODU2ZGQwMTJmNzY1Y2VmZDMxY2U3NTU5N2E5YzJkNWY4MTEzMy4uNmU2MDI4NTY3ZGM0
NWVhM2E3ZGI5NGQ0YWI2MWRlMTMwZGMxYzQyZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTc0MjE3LDYgKzc0MjE3LDEwIEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
ZnJvbnQtZW5kXFRpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzIgorCQkJCQk+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxU
aW1lbGluZU1hbmFnZXIuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKaW5kZXggZWE5MzdmYTVkYjQ0OTY1ODg2
M2ZlOTkyMzZiNmVjZjJmMDg1Nzg5NC4uZmVlZThkODBjNjZlY2QwZWE4NTc3YTYzYzQzZjBiODA4
NDA4YmMzZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJv
bnQtZW5kLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVu
ZC5weQpAQCAtODQsNyArODQsNiBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAgIlNuaXBwZXRz
TW9kZWwuanMiLAogICAgICAgICAgICAgIlRpbWVsaW5lTWFuYWdlci5qcyIsCiAgICAgICAgICAg
ICAiVGltZWxpbmVNb2RlbC5qcyIsCi0gICAgICAgICAgICAiVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5qcyIsCiAgICAgICAgICAgICAiUmF3U291cmNlQ29kZS5qcyIsCiAgICAgICAgICAgICAi
UmVtb3RlT2JqZWN0LmpzIiwKICAgICAgICAgICAgICJSZXNvdXJjZS5qcyIsCkBAIC0yMjksNiAr
MjI4LDggQEAgbW9kdWxlcyA9IFsKICAgICAgICAgICAgICJNZW1vcnlTdGF0aXN0aWNzLmpzIiwK
ICAgICAgICAgICAgICJUaW1lbGluZU92ZXJ2aWV3UGFuZS5qcyIsCiAgICAgICAgICAgICAiVGlt
ZWxpbmVQYW5lbC5qcyIsCisgICAgICAgICAgICAiVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5q
cyIsCisgICAgICAgICAgICAiVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMiCiAgICAgICAgIF0K
ICAgICB9LAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGltZWxpbmVGcmFtZUNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyOGRm
ZDUxNmJjMTViM2MwNTcyODZhODAzMzNkZGUwMDZiZTZkZjMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lRnJhbWVDb250cm9sbGVy
LmpzCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlRpbWVsaW5lTW9kZWx9IG1vZGVsCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5U
aW1lbGluZU92ZXJ2aWV3UGFuZX0gb3ZlcnZpZXdQYW5lCisgKi8KK1dlYkluc3BlY3Rvci5UaW1l
bGluZUZyYW1lQ29udHJvbGxlciA9IGZ1bmN0aW9uKG1vZGVsLCBvdmVydmlld1BhbmUpCit7Cisg
ICAgdGhpcy5fbGFzdEZyYW1lID0gbnVsbDsKKyAgICB0aGlzLl9tb2RlbCA9IG1vZGVsOworICAg
IHRoaXMuX292ZXJ2aWV3UGFuZSA9IG92ZXJ2aWV3UGFuZTsKKyAgICB0aGlzLl9tb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLkV2ZW50cy5SZWNvcmRBZGRl
ZCwgdGhpcy5fb25SZWNvcmRBZGRlZCwgdGhpcyk7CisgICAgdGhpcy5fbW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5FdmVudHMuUmVjb3Jkc0NsZWFyZWQs
IHRoaXMuX29uUmVjb3Jkc0NsZWFyZWQsIHRoaXMpOworCisgICAgdmFyIHJlY29yZHMgPSBtb2Rl
bC5yZWNvcmRzOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7ICsraSkK
KyAgICAgICAgdGhpcy5fYWRkUmVjb3JkKHJlY29yZHNbaV0pOworfQorCitXZWJJbnNwZWN0b3Iu
VGltZWxpbmVGcmFtZUNvbnRyb2xsZXIucHJvdG90eXBlID0geworICAgIF9vblJlY29yZEFkZGVk
OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX2FkZFJlY29yZChldmVudC5k
YXRhKTsKKyAgICB9LAorCisgICAgX29uUmVjb3Jkc0NsZWFyZWQ6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX2xhc3RGcmFtZSA9IG51bGw7CisgICAgfSwKKworICAgIF9hZGRSZWNv
cmQ6IGZ1bmN0aW9uKHJlY29yZCkKKyAgICB7CisgICAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0g
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5CZWdpbkZyYW1lKQorICAgICAg
ICAgICAgdGhpcy5fZmx1c2hGcmFtZShyZWNvcmQpOworICAgICAgICBlbHNlIGlmICh0aGlzLl9s
YXN0RnJhbWUpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmFnZ3Jl
Z2F0ZVRpbWVGb3JSZWNvcmQodGhpcy5fbGFzdEZyYW1lLnRpbWVCeUNhdGVnb3J5LCByZWNvcmQp
OworICAgICAgICAgICAgdGhpcy5fbGFzdEZyYW1lLmNwdVRpbWUgKz0gV2ViSW5zcGVjdG9yLlRp
bWVsaW5lTW9kZWwuZHVyYXRpb25JblNlY29uZHMocmVjb3JkKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIC8vIE5vIGZyYW1lIHJlY29yZHMgc28gZmFyIC0tIGdlbmVyYXRlIGEgc3lu
dGhldGljIGZyYW1lIHBlciBlYWNoIHRvcC1sZXZlbCByZWNvcmQsIGJ1dCBvbmx5CisgICAgICAg
ICAgICAvLyBkaXNwYXRjaCB0aGVzZSB0byB0aGUgb3ZlcnZpZXcuCisgICAgICAgICAgICB0aGlz
Ll9vdmVydmlld1BhbmUuYWRkRnJhbWUodGhpcy5fY3JlYXRlU3ludGhldGljRnJhbWUocmVjb3Jk
KSk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX2ZsdXNoRnJhbWU6IGZ1bmN0aW9uKHJlY29y
ZCkKKyAgICB7CisgICAgICAgIHZhciBmcmFtZUJlZ2luVGltZSA9IFdlYkluc3BlY3Rvci5UaW1l
bGluZU1vZGVsLnN0YXJ0VGltZUluU2Vjb25kcyhyZWNvcmQpOworICAgICAgICBpZiAodGhpcy5f
bGFzdEZyYW1lKSB7CisgICAgICAgICAgICB0aGlzLl9sYXN0RnJhbWUuZW5kVGltZSA9IGZyYW1l
QmVnaW5UaW1lOworICAgICAgICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lLmFkZEZyYW1lKHRoaXMu
X2xhc3RGcmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fbGFzdEZyYW1lID0gbmV3IFdl
Ykluc3BlY3Rvci5UaW1lbGluZUZyYW1lKCk7CisgICAgICAgIHRoaXMuX2xhc3RGcmFtZS5zdGFy
dFRpbWUgPSBmcmFtZUJlZ2luVGltZTsKKyAgICB9LAorCisgICAgX2NyZWF0ZVN5bnRoZXRpY0Zy
YW1lOiBmdW5jdGlvbihyZWNvcmQpCisgICAgeworICAgICAgICB2YXIgZnJhbWUgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lRnJhbWUoKTsKKyAgICAgICAgZnJhbWUuc3RhcnRUaW1lID0gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCk7CisgICAg
ICAgIGZyYW1lLmVuZFRpbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5lbmRUaW1lSW5T
ZWNvbmRzKHJlY29yZCk7CisgICAgICAgIGZyYW1lLmNwdVRpbWUgPSBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVNb2RlbC5kdXJhdGlvbkluU2Vjb25kcyhyZWNvcmQpOworICAgICAgICByZXR1cm4gZnJh
bWU7CisgICAgfSwKKworICAgIGRpc3Bvc2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRo
aXMuX21vZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwu
RXZlbnRzLlJlY29yZEFkZGVkLCB0aGlzLl9vblJlY29yZEFkZGVkLCB0aGlzKTsKKyAgICAgICAg
dGhpcy5fbW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bC5FdmVudHMuUmVjb3Jkc0NsZWFyZWQsIHRoaXMuX29uUmVjb3Jkc0NsZWFyZWQsIHRoaXMpOwor
ICAgIH0KK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLworV2ViSW5zcGVjdG9yLlRpbWVs
aW5lRnJhbWUgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy50aW1lQnlDYXRlZ29yeSA9IHt9Owor
ICAgIHRoaXMuY3B1VGltZSA9IDA7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lTW9kZWwuanMKaW5kZXggYWUzZDZiZGU4NjQxMzc5ZDZhYWQy
NzViNTRiODBhNzNiNWEyYTQzOS4uZGI0OTJkNzZkN2FmODIyM2JlOTEyYThkNjQ5NWZjZTBjZDlj
MjIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1l
bGluZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVNb2RlbC5qcwpAQCAtMTAwLDYgKzEwMCwzNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVN
b2RlbC5kdXJhdGlvbkluU2Vjb25kcyA9IGZ1bmN0aW9uKHJlY29yZCkKICAgICByZXR1cm4gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuZW5kVGltZUluU2Vjb25kcyhyZWNvcmQpIC0gV2ViSW5z
cGVjdG9yLlRpbWVsaW5lTW9kZWwuc3RhcnRUaW1lSW5TZWNvbmRzKHJlY29yZCk7CiB9CiAKKy8q
KgorICogQHBhcmFtIHtPYmplY3R9IHRvdGFsIAorICogQHBhcmFtIHtPYmplY3R9IGluY3JlbWVu
dAorICovCitXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5hZ2dyZWdhdGVUaW1lQnlDYXRlZ29y
aWVzID0gZnVuY3Rpb24odG90YWwsIGluY3JlbWVudCkKK3sKKyAgICB2YXIgY2F0ZWdvcmllcyA9
IE9iamVjdC5rZXlzKGluY3JlbWVudCk7CisgICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gaW5jcmVt
ZW50KSB7CisgICAgICAgIHZhciB2YWx1ZSA9IHRvdGFsW2NhdGVnb3J5XSB8fCAwOworICAgICAg
ICB2YWx1ZSArPSBpbmNyZW1lbnRbY2F0ZWdvcnldOworICAgICAgICB0b3RhbFtjYXRlZ29yeV0g
PSB2YWx1ZTsKKyAgICB9Cit9CisKKy8qKgorICogQHBhcmFtIHtPYmplY3R9IHRvdGFsIAorICog
QHBhcmFtIHtPYmplY3R9IHJhd1JlY29yZAorICovCitXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2Rl
bC5hZ2dyZWdhdGVUaW1lRm9yUmVjb3JkID0gZnVuY3Rpb24odG90YWwsIHJhd1JlY29yZCkKK3sK
KyAgICB2YXIgY2hpbGRyZW5UaW1lID0gMDsKKyAgICB2YXIgY2hpbGRyZW4gPSByYXdSZWNvcmRb
ImNoaWxkcmVuIl0gfHwgW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5n
dGg7ICsraSkgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuYWdncmVnYXRl
VGltZUZvclJlY29yZCh0b3RhbCwgY2hpbGRyZW5baV0pOworICAgICAgICBjaGlsZHJlblRpbWUg
Kz0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuZHVyYXRpb25JblNlY29uZHMoY2hpbGRyZW5b
aV0pOworICAgIH0KKyAgICB2YXIgY2F0ZWdvcnlOYW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UHJlc2VudGF0aW9uTW9kZWwucmVjb3JkU3R5bGUocmF3UmVjb3JkKS5jYXRlZ29yeS5uYW1lOwor
ICAgIHZhciBvd25UaW1lID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuZHVyYXRpb25JblNl
Y29uZHMocmF3UmVjb3JkKSAtIGNoaWxkcmVuVGltZTsKKyAgICB0b3RhbFtjYXRlZ29yeU5hbWVd
ID0gKHRvdGFsW2NhdGVnb3J5TmFtZV0gfHwgMCkgKyBvd25UaW1lOworfQorCiBXZWJJbnNwZWN0
b3IuVGltZWxpbmVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgc3RhcnRSZWNvcmQ6IGZ1bmN0aW9u
KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcwppbmRleCAxODVlMWU1YTIzNGQ4NjY3MjAzNTVj
MzYyNjEzOTlhODMyOWNiNDU4Li4xMjUyNTRiMjA5NDczMWJjYTI1MTgwNDIwMzc1ZjljY2Y0NjRj
OWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVs
aW5lT3ZlcnZpZXdQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMKQEAgLTE0Nyw3ICsxNDcsNiBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9oZWFw
R3JhcGguaGlkZSgpOwogICAgICAgICB0aGlzLl9zZXRWZXJ0aWNhbE92ZXJ2aWV3KHRoaXMuX2N1
cnJlbnRNb2RlID09PSBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuTW9kZS5FdmVu
dHNWZXJ0aWNhbCk7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5pdGVtc0dyYXBoc0VsZW1l
bnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUNhdGVn
b3J5U3RyaXBzKCk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5FdmVudHMuTW9kZUNoYW5nZWQsIHRoaXMuX2N1
cnJlbnRNb2RlKTsKICAgICB9LAogCkBAIC0xNzMsNiArMTcyLDcgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX3ZlcnRp
Y2FsT3ZlcnZpZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICB0aGlzLl92ZXJ0aWNhbE92ZXJ2aWV3
ID0gbnVsbDsKICAgICAgICAgICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5pdGVtc0dyYXBoc0VsZW1l
bnQucmVtb3ZlU3R5bGVDbGFzcygiaGlkZGVuIik7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVD
YXRlZ29yeVN0cmlwcygpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMjgxLDYgKzI4MSwxNSBA
QCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl90b3BQYW5lU2lkZWJhckVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICJweCI7
CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5l
RnJhbWV9IGZyYW1lCisgICAgICovCisgICAgYWRkRnJhbWU6IGZ1bmN0aW9uKGZyYW1lKQorICAg
IHsKKyAgICAgICAgdGhpcy5fdmVydGljYWxPdmVydmlldy5hZGRGcmFtZShmcmFtZSk7CisgICAg
ICAgIHRoaXMuX3NjaGVkdWxlUmVmcmVzaCgpOworICAgIH0sCisKICAgICBfcmVzZXQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3dpbmRvd1N0YXJ0VGltZSA9IDA7CkBAIC04NDAs
MzMgKzg0OSwxOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0aWNhbE92ZXJ2aWV3LnByb3Rv
dHlwZSA9IHsKICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVj
b3Jkc1BlckJhciA9IDE7Ci0gICAgICAgIHRoaXMuX2ZyYW1lTW9kZSA9IGZhbHNlOwogICAgICAg
ICB0aGlzLl9iYXJUaW1lcyA9IFtdOwogICAgICAgICB0aGlzLl9sb25nZXN0QmFyVGltZSA9IDA7
Ci0gICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRSZWNvcmRzID0gW107CisgICAgICAgIHRoaXMuX2Zy
YW1lcyA9IFtdOwogICAgIH0sCiAKICAgICB1cGRhdGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHZhciByZWNvcmRzID0gW107Ci0gICAgICAgIHZhciBmcmFtZUNvdW50ID0gMDsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9hZ2dyZWdhdGVkUmVjb3Jkcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgdmFyIHJlY29yZCA9IHRoaXMuX2FnZ3JlZ2F0ZWRSZWNvcmRzW2ld
OwotICAgICAgICAgICAgaWYgKHJlY29yZC5jYXRlZ29yeS5oaWRkZW4pCi0gICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5UaW1lbGluZU1vZGVsLlJlY29yZFR5cGUuQmVnaW5GcmFtZSB8fCAoZnJhbWVDb3VudCAmJiAo
aSArIDEgPT09IHJlY29yZHMubGVuZ3RoKSkpCi0gICAgICAgICAgICAgICAgKytmcmFtZUNvdW50
OwotICAgICAgICAgICAgcmVjb3Jkcy5wdXNoKHJlY29yZCk7Ci0gICAgICAgIH0KLSAgICAgICAg
Ly8gSWYgd2UgaGF2ZSBmcmFtZXMsIGFnZ3JlZ2F0ZSBieSBmcmFtZXM7IG90aGVyd2lzZSwganVz
dCBzaG93IHRvcC1sZXZlbCByZWNvcmRzLgotICAgICAgICB2YXIgcmVjb3JkQ291bnQgPSBmcmFt
ZUNvdW50IHx8IHJlY29yZHMubGVuZ3RoOwotCiAgICAgICAgIGNvbnN0IG1pbkJhcldpZHRoID0g
NDsKLSAgICAgICAgdGhpcy5fcmVjb3Jkc1BlckJhciA9IE1hdGgubWF4KDEsIHJlY29yZENvdW50
ICogbWluQmFyV2lkdGggLyB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGgpOwotICAgICAgICB2YXIg
bnVtYmVyT2ZCYXJzID0gTWF0aC5jZWlsKHJlY29yZENvdW50IC8gdGhpcy5fcmVjb3Jkc1BlckJh
cik7CisgICAgICAgIHZhciBmcmFtZXNQZXJCYXIgPSBNYXRoLm1heCgxLCB0aGlzLl9mcmFtZXMu
bGVuZ3RoICogbWluQmFyV2lkdGggLyB0aGlzLmVsZW1lbnQuY2xpZW50V2lkdGgpOwogICAgICAg
ICB0aGlzLl9iYXJUaW1lcyA9IFtdOwogICAgICAgICB0aGlzLl9sb25nZXN0QmFyVGltZSA9IDA7
Ci0gICAgICAgIHZhciBiYXJIZWlnaHRzID0gZnJhbWVDb3VudCA/IHRoaXMuX2FnZ3JlZ2F0ZUZy
YW1lcyhyZWNvcmRzLCBudW1iZXJPZkJhcnMpIDogdGhpcy5fYWdncmVnYXRlUmVjb3JkcyhyZWNv
cmRzLCBudW1iZXJPZkJhcnMpOworICAgICAgICB2YXIgYmFySGVpZ2h0cyA9IHRoaXMuX2FnZ3Jl
Z2F0ZUZyYW1lcyhmcmFtZXNQZXJCYXIpOwogCiAgICAgICAgIGNvbnN0IHBhZGRpbmdUb3AgPSA0
OwogICAgICAgICB2YXIgc2NhbGUgPSAodGhpcy5lbGVtZW50LmNsaWVudEhlaWdodCAtIHBhZGRp
bmdUb3ApIC8gdGhpcy5fbG9uZ2VzdEJhclRpbWU7CkBAIC04NzQsMTA2ICs4NjgsMzUgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lVmVydGljYWxPdmVydmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX3JlbmRlckJhcnMoYmFySGVpZ2h0cywgc2NhbGUpOwogICAgIH0sCiAKLSAgICB3YXNT
aG93bjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fYWdncmVnYXRlZFJlY29yZHMg
PSBbXTsKLSAgICAgICAgdmFyIHJlY29yZHMgPSB0aGlzLl9tb2RlbC5yZWNvcmRzOwotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0
aGlzLl9hZ2dyZWdhdGVkUmVjb3Jkcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2dy
ZWdhdGVkUmVjb3JkKHJlY29yZHNbaV0pKTsKLQotICAgICAgICB0aGlzLnVwZGF0ZSgpOwotICAg
ICAgICB0aGlzLl9tb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZU1v
ZGVsLkV2ZW50cy5SZWNvcmRBZGRlZCwgdGhpcy5fb25SZWNvcmRBZGRlZCwgdGhpcyk7Ci0gICAg
ICAgIHRoaXMuX21vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9k
ZWwuRXZlbnRzLlJlY29yZHNDbGVhcmVkLCB0aGlzLnJlc2V0LCB0aGlzKTsKLSAgICB9LAotCi0g
ICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX21vZGVsLnJlbW92
ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuRXZlbnRzLlJlY29yZEFk
ZGVkLCB0aGlzLl9vblJlY29yZEFkZGVkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5fbW9kZWwucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5FdmVudHMuUmVjb3Jk
c0NsZWFyZWQsIHRoaXMucmVzZXQsIHRoaXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBA
cGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2dyZWdhdGVkUmVjb3JkPn0gcmVj
b3JkcwotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXJPZkJhcnMKLSAgICAgKi8KLSAgICBf
YWdncmVnYXRlRnJhbWVzOiBmdW5jdGlvbihyZWNvcmRzLCBudW1iZXJPZkJhcnMpCi0gICAgewot
ICAgICAgICB2YXIgc3RhdGlzdGljcyA9IFtdOwotICAgICAgICBmb3IgKHZhciBiYXJOdW1iZXIg
PSAwLCBjdXJyZW50UmVjb3JkID0gMCwgY3VycmVudEZyYW1lID0gMDsKLSAgICAgICAgICAgICBi
YXJOdW1iZXIgPCBudW1iZXJPZkJhcnMgJiYgY3VycmVudFJlY29yZCA8IHJlY29yZHMubGVuZ3Ro
OyArK2Jhck51bWJlcikgewotICAgICAgICAgICAgdmFyIGxhc3RGcmFtZSA9IE1hdGguZmxvb3Io
KGJhck51bWJlciArIDEpICogdGhpcy5fcmVjb3Jkc1BlckJhcik7Ci0gICAgICAgICAgICB2YXIg
YmFyU3RhcnRUaW1lID0gcmVjb3Jkc1tjdXJyZW50UmVjb3JkXS5zdGFydFRpbWU7Ci0gICAgICAg
ICAgICB2YXIgbG9uZ2VzdEZyYW1lU3RhdGlzdGljczsKLSAgICAgICAgICAgIHZhciBsb25nZXN0
RnJhbWVUaW1lID0gMDsKLQotICAgICAgICAgICAgZm9yICg7IGN1cnJlbnRGcmFtZSA8IGxhc3RG
cmFtZSAmJiBjdXJyZW50UmVjb3JkIDwgcmVjb3Jkcy5sZW5ndGg7ICsrY3VycmVudEZyYW1lKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKHJlY29yZHNbY3VycmVudFJlY29yZF0udHlwZSA9PT0gV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwuUmVjb3JkVHlwZS5CZWdpbkZyYW1lKQotICAgICAgICAg
ICAgICAgICAgICBjdXJyZW50UmVjb3JkKys7Ci0gICAgICAgICAgICAgICAgdmFyIGZyYW1lU3Rh
dGlzdGljcyA9IHt9OwotICAgICAgICAgICAgICAgIHZhciBmcmFtZUluZm8gPSB0aGlzLl9hZ2dy
ZWdhdGVGcmFtZVN0YXRpc3RpY3MocmVjb3JkcywgY3VycmVudFJlY29yZCwgZnJhbWVTdGF0aXN0
aWNzKTsKLSAgICAgICAgICAgICAgICBjdXJyZW50UmVjb3JkICs9IGZyYW1lSW5mby5yZWNvcmRD
b3VudDsKLSAgICAgICAgICAgICAgICBpZiAoZnJhbWVJbmZvLnRvdGFsVGltZSA+IGxvbmdlc3RG
cmFtZVRpbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgbG9uZ2VzdEZyYW1lU3RhdGlzdGljcyA9
IGZyYW1lU3RhdGlzdGljczsKLSAgICAgICAgICAgICAgICAgICAgbG9uZ2VzdEZyYW1lVGltZSA9
IGZyYW1lSW5mby50b3RhbFRpbWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdmFyIGJhckVuZFRpbWUgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmQgLSAxXS5l
bmRUaW1lOwotICAgICAgICAgICAgaWYgKGxvbmdlc3RGcmFtZVN0YXRpc3RpY3MpIHsKLSAgICAg
ICAgICAgICAgICB0aGlzLl9sb25nZXN0QmFyVGltZSA9IE1hdGgubWF4KHRoaXMuX2xvbmdlc3RC
YXJUaW1lLCBsb25nZXN0RnJhbWVUaW1lKTsKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWNzLnB1
c2gobG9uZ2VzdEZyYW1lU3RhdGlzdGljcyk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fYmFyVGlt
ZXMucHVzaCh7IHN0YXJ0VGltZTogYmFyU3RhcnRUaW1lLCBlbmRUaW1lOiBiYXJFbmRUaW1lIH0p
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBzdGF0aXN0aWNzOwot
ICAgIH0sCi0KICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVBZ2dyZWdhdGVkUmVjb3JkPn0gcmVjb3JkcwotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBz
dGFydEluZGV4Ci0gICAgICogQHBhcmFtIHtPYmplY3R9IHN0YXRpc3RpY3MKKyAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5UaW1lbGluZUZyYW1lfSBmcmFtZQogICAgICAqLwotICAgIF9hZ2dy
ZWdhdGVGcmFtZVN0YXRpc3RpY3M6IGZ1bmN0aW9uKHJlY29yZHMsIHN0YXJ0SW5kZXgsIHN0YXRp
c3RpY3MpCisgICAgYWRkRnJhbWU6IGZ1bmN0aW9uKGZyYW1lKQogICAgIHsKLSAgICAgICAgdmFy
IHRvdGFsVGltZSA9IDA7Ci0gICAgICAgIGZvciAodmFyIGluZGV4ID0gc3RhcnRJbmRleDsgaW5k
ZXggPCByZWNvcmRzLmxlbmd0aDsgKytpbmRleCkgewotICAgICAgICAgICAgdmFyIHJlY29yZCA9
IHJlY29yZHNbaW5kZXhdOwotICAgICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5SZWNvcmRUeXBlLkJlZ2luRnJhbWUpCi0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB2YXIgY2F0ZWdvcmllcyA9IE9iamVjdC5rZXlzKHJlY29y
ZC50aW1lQnlDYXRlZ29yeSk7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGVn
b3JpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2YXIgY2F0ZWdvcnkgPSBjYXRl
Z29yaWVzW2ldOwotICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHN0YXRpc3RpY3NbY2F0ZWdv
cnldIHx8IDA7Ci0gICAgICAgICAgICAgICAgdmFsdWUgKz0gcmVjb3JkLnRpbWVCeUNhdGVnb3J5
W2NhdGVnb3J5XTsKLSAgICAgICAgICAgICAgICB0b3RhbFRpbWUgKz0gcmVjb3JkLnRpbWVCeUNh
dGVnb3J5W2NhdGVnb3J5XTsKLSAgICAgICAgICAgICAgICBzdGF0aXN0aWNzW2NhdGVnb3J5XSA9
IHZhbHVlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7Ci0gICAg
ICAgICAgICB0b3RhbFRpbWU6IHRvdGFsVGltZSwKLSAgICAgICAgICAgIHJlY29yZENvdW50OiBp
bmRleCAtIHN0YXJ0SW5kZXgKLSAgICAgICAgfQorICAgICAgICB0aGlzLl9mcmFtZXMucHVzaChm
cmFtZSk7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3Bl
Y3Rvci5UaW1lbGluZUFnZ3JlZ2F0ZWRSZWNvcmQ+fSByZWNvcmRzCi0gICAgICogQHBhcmFtIHtu
dW1iZXJ9IG51bWJlck9mQmFycworICAgICAqIEBwYXJhbSB7bnVtYmVyfSBmcmFtZXNQZXJCYXIK
ICAgICAgKi8KLSAgICBfYWdncmVnYXRlUmVjb3JkczogZnVuY3Rpb24ocmVjb3JkcywgbnVtYmVy
T2ZCYXJzKQorICAgIF9hZ2dyZWdhdGVGcmFtZXM6IGZ1bmN0aW9uKGZyYW1lc1BlckJhcikKICAg
ICB7CiAgICAgICAgIHZhciBzdGF0aXN0aWNzID0gW107Ci0gICAgICAgIGZvciAodmFyIGJhck51
bWJlciA9IDAsIGN1cnJlbnRSZWNvcmQgPSAwOyBiYXJOdW1iZXIgPCBudW1iZXJPZkJhcnMgJiYg
Y3VycmVudFJlY29yZCA8IHJlY29yZHMubGVuZ3RoOyArK2Jhck51bWJlcikgewotICAgICAgICAg
ICAgdmFyIGJhclN0YXJ0VGltZSA9IHJlY29yZHNbY3VycmVudFJlY29yZF0uc3RhcnRUaW1lOwot
ICAgICAgICAgICAgdmFyIGxvbmdlc3RSZWNvcmQgPSByZWNvcmRzW2N1cnJlbnRSZWNvcmRdOwot
ICAgICAgICAgICAgdmFyIGxhc3RJbmRleCA9IE1hdGgubWluKE1hdGguZmxvb3IoKGJhck51bWJl
ciArIDEpICogdGhpcy5fcmVjb3Jkc1BlckJhciksIHJlY29yZHMubGVuZ3RoKTsKLSAgICAgICAg
ICAgIGZvciAoKytjdXJyZW50UmVjb3JkOyBjdXJyZW50UmVjb3JkIDwgbGFzdEluZGV4OyArK2N1
cnJlbnRSZWNvcmQpIHsKLSAgICAgICAgICAgICAgICB2YXIgcmVjb3JkID0gcmVjb3Jkc1tjdXJy
ZW50UmVjb3JkXTsKLSAgICAgICAgICAgICAgICBpZiAobG9uZ2VzdFJlY29yZC5kdXJhdGlvbiA8
IHJlY29yZC5kdXJhdGlvbikKLSAgICAgICAgICAgICAgICAgICAgbG9uZ2VzdFJlY29yZCA9IHJl
Y29yZDsKKyAgICAgICAgZm9yICh2YXIgYmFyTnVtYmVyID0gMCwgY3VycmVudEZyYW1lID0gMDsg
Y3VycmVudEZyYW1lIDwgdGhpcy5fZnJhbWVzLmxlbmd0aDsgKytiYXJOdW1iZXIpIHsKKyAgICAg
ICAgICAgIHZhciBiYXJTdGFydFRpbWUgPSB0aGlzLl9mcmFtZXNbY3VycmVudEZyYW1lXS5zdGFy
dFRpbWU7CisgICAgICAgICAgICB2YXIgbG9uZ2VzdEZyYW1lID0gbnVsbDsKKworICAgICAgICAg
ICAgZm9yICh2YXIgbGFzdEZyYW1lID0gTWF0aC5taW4oTWF0aC5mbG9vcigoYmFyTnVtYmVyICsg
MSkgKiBmcmFtZXNQZXJCYXIpLCB0aGlzLl9mcmFtZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAg
ICAgY3VycmVudEZyYW1lIDwgbGFzdEZyYW1lOyArK2N1cnJlbnRGcmFtZSkgeworICAgICAgICAg
ICAgICAgIGlmICghbG9uZ2VzdEZyYW1lIHx8IGxvbmdlc3RGcmFtZS5jcHVUaW1lIDwgdGhpcy5f
ZnJhbWVzW2N1cnJlbnRGcmFtZV0uY3B1VGltZSkKKyAgICAgICAgICAgICAgICAgICAgbG9uZ2Vz
dEZyYW1lID0gdGhpcy5fZnJhbWVzW2N1cnJlbnRGcmFtZV07CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICB2YXIgYmFyRW5kVGltZSA9IHRoaXMuX2ZyYW1lc1tjdXJyZW50RnJhbWUgLSAxXS5l
bmRUaW1lOworICAgICAgICAgICAgaWYgKGxvbmdlc3RGcmFtZSkgeworICAgICAgICAgICAgICAg
IHRoaXMuX2xvbmdlc3RCYXJUaW1lID0gTWF0aC5tYXgodGhpcy5fbG9uZ2VzdEJhclRpbWUsIGxv
bmdlc3RGcmFtZS5jcHVUaW1lKTsKKyAgICAgICAgICAgICAgICBzdGF0aXN0aWNzLnB1c2gobG9u
Z2VzdEZyYW1lLnRpbWVCeUNhdGVnb3J5KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9iYXJUaW1l
cy5wdXNoKHsgc3RhcnRUaW1lOiBiYXJTdGFydFRpbWUsIGVuZFRpbWU6IGJhckVuZFRpbWUgfSk7
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgYmFyRW5kVGltZSA9IHJlY29yZHNbY3Vy
cmVudFJlY29yZCAtIDFdLmVuZFRpbWU7Ci0gICAgICAgICAgICBzdGF0aXN0aWNzLnB1c2gobG9u
Z2VzdFJlY29yZC50aW1lQnlDYXRlZ29yeSk7Ci0gICAgICAgICAgICB0aGlzLl9sb25nZXN0QmFy
VGltZSA9IE1hdGgubWF4KHRoaXMuX2xvbmdlc3RCYXJUaW1lLCBsb25nZXN0UmVjb3JkLmR1cmF0
aW9uKTsKLSAgICAgICAgICAgIHRoaXMuX2JhclRpbWVzLnB1c2goeyBzdGFydFRpbWU6IGJhclN0
YXJ0VGltZSwgZW5kVGltZTogYmFyRW5kVGltZSB9KTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gc3RhdGlzdGljczsKICAgICB9LApAQCAtMTAzMSwxMSArOTU0LDYgQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lVmVydGljYWxPdmVydmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzdGFy
dFRpbWU6IGZpcnN0QmFyID49IHRoaXMuX2JhclRpbWVzLmxlbmd0aCA/IEluZmluaXR5IDogdGhp
cy5fYmFyVGltZXNbZmlyc3RCYXJdLnN0YXJ0VGltZSwKICAgICAgICAgICAgIGVuZFRpbWU6IHJp
Z2h0T2Zmc2V0ICsgc25hcFRvUmlnaHRUb2xlcmFuY2VQaXhlbHMgPiB3aW5kb3dTcGFuID8gSW5m
aW5pdHkgOiB0aGlzLl9iYXJUaW1lc1tsYXN0QmFyXS5lbmRUaW1lCiAgICAgICAgIH0KLSAgICB9
LAotCi0gICAgX29uUmVjb3JkQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQotICAgIHsKLSAgICAgICAg
dGhpcy5fYWdncmVnYXRlZFJlY29yZHMucHVzaChuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdn
cmVnYXRlZFJlY29yZChldmVudC5kYXRhKSk7CiAgICAgfQogfQogCkBAIC0xMDQzLDM5ICs5NjEs
NiBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVWZXJ0aWNhbE92ZXJ2aWV3LnByb3RvdHlwZS5fX3By
b3RvX18gPSBXZWJJbnNwZWN0b3IuVmlldy5wcgogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICog
QHBhcmFtIHtPYmplY3R9IHJhd1JlY29yZAotICovCi1XZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2dy
ZWdhdGVkUmVjb3JkID0gZnVuY3Rpb24ocmF3UmVjb3JkKQotewotICAgIHRoaXMudGltZUJ5Q2F0
ZWdvcnkgPSB7fTsKLSAgICB0aGlzLmNhdGVnb3J5ID0gV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwuY2F0ZWdvcnlGb3JSZWNvcmQocmF3UmVjb3JkKTsKLSAgICB0aGlzLnR5
cGUgPSByYXdSZWNvcmQudHlwZTsKLSAgICB0aGlzLl9hZ2dyZWdhdGVTdGF0aXN0aWNzKHJhd1Jl
Y29yZCk7Ci0gICAgdGhpcy5zdGFydFRpbWUgPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5z
dGFydFRpbWVJblNlY29uZHMocmF3UmVjb3JkKTsKLSAgICB0aGlzLmVuZFRpbWUgPSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVNb2RlbC5lbmRUaW1lSW5TZWNvbmRzKHJhd1JlY29yZCk7Ci0gICAgdGhp
cy5kdXJhdGlvbiA9IHRoaXMuZW5kVGltZSAtIHRoaXMuc3RhcnRUaW1lOwotfQotCi1XZWJJbnNw
ZWN0b3IuVGltZWxpbmVBZ2dyZWdhdGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAg
ICAgKiBAcGFyYW0ge09iamVjdH0gcmF3UmVjb3JkCi0gICAgICovCi0gICAgX2FnZ3JlZ2F0ZVN0
YXRpc3RpY3M6IGZ1bmN0aW9uKHJhd1JlY29yZCkKLSAgICB7Ci0gICAgICAgIHZhciBjaGlsZHJl
blRpbWUgPSAwOwotICAgICAgICB2YXIgY2hpbGRyZW4gPSByYXdSZWNvcmQuY2hpbGRyZW4gfHwg
W107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpICB7
Ci0gICAgICAgICAgICB0aGlzLl9hZ2dyZWdhdGVTdGF0aXN0aWNzKGNoaWxkcmVuW2ldKTsKLSAg
ICAgICAgICAgIGNoaWxkcmVuVGltZSArPSBXZWJJbnNwZWN0b3IuVGltZWxpbmVNb2RlbC5kdXJh
dGlvbkluU2Vjb25kcyhjaGlsZHJlbltpXSk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGNhdGVn
b3J5TmFtZSA9IFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnJlY29yZFN0
eWxlKHJhd1JlY29yZCkuY2F0ZWdvcnkubmFtZTsKLSAgICAgICAgdmFyIG93blRpbWUgPSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVNb2RlbC5kdXJhdGlvbkluU2Vjb25kcyhyYXdSZWNvcmQpIC0gY2hp
bGRyZW5UaW1lOwotICAgICAgICB0aGlzLnRpbWVCeUNhdGVnb3J5W2NhdGVnb3J5TmFtZV0gPSAo
dGhpcy50aW1lQnlDYXRlZ29yeVtjYXRlZ29yeU5hbWVdIHx8IDApICsgb3duVGltZTsKLSAgICB9
Ci19Ci0KLS8qKgotICogQGNvbnN0cnVjdG9yCiAgKi8KIFdlYkluc3BlY3Rvci5UaW1lbGluZU92
ZXJ2aWV3TW9kZVNlbGVjdG9yID0gZnVuY3Rpb24oc2VsZWN0Q2FsbGJhY2spCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5k
ZXggZWM0N2QzOGE2NDUyYzRkNGJiY2ZjZDc2MDIxYzUxNjEzZWQ2YTRhMC4uNzdkODNjMTBmY2Vj
Mzg4Mzk5NmI0YmExNWFiNWMzODhhYTIyZTE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMzgxLDEwICszODEsMTQg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAo
dmVydGljYWxPdmVydmlldyAhPT0gdGhpcy5fdmVydGljYWxPdmVydmlldykgewogICAgICAgICAg
ICAgdGhpcy5fdmVydGljYWxPdmVydmlldyA9IHZlcnRpY2FsT3ZlcnZpZXc7CiAgICAgICAgICAg
ICB0aGlzLl9nbHVlUGFyZW50QnV0dG9uLmRpc2FibGVkID0gdmVydGljYWxPdmVydmlldzsKLSAg
ICAgICAgICAgIGlmICh2ZXJ0aWNhbE92ZXJ2aWV3KQorICAgICAgICAgICAgaWYgKHZlcnRpY2Fs
T3ZlcnZpZXcpIHsKICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygi
dGltZWxpbmUtdmVydGljYWwtb3ZlcnZpZXciKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB0aGlzLl9mcmFtZUNvbnRyb2xsZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
RnJhbWVDb250cm9sbGVyKHRoaXMuX21vZGVsLCB0aGlzLl9vdmVydmlld1BhbmUpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9mcmFtZUNvbnRyb2xsZXIuZGlz
cG9zZSgpOworICAgICAgICAgICAgICAgIHRoaXMuX2ZyYW1lQ29udHJvbGxlciA9IG51bGw7CiAg
ICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoInRpbWVsaW5lLXZl
cnRpY2FsLW92ZXJ2aWV3Iik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLl9wcmVz
ZW50YXRpb25Nb2RlbC5zZXRHbHVlUmVjb3Jkcyh0aGlzLl9nbHVlUGFyZW50QnV0dG9uLnRvZ2ds
ZWQgJiYgIXZlcnRpY2FsT3ZlcnZpZXcpOwogICAgICAgICAgICAgdGhpcy5fcmVwb3B1bGF0ZVJl
Y29yZHMoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDQy
OWZiZDhkNmY2ZDcyNDhiYWE4MzMyNzFkOWQ3NzM0ZWNhYmRlZjEuLjg2MzYyMjVhZDdiNjI1YTQ2
NjMxYzBhNjYzYmU4NjAxNGMzZWFhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanMK
QEAgLTU3NSwxMSArNTc1LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9k
ZWwuUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fY3B1VGltZSA9IHRoaXMuX3Nl
bGZUaW1lOwogCiAgICAgICAgIGlmICh0aGlzLl9jaGlsZHJlbikgewotICAgICAgICAgICAgZm9y
ICh2YXIgaW5kZXggPSB0aGlzLl9jaGlsZHJlbi5sZW5ndGg7IGluZGV4OyAtLWluZGV4KSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIGNoaWxkID0gdGhpcy5fY2hpbGRyZW5baW5kZXggLSAxXTsKLSAg
ICAgICAgICAgICAgICBmb3IgKHZhciBjYXRlZ29yeSBpbiBjYXRlZ29yaWVzKQotICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHNbY2F0ZWdvcnldICs9IGNoaWxkLl9hZ2dy
ZWdhdGVkU3RhdHNbY2F0ZWdvcnldOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh2
YXIgaW5kZXggPSB0aGlzLl9jaGlsZHJlbi5sZW5ndGg7IGluZGV4OyAtLWluZGV4KQorICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5UaW1lbGluZU1vZGVsLmFnZ3JlZ2F0ZVRpbWVCeUNhdGVn
b3JpZXModGhpcy5fYWdncmVnYXRlZFN0YXRzLCB0aGlzLl9jaGlsZHJlbltpbmRleCAtIDFdKTsK
ICAgICAgICAgICAgIGZvciAodmFyIGNhdGVnb3J5IGluIHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0cykK
ICAgICAgICAgICAgICAgICB0aGlzLl9jcHVUaW1lICs9IHRoaXMuX2FnZ3JlZ2F0ZWRTdGF0c1tj
YXRlZ29yeV07CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvV2ViS2l0LnFyYwppbmRleCBlNzY4YjBiNzY5YjJkNDlhZDBiYzBlNmI0ZDYzODBkNTE4N2Iz
NDk2Li4zYzM4ZDE4MTZkNmZlMmE5MDg1NmFlYzIyM2U1Y2ZjYjc4ZGJjNDFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0xNTAsNiArMTUw
LDcgQEAKICAgICA8ZmlsZT5UZXh0RWRpdG9yTW9kZWwuanM8L2ZpbGU+CiAgICAgPGZpbGU+VGV4
dFByb21wdC5qczwvZmlsZT4KICAgICA8ZmlsZT5UZXh0Vmlld2VyLmpzPC9maWxlPgorICAgIDxm
aWxlPlRpbWVsaW5lRnJhbWVDb250cm9sbGVyLmpzPC9maWxlPgogICAgIDxmaWxlPlRpbWVsaW5l
TWFuYWdlci5qczwvZmlsZT4KICAgICA8ZmlsZT5UaW1lbGluZU1vZGVsLmpzPC9maWxlPgogICAg
IDxmaWxlPlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCAyMDkyMmQ5
ZGQ5NjhhMDkxZWE3OTRhNmUwYzc1MGYxZDJkYTdkOWJiLi4wNGZkZWIwYTU5YmMwYjQ3ZmU0NDY0
ZjYxMzUyMGEyOThlY2FhMzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTE4MSw2ICsxODEsNyBAQCBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVsaW5lUHJlc2VudGF0aW9u
TW9kZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9IlRpbWVsaW5lUGFuZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IlRpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJUaW1lbGluZUZyYW1lQ29udHJvbGxl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
VGVzdENvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9IkhlbHBTY3JlZW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRpYWxvZy5qcyI+PC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="139450"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>