<?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>112172</bug_id>
          
          <creation_ts>2013-03-12 11:24:22 -0700</creation_ts>
          <short_desc>Web Inspector: do not aggregate non-main thread timeline events, handle them a generic fashion</short_desc>
          <delta_ts>2013-03-14 07:07:27 -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>
          <dependson>112168</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>dglazkov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>853654</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-03-12 11:24:22 -0700</bug_when>
    <thetext>This removes the logic to aggregate rasterize events in timeline agent and instead sends them, along with potential nested events, to front-end, similar to how main thread events are handled. These are later supposed to be collated with front-end event collation logic from bug 112168.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853668</commentid>
    <comment_count>1</comment_count>
      <attachid>192777</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-03-12 11:34:14 -0700</bug_when>
    <thetext>Created attachment 192777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853686</commentid>
    <comment_count>2</comment_count>
      <attachid>192777</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-12 12:05:54 -0700</bug_when>
    <thetext>Comment on attachment 192777
Patch

Attachment 192777 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17173227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854114</commentid>
    <comment_count>3</comment_count>
      <attachid>192879</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-03-13 01:21:38 -0700</bug_when>
    <thetext>Created attachment 192879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854313</commentid>
    <comment_count>4</comment_count>
      <attachid>192879</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-13 08:26:07 -0700</bug_when>
    <thetext>Comment on attachment 192879
Patch

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

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:142
&gt; +    return m_stack.isEmpty() || (m_stack.last().record-&gt;getString(&quot;type&quot;, &amp;lastRecordType) &amp;&amp; type == lastRecordType);

return !m_stack.isEmpty() &amp;&amp; (m_stack.last().record-&gt;getString(&quot;type&quot;, &amp;lastRecordType) &amp;&amp; type == lastRecordType);

&gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:245
&gt; +    ASSERT(!state.rasterizeStartStackLevel);

Looks like rasterizeStartStackLevel could be a boolean (isInRasterize).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854374</commentid>
    <comment_count>5</comment_count>
      <attachid>192941</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-03-13 10:01:13 -0700</bug_when>
    <thetext>Created attachment 192941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854377</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-03-13 10:05:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 192879 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192879&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:142
&gt; &gt; +    return m_stack.isEmpty() || (m_stack.last().record-&gt;getString(&quot;type&quot;, &amp;lastRecordType) &amp;&amp; type == lastRecordType);
&gt; 
&gt; return !m_stack.isEmpty() &amp;&amp; (m_stack.last().record-&gt;getString(&quot;type&quot;, &amp;lastRecordType) &amp;&amp; type == lastRecordType);

This is written as intended (though may be the method name is unfortunate), not having the top event is considered ok for the purpose of validation -- we hit this case if we started recording in the middle of the event.

&gt; &gt; Source/WebCore/inspector/TimelineTraceEventProcessor.cpp:245
&gt; &gt; +    ASSERT(!state.rasterizeStartStackLevel);
&gt; 
&gt; Looks like rasterizeStartStackLevel could be a boolean (isInRasterize).

Fair, this is atavism of an earlier implementation. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855174</commentid>
    <comment_count>7</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2013-03-14 07:07:27 -0700</bug_when>
    <thetext>Committed r145809: &lt;http://trac.webkit.org/changeset/145809&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192777</attachid>
            <date>2013-03-12 11:34:14 -0700</date>
            <delta_ts>2013-03-13 01:21:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112172-20130312223012.patch</filename>
            <type>text/plain</type>
            <size>25020</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDZmNDgyNDVmMzAwMmUz
MjU0MTNiYjY1M2MyODE4NTg1NmQzMTgzZS4uNDkxYTc3YWI4MTY0MTgwNGRmOTY5YmYxZWNlN2E1
OWFjN2U4ZDEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTAzLTEyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZG8gbm90IGFnZ3JlZ2F0ZSBub24tbWFpbiB0aHJlYWQgdGltZWxpbmUgZXZlbnRzLCBoYW5k
bGUgdGhlbSBhIGdlbmVyaWMgZmFzaGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEyMTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgLSBidWlsZCBuZXN0ZWQgZXZlbnQgdHJlZXMgZm9yIG5vbi1tYWlu
IHRocmVhZCBldmVudHMgc2ltaWxhciB0byBob3cgaXQncyBkb25lIG9uIG1haW4gdGhyZWFkOwor
ICAgICAgICAtIGRyb3AgYWdncmVnYXRpb24gbG9naWMgZm9yIFJhc3Rlcml6ZSBldmVudHM7Cisg
ICAgICAgIC0gZXh0cmFjIHRpbWUgY29udmVyc2lvbiBsb2dpYyBzbyB0aGF0IGl0IG1heSBiZSBy
ZXVzZWQgaW4gVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLgorCisgICAgICAgICogRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOiBkcml2ZS1ieTogZHJvcCBkdXBsaWNhdGUgbGlu
ZS4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lbGluZVRpbWVDb252ZXJ0ZXI6OnJlc2V0KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdD
RXZlbnRSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmlubmVy
QWRkUmVjb3JkVG9UaW1lbGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVuZFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JUaW1lbGluZUFnZW50OjpzZW5kRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6dGltZXN0YW1wKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oOgorICAgICAgICAoVGltZWxpbmVUaW1lQ29udmVydGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVGltZUNvbnZlcnRlcjo6VGltZWxpbmVUaW1lQ29udmVy
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVGltZUNvbnZlcnRlcjo6ZnJvbU1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKElu
c3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6dGltZUNvbnZlcnRlcik6CisgICAgICAgICogaW5zcGVjdG9yL1RpbWVsaW5lUmVj
b3JkRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUJhY2tncm91bmRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
aW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oOgorICAgICAgICAoVGltZWxpbmVSZWNv
cmRGYWN0b3J5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkU3RhY2s6OlRpbWVsaW5l
UmVjb3JkU3RhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVJlY29yZFN0YWNrOjphZGRTY29wZWRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZWxpbmVSZWNvcmRTdGFjazo6Y2xvc2VTY29wZWRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6
VGltZWxpbmVSZWNvcmRTdGFjazo6YWRkSW5zdGFudFJlY29yZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lbGluZVJlY29yZFN0YWNrOjppc09wZW5SZWNvcmRPZlR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6VGltZWxpbmVSZWNvcmRTdGFjazo6c2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9uQmVnaW5GcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9uUmFz
dGVyVGFza0JlZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvcjo6b25SYXN0ZXJUYXNrRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VF
dmVudFByb2Nlc3Nvcjo6Y3JlYXRlUmVjb3JkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yLmg6CisgICAgICAgIChUaW1lbGluZVJlY29yZFN0YWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkU3RhY2s6OkVudHJ5OjpFbnRyeSk6Cisg
ICAgICAgIChFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZFN0YWNrOjpU
aW1lbGluZVJlY29yZFN0YWNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUaW1lbGluZVRocmVhZFN0YXRlOjpUaW1l
bGluZVRocmVhZFN0YXRlKToKKyAgICAgICAgKFRpbWVsaW5lVGhyZWFkU3RhdGUpOgorICAgICAg
ICAoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVudDo6VHJhY2VFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRyYWNlRXZlbnQ6OmlzTnVs
bCk6CisgICAgICAgIChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OnRocmVh
ZFN0YXRlKToKKwogMjAxMy0wMy0xMiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTb3VyY2VGcmFtZXMgYXJlIGxlYWtpbmcg
b24gcmVsb2FkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCmluZGV4IGI3NzAxYTNhZjRlNzZiYzlkNjAwYzAxNjgyZDM4MjhkZmQzYjM0Yzgu
LmFiNWMzMjUzNTJmM2E3YTMyOGE5Y2VjMTVkNzUzMzZlZjc5YzllZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTc3Miw3ICs3
NzIsNiBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJTY2hlZHVsZSBTdHlsZSBSZWNhbGN1bGF0aW9uIl0g
PSAiU2NoZWR1bGUgU3R5bGUgUmVjYWxjdWxhdGlvbgogbG9jYWxpemVkU3RyaW5nc1siSW52YWxp
ZGF0ZSBMYXlvdXQiXSA9ICJJbnZhbGlkYXRlIExheW91dCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJD
b21wb3NpdGUgTGF5ZXJzIl0gPSAiQ29tcG9zaXRlIExheWVycyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJJbnRlcnZhbCBEdXJhdGlvbiJdID0gIkludGVydmFsIER1cmF0aW9uIjsKLWxvY2FsaXplZFN0
cmluZ3NbIkNQVSB0aW1lIl0gPSAiQ1BVIHRpbWUiOwogbG9jYWxpemVkU3RyaW5nc1siUmVwbGF5
IFhIUiJdID0gIlJlcGxheSBYSFIiOwogbG9jYWxpemVkU3RyaW5nc1siWyAlZCAtICVkIF0iXSA9
ICJbICVkIC0gJWQgXSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJTZWFyY2ggc291cmNlcyJdID0gIlNl
YXJjaCBzb3VyY2VzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCAwMjg4YjA0MThjNjBhYjExYmZhOGM3ZWVhMjBkYzVj
YzQzMTU1YTNkLi4zM2UxNzU0YmEyOWYzNGIyNDYwYzcyY2MwZTg2ZjIzOWI2ZTU3NzM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwCkBAIC0xMjIsNiArMTIyLDExIEBAIHN0YXRpYyBjb25zdCBjaGFyIFdlYlNvY2tldERlc3Ry
b3lbXSA9ICJXZWJTb2NrZXREZXN0cm95IjsKIGNvbnN0IGNoYXIgUmFzdGVyaXplW10gPSAiUmFz
dGVyaXplIjsKIH0KIAordm9pZCBUaW1lbGluZVRpbWVDb252ZXJ0ZXI6OnJlc2V0KCkKK3sKKyAg
ICBtX3N0YXJ0T2Zmc2V0ID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBjdXJyZW50
VGltZSgpOworfQorCiB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ0V2ZW50UmVj
b3JkcygpCiB7CiAgICAgaWYgKCFtX2djRXZlbnRzLnNpemUoKSkKQEAgLTEzMCw5ICsxMzUsOSBA
QCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnB1c2hHQ0V2ZW50UmVjb3JkcygpCiAgICAg
R0NFdmVudHMgZXZlbnRzID0gbV9nY0V2ZW50czsKICAgICBtX2djRXZlbnRzLmNsZWFyKCk7CiAg
ICAgZm9yIChHQ0V2ZW50czo6aXRlcmF0b3IgaSA9IGV2ZW50cy5iZWdpbigpOyBpICE9IGV2ZW50
cy5lbmQoKTsgKytpKSB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3RhbXBGcm9t
TWljcm9zZWNvbmRzKGktPnN0YXJ0VGltZSksIG1fbWF4Q2FsbFN0YWNrRGVwdGgpOworICAgICAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUdlbmVyaWNSZWNvcmQobV90aW1lQ29udmVydGVyLmZyb21Nb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoaS0+c3RhcnRUaW1lKSwgbV9tYXhDYWxsU3RhY2tEZXB0aCk7CiAgICAgICAg
IHJlY29yZC0+c2V0T2JqZWN0KCJkYXRhIiwgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVH
Q0V2ZW50RGF0YShpLT5jb2xsZWN0ZWRCeXRlcykpOwotICAgICAgICByZWNvcmQtPnNldE51bWJl
cigiZW5kVGltZSIsIHRpbWVzdGFtcEZyb21NaWNyb3NlY29uZHMoaS0+ZW5kVGltZSkpOworICAg
ICAgICByZWNvcmQtPnNldE51bWJlcigiZW5kVGltZSIsIG1fdGltZUNvbnZlcnRlci5mcm9tTW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGktPmVuZFRpbWUpKTsKICAgICAgICAgYWRkUmVjb3Jk
VG9UaW1lbGluZShyZWNvcmQucmVsZWFzZSgpLCBUaW1lbGluZVJlY29yZFR5cGU6OkdDRXZlbnQp
OwogICAgIH0KIH0KQEAgLTE3OCw3ICsxODMsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnN0YXJ0KEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBtYXhDYWxsU3RhY2tEZXB0aCkKICAg
ICBlbHNlCiAgICAgICAgIG1fbWF4Q2FsbFN0YWNrRGVwdGggPSA1OwogICAgIG1fc3RhdGUtPnNl
dExvbmcoVGltZWxpbmVBZ2VudFN0YXRlOjp0aW1lbGluZU1heENhbGxTdGFja0RlcHRoLCBtX21h
eENhbGxTdGFja0RlcHRoKTsKLSAgICBtX3RpbWVzdGFtcE9mZnNldCA9IGN1cnJlbnRUaW1lKCkg
LSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICBtX3RpbWVDb252ZXJ0ZXIucmVz
ZXQoKTsKIAogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yVGltZWxpbmVB
Z2VudCh0aGlzKTsKICAgICBTY3JpcHRHQ0V2ZW50OjphZGRFdmVudExpc3RlbmVyKHRoaXMpOwpA
QCAtNTQ3LDExICs1NTIsOSBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmlubmVyQWRk
UmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdAogICAgIGVsc2UKICAg
ICAgICAgc2V0RE9NQ291bnRlcnMocmVjb3JkLmdldCgpKTsKIAotICAgIGlmIChtX3JlY29yZFN0
YWNrLmlzRW1wdHkoKSkgewotICAgICAgICAvLyBGSVhNRTogcnVudGltZUNhc3QgaXMgYSBoYWNr
LiBXZSBkbyBpdCBiZWNhdXNlIHdlIGNhbid0IGJ1aWxkIFRpbWVsaW5lRXZlbnQgZGlyZWN0bHkg
bm93LgotICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50
PiByZWNvcmRDaGVja2VkID0gVHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50Ojpy
dW50aW1lQ2FzdChyZWNvcmQucmVsZWFzZSgpKTsKLSAgICAgICAgbV9mcm9udGVuZC0+ZXZlbnRS
ZWNvcmRlZChyZWNvcmRDaGVja2VkLnJlbGVhc2UoKSk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAo
bV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpCisgICAgICAgIHNlbmRFdmVudChyZWNvcmQucmVsZWFz
ZSgpKTsKKyAgICBlbHNlIHsKICAgICAgICAgVGltZWxpbmVSZWNvcmRFbnRyeSBwYXJlbnQgPSBt
X3JlY29yZFN0YWNrLmxhc3QoKTsKICAgICAgICAgcGFyZW50LmNoaWxkcmVuLT5wdXNoT2JqZWN0
KHJlY29yZC5yZWxlYXNlKCkpOwogICAgIH0KQEAgLTYzNCw3ICs2MzcsNiBAQCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbgogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9tZW1v
cnlBZ2VudChtZW1vcnlBZ2VudCkKICAgICAsIG1fZnJvbnRlbmQoMCkKLSAgICAsIG1fdGltZXN0
YW1wT2Zmc2V0KDApCiAgICAgLCBtX2lkKDEpCiAgICAgLCBtX21heENhbGxTdGFja0RlcHRoKDUp
CiAgICAgLCBtX3BsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50SW5zdGFsbGVkQXRTdGFja0Rl
cHRoKDApCkBAIC02NDksMTkgKzY1MSwxNCBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6
OmFwcGVuZFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29ucwogICAg
IHB1c2hHQ0V2ZW50UmVjb3JkcygpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29y
ZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3RhbXAo
KSwgY2FwdHVyZUNhbGxTdGFjayA/IG1fbWF4Q2FsbFN0YWNrRGVwdGggOiAwKTsKICAgICByZWNv
cmQtPnNldE9iamVjdCgiZGF0YSIsIGRhdGEpOwotICAgIHJlY29yZC0+c2V0U3RyaW5nKCJ0eXBl
IiwgdHlwZSk7CiAgICAgc2V0RnJhbWVJZGVudGlmaWVyKHJlY29yZC5nZXQoKSwgZnJhbWUpOwog
ICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLnJlbGVhc2UoKSwgdHlwZSk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YXBwZW5kQmFja2dyb3VuZFRocmVhZFJlY29yZChQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBkb3Vi
bGUgc3RhcnRUaW1lLCBkb3VibGUgZW5kVGltZSwgY29uc3QgU3RyaW5nJiB0aHJlYWROYW1lKQor
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzZW5kRXZlbnQoUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGV2ZW50KQogewotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZCh0aW1lc3RhbXBGcm9t
TWljcm9zZWNvbmRzKHN0YXJ0VGltZSksIDApOwotICAgIHJlY29yZC0+c2V0T2JqZWN0KCJkYXRh
IiwgZGF0YSk7Ci0gICAgcmVjb3JkLT5zZXRTdHJpbmcoInR5cGUiLCB0eXBlKTsKLSAgICByZWNv
cmQtPnNldFN0cmluZygidGhyZWFkIiwgdGhyZWFkTmFtZSk7Ci0gICAgcmVjb3JkLT5zZXROdW1i
ZXIoImVuZFRpbWUiLCB0aW1lc3RhbXBGcm9tTWljcm9zZWNvbmRzKGVuZFRpbWUpKTsKLSAgICBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50PiByZWNvcmRDaGVja2Vk
ID0gVHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpUaW1lbGluZUV2ZW50OjpydW50aW1lQ2FzdChyZWNv
cmQucmVsZWFzZSgpKTsKKyAgICAvLyBGSVhNRTogcnVudGltZUNhc3QgaXMgYSBoYWNrLiBXZSBk
byBpdCBiZWNhdXNlIHdlIGNhbid0IGJ1aWxkIFRpbWVsaW5lRXZlbnQgZGlyZWN0bHkgbm93Lgor
ICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ+IHJlY29yZENo
ZWNrZWQgPSBUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ6OnJ1bnRpbWVDYXN0
KGV2ZW50KTsKICAgICBtX2Zyb250ZW5kLT5ldmVudFJlY29yZGVkKHJlY29yZENoZWNrZWQucmVs
ZWFzZSgpKTsKIH0KIApAQCAtNzAwLDEyICs2OTcsNyBAQCB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OmNsZWFyUmVjb3JkU3RhY2soKQogCiBkb3VibGUgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6dGltZXN0YW1wKCkKIHsKLSAgICByZXR1cm4gdGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhX
VEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKLX0KLQotZG91YmxlIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcEZyb21NaWNyb3NlY29uZHMoZG91YmxlIG1pY3Jvc2Vj
b25kcykKLXsKLSAgICByZXR1cm4gKG1pY3Jvc2Vjb25kcyArIG1fdGltZXN0YW1wT2Zmc2V0KSAq
IDEwMDAuMDsKKyAgICByZXR1cm4gbV90aW1lQ29udmVydGVyLmZyb21Nb25vdG9uaWNhbGx5SW5j
cmVhc2luZ1RpbWUoV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CiB9CiAKIFBh
Z2UqIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnBhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggZTFjY2MyNmM3ZWU4MGJk
MjA1YTZmYjg1MjE3YTZlODgyYzQxOWJjYi4uOTg0N2UxZGQwMmNhYjI1NThlNTFjZTM4YjMxY2Zi
NGMxNmU0NGM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oCkBAIC02Nyw2ICs2NywxOSBAQCBuYW1lc3BhY2UgVGltZWxpbmVSZWNv
cmRUeXBlIHsKIGV4dGVybiBjb25zdCBjaGFyIFJhc3Rlcml6ZVtdOwogfTsKIAorY2xhc3MgVGlt
ZWxpbmVUaW1lQ29udmVydGVyIHsKK3B1YmxpYzoKKyAgICBUaW1lbGluZVRpbWVDb252ZXJ0ZXIo
KQorICAgICAgICA6IG1fc3RhcnRPZmZzZXQoMCkKKyAgICB7CisgICAgfQorICAgIGRvdWJsZSBm
cm9tTW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGRvdWJsZSB0aW1lKSBjb25zdCAgeyByZXR1
cm4gKHRpbWUgLSBtX3N0YXJ0T2Zmc2V0KSAqIDEwMDAuMDsgfQorICAgIHZvaWQgcmVzZXQoKTsK
KworcHJpdmF0ZToKKyAgICBkb3VibGUgbV9zdGFydE9mZnNldDsKK307CisKIGNsYXNzIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQKICAgICA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9yVGltZWxpbmVBZ2VudD4sCiAgICAgICBwdWJsaWMgU2NyaXB0R0NFdmVudExpc3RlbmVyLApA
QCAtMTgxLDYgKzE5NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzaXplSW1h
Z2UoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgVGltZWxpbmVSZWNv
cmRTdGFjazsKICAgICBmcmllbmQgY2xhc3MgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOwog
CiAgICAgc3RydWN0IFRpbWVsaW5lUmVjb3JkRW50cnkgewpAQCAtMTk3LDcgKzIxMSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIAogICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rvck1lbW9yeUFnZW50KiwgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbnNwZWN0b3JUeXBlLCBJbnNwZWN0b3JDbGllbnQqKTsK
IAotICAgIHZvaWQgYXBwZW5kQmFja2dyb3VuZFRocmVhZFJlY29yZChQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBkb3VibGUgc3RhcnRUaW1lLCBk
b3VibGUgZW5kVGltZSwgY29uc3QgU3RyaW5nJiB0aHJlYWROYW1lKTsKKyAgICB2b2lkIHNlbmRF
dmVudChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4pOwogICAgIHZvaWQgYXBwZW5kUmVjb3Jk
KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIGJv
b2wgY2FwdHVyZUNhbGxTdGFjaywgRnJhbWUqKTsKICAgICB2b2lkIHB1c2hDdXJyZW50UmVjb3Jk
KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNh
cHR1cmVDYWxsU3RhY2ssIEZyYW1lKiwgYm9vbCBoYXNMb3dMZXZlbERldGFpbHMgPSBmYWxzZSk7
CiAKQEAgLTIxNSwxMiArMjI5LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbm5lckFkZFJlY29y
ZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5
cGUpOwogICAgIHZvaWQgY2xlYXJSZWNvcmRTdGFjaygpOwogCisgICAgY29uc3QgVGltZWxpbmVU
aW1lQ29udmVydGVyJiB0aW1lQ29udmVydGVyKCkgY29uc3QgeyByZXR1cm4gbV90aW1lQ29udmVy
dGVyOyB9CiAgICAgZG91YmxlIHRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSB0aW1lc3RhbXBGcm9t
TWljcm9zZWNvbmRzKGRvdWJsZSBtaWNyb3NlY29uZHMpOwogICAgIFBhZ2UqIHBhZ2UoKTsKIAog
ICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAgICAgSW5zcGVjdG9yTWVtb3J5
QWdlbnQqIG1fbWVtb3J5QWdlbnQ7CisgICAgVGltZWxpbmVUaW1lQ29udmVydGVyIG1fdGltZUNv
bnZlcnRlcjsKIAogICAgIEluc3BlY3RvckZyb250ZW5kOjpUaW1lbGluZSogbV9mcm9udGVuZDsK
ICAgICBkb3VibGUgbV90aW1lc3RhbXBPZmZzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCmluZGV4IGU0N2NiYTVkZThkMjYyNzk2
YzQwZDczYWQ5ZThlODQ1NWY0NTU3YWMuLmEyZDU1NWU3NzczNmU5N2NlODFmNTAxZjJlMTc1NjMz
ZGJiZWMxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwCkBAIC01OSw2ICs1OSwxNCBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKGRvdWJsZSBz
dAogICAgIHJldHVybiByZWNvcmQucmVsZWFzZSgpOwogfQogCitQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVCYWNrZ3JvdW5kUmVjb3JkKGRv
dWJsZSBzdGFydFRpbWUsIGNvbnN0IFN0cmluZyYgdGhyZWFkTmFtZSkKK3sKKyAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAg
IHJlY29yZC0+c2V0TnVtYmVyKCJzdGFydFRpbWUiLCBzdGFydFRpbWUpOworICAgIHJlY29yZC0+
c2V0U3RyaW5nKCJ0aHJlYWQiLCB0aHJlYWROYW1lKTsKKyAgICByZXR1cm4gcmVjb3JkLnJlbGVh
c2UoKTsKK30KKwogUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFj
dG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoY29uc3Qgc2l6ZV90IHVzZWRIZWFwU2l6ZURlbHRhKQog
ewogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOwpAQCAtMjEzLDE0ICsyMjEsNiBAQCB2b2lkIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
YWRkUmVjdERhdGEoSW5zcGVjdG9yT2JqZWN0KiBkYXRhLCBjb25zdCBMYXlvdXRSZWN0JgogICAg
IGRhdGEtPnNldE51bWJlcigiaGVpZ2h0IiwgcmVjdC5oZWlnaHQoKSk7CiB9CiAKLVBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJhc3RlckRh
dGEoZG91YmxlIHRvdGFsQ1BVVGltZSwgaW50IHRocmVhZHNVc2VkKQotewotICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGRhdGEgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgIGRh
dGEtPnNldE51bWJlcigidG90YWxDUFVUaW1lIiwgdG90YWxDUFVUaW1lKTsKLSAgICBkYXRhLT5z
ZXROdW1iZXIoInRocmVhZHNVc2VkIiwgdGhyZWFkc1VzZWQpOwotICAgIHJldHVybiBkYXRhLnJl
bGVhc2UoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29y
ZEZhY3RvcnkuaAppbmRleCAwOTI1NjQ5MzFjOGM0OWRkYTM3ZmRhY2RiOGZhNGQwODY2YzBmMWM2
Li42OGNiYTZkNmJhOWQyMzY2OTZmMjA1YTMxZGU1MjBkZDliODFlNTY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCkBAIC00OSw2ICs0
OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBUaW1lbGluZVJlY29yZEZhY3Rv
cnkgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBjcmVhdGVHZW5lcmljUmVjb3JkKGRvdWJsZSBzdGFydFRpbWUsIGludCBtYXhDYWxsU3Rh
Y2tEZXB0aCk7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3Jl
YXRlQmFja2dyb3VuZFJlY29yZChkb3VibGUgc3RhcnRUaW1lLCBjb25zdCBTdHJpbmcmIHRocmVh
ZCk7CiAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVH
Q0V2ZW50RGF0YShjb25zdCBzaXplX3QgdXNlZEhlYXBTaXplRGVsdGEpOwogCkBAIC0xMDgsOCAr
MTA5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgcmV0dXJuIGRhdGEucmVs
ZWFzZSgpOwogICAgICAgICB9CiAjZW5kaWYKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBjcmVhdGVSYXN0ZXJEYXRhKGRvdWJsZSB0b3RhbENQVVRpbWUsIGludCB0
aHJlYWRzVXNlZCk7Ci0KICAgICBwcml2YXRlOgogICAgICAgICBUaW1lbGluZVJlY29yZEZhY3Rv
cnkoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Rp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcAppbmRleCA5MjEwY2FhZGVmNTRmZjk1ZmYx
YTAwZTBmODQ1ZjdiMWY1NTAyNTkzLi44MDY2MjdkNDVjOTdmYzVmOTM1MDY2NTEwMTgwOWVhNDFj
YzRiNmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0qIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKiBDb3B5cmlnaHQg
KEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKQEAgLTM2LDcgKzM2LDYgQEAKIAogI2luY2x1ZGUgIkluc3BlY3Rv
ckNsaWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgotI2luY2x1
ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJUaW1lbGluZVJlY29yZEZh
Y3RvcnkuaCIKIAogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpAQCAtMTA0LDEzICsxMDMs
NTggQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwY2UKKworCitUaW1lbGluZVJlY29yZFN0
YWNrOjpUaW1lbGluZVJlY29yZFN0YWNrKFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4g
dGltZWxpbmVBZ2VudCkKKyAgICA6IG1fdGltZWxpbmVBZ2VudCh0aW1lbGluZUFnZW50KQorewor
fQorCit1bnNpZ25lZCBUaW1lbGluZVJlY29yZFN0YWNrOjphZGRTY29wZWRSZWNvcmQoUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCkKK3sKKyAgICBtX3N0YWNrLmFwcGVuZChFbnRy
eShyZWNvcmQpKTsKKyAgICByZXR1cm4gbV9zdGFjay5zaXplKCk7Cit9CisKK3ZvaWQgVGltZWxp
bmVSZWNvcmRTdGFjazo6Y2xvc2VTY29wZWRSZWNvcmQoZG91YmxlIGVuZFRpbWUpCit7CisgICAg
aWYgKG1fc3RhY2suaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgRW50cnkgbGFzdCA9
IG1fc3RhY2subGFzdCgpOworICAgIG1fc3RhY2sucmVtb3ZlTGFzdCgpOworICAgIGxhc3QucmVj
b3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCBlbmRUaW1lKTsKKyAgICBpZiAobGFzdC5jaGlsZHJl
bi0+bGVuZ3RoKCkpCisgICAgICAgIGxhc3QucmVjb3JkLT5zZXRBcnJheSgiY2hpbGRyZW4iLCBs
YXN0LmNoaWxkcmVuKTsKKyAgICBhZGRJbnN0YW50UmVjb3JkKGxhc3QucmVjb3JkKTsKK30KKwor
dm9pZCBUaW1lbGluZVJlY29yZFN0YWNrOjphZGRJbnN0YW50UmVjb3JkKFBhc3NSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiByZWNvcmQpCit7CisgICAgaWYgKG1fc3RhY2suaXNFbXB0eSgpKQorICAg
ICAgICBzZW5kKHJlY29yZCk7CisgICAgZWxzZQorICAgICAgICBtX3N0YWNrLmxhc3QoKS5jaGls
ZHJlbi0+cHVzaE9iamVjdChyZWNvcmQpOworfQorCitib29sIFRpbWVsaW5lUmVjb3JkU3RhY2s6
OmlzT3BlblJlY29yZE9mVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgU3RyaW5nIGxh
c3RSZWNvcmRUeXBlOworICAgIHJldHVybiBtX3N0YWNrLmlzRW1wdHkoKSB8fCAobV9zdGFjay5s
YXN0KCkucmVjb3JkLT5nZXRTdHJpbmcoInR5cGUiLCAmbGFzdFJlY29yZFR5cGUpICYmIHR5cGUg
PT0gbGFzdFJlY29yZFR5cGUpOworfQorCit2b2lkIFRpbWVsaW5lUmVjb3JkU3RhY2s6OnNlbmQo
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCkKK3sKKyAgICBJbnNwZWN0b3JUaW1l
bGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gbV90aW1lbGluZUFnZW50LmdldCgpOworICAgIGlm
ICghdGltZWxpbmVBZ2VudCkKKyAgICAgICAgcmV0dXJuOworICAgIHRpbWVsaW5lQWdlbnQtPnNl
bmRFdmVudChyZWNvcmQpOworfQorCiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3NvcihXZWFrUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IHRp
bWVsaW5lQWdlbnQsIEluc3BlY3RvckNsaWVudCAqY2xpZW50KQogICAgIDogbV90aW1lbGluZUFn
ZW50KHRpbWVsaW5lQWdlbnQpCisgICAgLCBtX3RpbWVDb252ZXJ0ZXIodGltZWxpbmVBZ2VudC5n
ZXQoKS0+dGltZUNvbnZlcnRlcigpKQogICAgICwgbV9pbnNwZWN0b3JDbGllbnQoY2xpZW50KQog
ICAgICwgbV9wYWdlSWQocmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1fdGlt
ZWxpbmVBZ2VudC5nZXQoKS0+cGFnZSgpKSkKLSAgICAsIG1fZmlyc3RSYXN0ZXJTdGFydFRpbWUo
MCkKLSAgICAsIG1fbGFzdFJhc3RlckVuZFRpbWUoMCkKLSAgICAsIG1fZnJhbWVSYXN0ZXJUaW1l
KDApCiAgICAgLCBtX2xheWVySWQoMCkKIHsKICAgICByZWdpc3RlckhhbmRsZXIoSW5zdHJ1bWVu
dGF0aW9uRXZlbnRzOjpCZWdpbkZyYW1lLCBUcmFjZVBoYXNlSW5zdGFudCwgJlRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvcjo6b25CZWdpbkZyYW1lKTsKQEAgLTE3OCw3ICsyMjIsNyBAQCB2b2lk
IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vzc0V2ZW50T25BbnlUaHJlYWQoVHJh
Y2VFdmVudFBoYXNlIHBoYXNlLAogCiB2b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6
b25CZWdpbkZyYW1lKGNvbnN0IFRyYWNlRXZlbnQmKQogewotICAgIGZsdXNoUmFzdGVyaXplclN0
YXRpc3RpY3MoKTsKKyAgICBwcm9jZXNzQmFja2dyb3VuZEV2ZW50cygpOwogfQogCiB2b2lkIFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25QYWludExheWVyQmVnaW4oY29uc3QgVHJhY2VF
dmVudCYgZXZlbnQpCkBAIC0xOTUsMjYgKzIzOSwyMiBAQCB2b2lkIFRpbWVsaW5lVHJhY2VFdmVu
dFByb2Nlc3Nvcjo6b25QYWludExheWVyRW5kKGNvbnN0IFRyYWNlRXZlbnQmKQogdm9pZCBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9uUmFzdGVyVGFza0JlZ2luKGNvbnN0IFRyYWNlRXZl
bnQmIGV2ZW50KQogewogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBsYXllcklkID0gZXZlbnQuYXNV
SW50KEluc3RydW1lbnRhdGlvbkV2ZW50QXJndW1lbnRzOjpMYXllcklkKTsKLSAgICBUaHJlYWRJ
ZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIgPSBldmVudC50aHJlYWRJZGVudGlmaWVyKCk7Ci0g
ICAgQVNTRVJUKG1fcmFzdGVyU3RhcnRUaW1lQnlUaHJlYWQuZ2V0KHRocmVhZElkZW50aWZpZXIp
ID09IEhhc2hUcmFpdHM8ZG91YmxlPjo6ZW1wdHlWYWx1ZSgpKTsKLSAgICBkb3VibGUgdGltZXN0
YW1wID0gbV9rbm93bkxheWVycy5jb250YWlucyhsYXllcklkKSA/IGV2ZW50LnRpbWVzdGFtcCgp
IDogMDsKLSAgICBtX3Jhc3RlclN0YXJ0VGltZUJ5VGhyZWFkLnNldCh0aHJlYWRJZGVudGlmaWVy
LCB0aW1lc3RhbXApOworICAgIGlmICghbV9rbm93bkxheWVycy5jb250YWlucyhsYXllcklkKSkK
KyAgICAgICAgcmV0dXJuOworICAgIFRpbWVsaW5lVGhyZWFkU3RhdGUmIHN0YXRlID0gdGhyZWFk
U3RhdGUoZXZlbnQudGhyZWFkSWRlbnRpZmllcigpKTsKKyAgICBBU1NFUlQoIXN0YXRlLnJhc3Rl
cml6ZVN0YXJ0U3RhY2tMZXZlbCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3Jk
ID0gY3JlYXRlUmVjb3JkKGV2ZW50LCBUaW1lbGluZVJlY29yZFR5cGU6OlJhc3Rlcml6ZSk7Cisg
ICAgc3RhdGUucmFzdGVyaXplU3RhcnRTdGFja0xldmVsID0gc3RhdGUucmVjb3JkU3RhY2suYWRk
U2NvcGVkUmVjb3JkKHJlY29yZC5yZWxlYXNlKCkpOwogfQogCiB2b2lkIFRpbWVsaW5lVHJhY2VF
dmVudFByb2Nlc3Nvcjo6b25SYXN0ZXJUYXNrRW5kKGNvbnN0IFRyYWNlRXZlbnQmIGV2ZW50KQog
ewotICAgIEhhc2hNYXA8VGhyZWFkSWRlbnRpZmllciwgZG91YmxlPjo6aXRlcmF0b3IgaXQgPSBt
X3Jhc3RlclN0YXJ0VGltZUJ5VGhyZWFkLmZpbmQoZXZlbnQudGhyZWFkSWRlbnRpZmllcigpKTsK
LSAgICBpZiAoaXQgPT0gbV9yYXN0ZXJTdGFydFRpbWVCeVRocmVhZC5lbmQoKSkKLSAgICAgICAg
cmV0dXJuOwotICAgIGRvdWJsZSBzdGFydFRpbWUgPSBpdC0+dmFsdWU7Ci0gICAgZG91YmxlIGVu
ZFRpbWUgPSBldmVudC50aW1lc3RhbXAoKTsKLSAgICBpZiAoc3RhcnRUaW1lID09IEhhc2hUcmFp
dHM8ZG91YmxlPjo6ZW1wdHlWYWx1ZSgpKSAvLyBSYXN0ZXJpemluZyB1bmtub3duIGxheWVyLgor
ICAgIFRpbWVsaW5lVGhyZWFkU3RhdGUmIHN0YXRlID0gdGhyZWFkU3RhdGUoZXZlbnQudGhyZWFk
SWRlbnRpZmllcigpKTsKKyAgICBpZiAoIXN0YXRlLnJhc3Rlcml6ZVN0YXJ0U3RhY2tMZXZlbCkK
ICAgICAgICAgcmV0dXJuOwotICAgIG1fZnJhbWVSYXN0ZXJUaW1lICs9IGVuZFRpbWUgLSBzdGFy
dFRpbWU7Ci0gICAgaXQtPnZhbHVlID0gSGFzaFRyYWl0czxkb3VibGU+OjplbXB0eVZhbHVlKCk7
Ci0gICAgaWYgKCFtX2ZpcnN0UmFzdGVyU3RhcnRUaW1lIHx8IG1fZmlyc3RSYXN0ZXJTdGFydFRp
bWUgPiBzdGFydFRpbWUpCi0gICAgICAgIG1fZmlyc3RSYXN0ZXJTdGFydFRpbWUgPSBzdGFydFRp
bWU7Ci0gICAgbV9sYXN0UmFzdGVyRW5kVGltZSA9IGVuZFRpbWU7CisgICAgQVNTRVJUKHN0YXRl
LmlzT3BlblJlY29yZE9mVHlwZShUaW1lbGluZVJlY29yZFR5cGU6OlJhc3Rlcml6ZSkpOworICAg
IHN0YXRlLnJlY29yZFN0YWNrLmNsb3NlU2NvcGVkUmVjb3JkKG1fdGltZUNvbnZlcnRlci5mcm9t
TW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGV2ZW50LnRpbWVzdGFtcCgpKSk7CisgICAgc3Rh
dGUucmFzdGVyaXplU3RhcnRTdGFja0xldmVsID0gMDsKIH0KIAogdm9pZCBUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I6Om9uTGF5ZXJEZWxldGVkKGNvbnN0IFRyYWNlRXZlbnQmIGV2ZW50KQpA
QCAtMjM1LDI1ICsyNzUsMTMgQEAgdm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9u
UGFpbnQoY29uc3QgVHJhY2VFdmVudCYgZXZlbnQpCiAgICAgICAgIG1fa25vd25MYXllcnMuYWRk
KG1fbGF5ZXJJZCk7CiB9CiAKLXZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpmbHVz
aFJhc3Rlcml6ZXJTdGF0aXN0aWNzKCkKK1Bhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBUaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OmNyZWF0ZVJlY29yZChjb25zdCBUcmFjZUV2ZW50JiBl
dmVudCwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBlLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZGF0YSkKIHsKLSAgICBwcm9jZXNzQmFja2dyb3VuZEV2ZW50cygpOwotICAgIGlmIChtX2xh
c3RSYXN0ZXJFbmRUaW1lKSB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEg
PSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJhc3RlckRhdGEobV9mcmFtZVJhc3RlclRp
bWUsIG1fcmFzdGVyU3RhcnRUaW1lQnlUaHJlYWQuc2l6ZSgpKTsKLSAgICAgICAgc2VuZFRpbWVs
aW5lUmVjb3JkKGRhdGEsIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmFzdGVyaXplLCBtX2ZpcnN0UmFz
dGVyU3RhcnRUaW1lLCBtX2xhc3RSYXN0ZXJFbmRUaW1lLCAibXVsdGlwbGUiKTsKLSAgICB9Ci0g
ICAgbV9maXJzdFJhc3RlclN0YXJ0VGltZSA9IDA7Ci0gICAgbV9sYXN0UmFzdGVyRW5kVGltZSA9
IDA7Ci0gICAgbV9mcmFtZVJhc3RlclRpbWUgPSAwOwotfQotCi12b2lkIFRpbWVsaW5lVHJhY2VF
dmVudFByb2Nlc3Nvcjo6c2VuZFRpbWVsaW5lUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHJlY29yZFR5cGUsIGRvdWJsZSBzdGFydFRpbWUsIGRv
dWJsZSBlbmRUaW1lLCBjb25zdCBTdHJpbmcmIHRocmVhZCkKLXsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBt
X3RpbWVsaW5lQWdlbnQuZ2V0KCk7Ci0gICAgaWYgKCF0aW1lbGluZUFnZW50KQotICAgICAgICBy
ZXR1cm47Ci0gICAgdGltZWxpbmVBZ2VudC0+YXBwZW5kQmFja2dyb3VuZFRocmVhZFJlY29yZChk
YXRhLCByZWNvcmRUeXBlLCBzdGFydFRpbWUsIGVuZFRpbWUsIHRocmVhZCk7CisgICAgZG91Ymxl
IHN0YXJ0VGltZSA9IG1fdGltZUNvbnZlcnRlci5mcm9tTW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKGV2ZW50LnRpbWVzdGFtcCgpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNv
cmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUJhY2tncm91bmRSZWNvcmQoc3RhcnRU
aW1lLCBTdHJpbmc6Om51bWJlcihldmVudC50aHJlYWRJZGVudGlmaWVyKCkpKTsKKyAgICByZWNv
cmQtPnNldFN0cmluZygidHlwZSIsIHJlY29yZFR5cGUpOworICAgIHJlY29yZC0+c2V0T2JqZWN0
KCJkYXRhIiwgZGF0YSA/IGRhdGEgOiBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpKTsKKyAgICBy
ZXR1cm4gcmVjb3JkLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I6OnByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaAppbmRleCA4NjFhYjkw
ODIwZDNlYWM4ZDUwYTJmMDhkNmVlOWFkZWJkZmI4YzNhLi4zOGIyNTQ2NzUyMjhmYjdiOWZlYmRm
MmMyN2Q2YTIwNjU1MWVlNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQogCisjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTQ5LDYgKzUwLDM2IEBAIGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ7CiBjbGFzcyBQYWdlOwogCitjbGFzcyBUaW1lbGluZVJlY29yZFN0
YWNrIHsKK3ByaXZhdGU6CisgICAgc3RydWN0IEVudHJ5IHsKKyAgICAgICAgRW50cnkoUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCkKKyAgICAgICAgICAgIDogcmVjb3JkKHJlY29y
ZCkKKyAgICAgICAgICAgICwgY2hpbGRyZW4oSW5zcGVjdG9yQXJyYXk6OmNyZWF0ZSgpKQorICAg
ICAgICB7CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNv
cmQ7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW47CisgICAgfTsKKwor
cHVibGljOgorICAgIFRpbWVsaW5lUmVjb3JkU3RhY2soKSB7IH0KKyAgICBUaW1lbGluZVJlY29y
ZFN0YWNrKFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4pOworCisgICAgdW5zaWduZWQg
YWRkU2NvcGVkUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQpOworICAg
IHZvaWQgY2xvc2VTY29wZWRSZWNvcmQoZG91YmxlIGVuZFRpbWUpOworICAgIHZvaWQgYWRkSW5z
dGFudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkKTsKKworICAgIGJv
b2wgaXNPcGVuUmVjb3JkT2ZUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CisKK3ByaXZhdGU6Cisg
ICAgdm9pZCBzZW5kKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Pik7CisKKyAgICBXZWFrUHRy
PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IG1fdGltZWxpbmVBZ2VudDsKKyAgICBWZWN0b3I8RW50
cnk+IG1fc3RhY2s7Cit9OworCiBjbGFzcyBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yPiB7
CiBwdWJsaWM6CiAgICAgLy8gRklYTUU6IHJlLXVzZSBkZWZpbml0aW9ucyBpbiBUcmFjZUV2ZW50
Lmggb25jZSBpdCdzIHByb21vdGVkIHRvIGFsbCBwbGF0Zm9ybXMuCkBAIC04OSwxMCArMTIwLDI0
IEBAIHByaXZhdGU6CiAgICAgICAgIFR5cGVDb3B5U3RyaW5nID0gNwogICAgIH07CiAKKyAgICBz
dHJ1Y3QgVGltZWxpbmVUaHJlYWRTdGF0ZSB7CisgICAgICAgIFRpbWVsaW5lVGhyZWFkU3RhdGUo
KSB7IH0KKworICAgICAgICBUaW1lbGluZVRocmVhZFN0YXRlKFdlYWtQdHI8SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudD4gdGltZWxpbmVBZ2VudCkKKyAgICAgICAgICAgIDogcmVjb3JkU3RhY2sodGlt
ZWxpbmVBZ2VudCkKKyAgICAgICAgICAgICwgcmFzdGVyaXplU3RhcnRTdGFja0xldmVsKDApCisg
ICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFRpbWVsaW5lUmVjb3JkU3RhY2sgcmVjb3Jk
U3RhY2s7CisgICAgICAgIHVuc2lnbmVkIHJhc3Rlcml6ZVN0YXJ0U3RhY2tMZXZlbDsKKyAgICB9
OworCiAgICAgY2xhc3MgVHJhY2VFdmVudCB7CiAgICAgcHVibGljOgogICAgICAgICBUcmFjZUV2
ZW50KCkKLSAgICAgICAgICAgIDogbV9hcmd1bWVudENvdW50KDApCisgICAgICAgICAgICA6IG1f
bmFtZSgwKQorICAgICAgICAgICAgLCBtX2FyZ3VtZW50Q291bnQoMCkKICAgICAgICAgewogICAg
ICAgICB9CiAKQEAgLTEyMiw2ICsxNjcsNyBAQCBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBs
b25nIGxvbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAgICAgICAgIFRocmVhZElkZW50
aWZpZXIgdGhyZWFkSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkSWRlbnRpZmll
cjsgfQogICAgICAgICBpbnQgYXJndW1lbnRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJndW1l
bnRDb3VudDsgfQorICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX25hbWU7
IH0KIAogICAgICAgICBib29sIGFzQm9vbChjb25zdCBjaGFyKiBuYW1lKSBjb25zdAogICAgICAg
ICB7CkBAIC0xNjgsOCArMjE0LDE4IEBAIHByaXZhdGU6CiAKICAgICB0eXBlZGVmIHZvaWQgKFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6KlRyYWNlRXZlbnRIYW5kbGVyKShjb25zdCBUcmFj
ZUV2ZW50Jik7CiAKKyAgICBUaW1lbGluZVRocmVhZFN0YXRlJiB0aHJlYWRTdGF0ZShUaHJlYWRJ
ZGVudGlmaWVyIHRocmVhZCkKKyAgICB7CisgICAgICAgIFRocmVhZFN0YXRlTWFwOjppdGVyYXRv
ciBpdCA9IG1fdGhyZWFkU3RhdGVzLmZpbmQodGhyZWFkKTsKKyAgICAgICAgaWYgKGl0ICE9IG1f
dGhyZWFkU3RhdGVzLmVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKKyAgICAg
ICAgcmV0dXJuIG1fdGhyZWFkU3RhdGVzLmFkZCh0aHJlYWQsIFRpbWVsaW5lVGhyZWFkU3RhdGUo
bV90aW1lbGluZUFnZW50KSkuaXRlcmF0b3ItPnZhbHVlOworICAgIH0KKwogICAgIHZvaWQgcHJv
Y2Vzc0JhY2tncm91bmRFdmVudHMoKTsKLSAgICB2b2lkIHNlbmRUaW1lbGluZVJlY29yZChQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBlLCBk
b3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZW5kVGltZSwgY29uc3QgU3RyaW5nJiBUaHJlYWQpOwor
ICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVSZWNvcmQoY29uc3QgVHJhY2VF
dmVudCYsIGNvbnN0IFN0cmluZyYgcmVjb3JkVHlwZSwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGRhdGEgPSAwKTsKKworICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGVyKGNvbnN0IGNoYXIqIG5h
bWUsIFRyYWNlRXZlbnRQaGFzZSwgVHJhY2VFdmVudEhhbmRsZXIpOwogCiAgICAgdm9pZCBvbkJl
Z2luRnJhbWUoY29uc3QgVHJhY2VFdmVudCYpOwogICAgIHZvaWQgb25QYWludExheWVyQmVnaW4o
Y29uc3QgVHJhY2VFdmVudCYpOwpAQCAtMTc5LDI1ICsyMzUsMjEgQEAgcHJpdmF0ZToKICAgICB2
b2lkIG9uTGF5ZXJEZWxldGVkKGNvbnN0IFRyYWNlRXZlbnQmKTsKICAgICB2b2lkIG9uUGFpbnQo
Y29uc3QgVHJhY2VFdmVudCYpOwogCi0gICAgdm9pZCBmbHVzaFJhc3Rlcml6ZXJTdGF0aXN0aWNz
KCk7Ci0KLSAgICB2b2lkIHJlZ2lzdGVySGFuZGxlcihjb25zdCBjaGFyKiBuYW1lLCBUcmFjZUV2
ZW50UGhhc2UsIFRyYWNlRXZlbnRIYW5kbGVyKTsKIAogICAgIFdlYWtQdHI8SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OworICAgIFRpbWVsaW5lVGltZUNvbnZlcnRlciBt
X3RpbWVDb252ZXJ0ZXI7CiAgICAgSW5zcGVjdG9yQ2xpZW50KiBtX2luc3BlY3RvckNsaWVudDsK
KyAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9wYWdlSWQ7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8
c3RkOjpwYWlyPFN0cmluZywgaW50PiwgVHJhY2VFdmVudEhhbmRsZXI+IEhhbmRsZXJzTWFwOwog
ICAgIEhhbmRsZXJzTWFwIG1faGFuZGxlcnNCeVR5cGU7CiAgICAgTXV0ZXggbV9iYWNrZ3JvdW5k
RXZlbnRzTXV0ZXg7CiAgICAgVmVjdG9yPFRyYWNlRXZlbnQ+IG1fYmFja2dyb3VuZEV2ZW50czsK
LSAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9wYWdlSWQ7CiAKLSAgICBIYXNoU2V0PHVuc2lnbmVk
IGxvbmcgbG9uZz4gbV9rbm93bkxheWVyczsKLSAgICBIYXNoTWFwPFRocmVhZElkZW50aWZpZXIs
IGRvdWJsZT4gbV9yYXN0ZXJTdGFydFRpbWVCeVRocmVhZDsKLSAgICBkb3VibGUgbV9maXJzdFJh
c3RlclN0YXJ0VGltZTsKLSAgICBkb3VibGUgbV9sYXN0UmFzdGVyRW5kVGltZTsKLSAgICBkb3Vi
bGUgbV9mcmFtZVJhc3RlclRpbWU7CisgICAgdHlwZWRlZiBIYXNoTWFwPFRocmVhZElkZW50aWZp
ZXIsIFRpbWVsaW5lVGhyZWFkU3RhdGU+IFRocmVhZFN0YXRlTWFwOworICAgIFRocmVhZFN0YXRl
TWFwIG1fdGhyZWFkU3RhdGVzOwogCisgICAgSGFzaFNldDx1bnNpZ25lZCBsb25nIGxvbmc+IG1f
a25vd25MYXllcnM7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fbGF5ZXJJZDsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192879</attachid>
            <date>2013-03-13 01:21:38 -0700</date>
            <delta_ts>2013-03-13 10:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112172-20130313121735.patch</filename>
            <type>text/plain</type>
            <size>25040</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDZmNDgyNDVmMzAwMmUz
MjU0MTNiYjY1M2MyODE4NTg1NmQzMTgzZS4uZjk4NDdkMTYyOWYzNjU1OTM5ODkzYzU0NGI5ZTlj
NmU5MTc4MGViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTAzLTEyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZG8gbm90IGFnZ3JlZ2F0ZSBub24tbWFpbiB0aHJlYWQgdGltZWxpbmUgZXZlbnRzLCBoYW5k
bGUgdGhlbSBpbiBhIGdlbmVyaWMgZmFzaGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyMTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgLSBidWlsZCBuZXN0ZWQgZXZlbnQgdHJlZXMgZm9yIG5vbi1t
YWluIHRocmVhZCBldmVudHMgc2ltaWxhciB0byBob3cgaXQncyBkb25lIG9uIHRoZSBtYWluIHRo
cmVhZDsKKyAgICAgICAgLSBkcm9wIGFnZ3JlZ2F0aW9uIGxvZ2ljIGZvciBSYXN0ZXJpemUgZXZl
bnRzOworICAgICAgICAtIGV4dHJhY3QgdGltZSBjb252ZXJzaW9uIGxvZ2ljIHNvIHRoYXQgaXQg
bWF5IGJlIHJldXNlZCBpbiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuCisKKyAgICAgICAg
KiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6IGRyaXZlLWJ5OiBkcm9wIGR1cGxp
Y2F0ZSBsaW5lLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVGltZUNvbnZlcnRlcjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpwdXNoR0NFdmVudFJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YXBwZW5kUmVjb3JkKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNlbmRFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0aW1lc3RhbXApOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgIChUaW1lbGluZVRpbWVDb252ZXJ0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUaW1lQ29udmVydGVyOjpUaW1lbGluZVRp
bWVDb252ZXJ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUaW1lQ29udmVydGVyOjpm
cm9tTW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp0aW1lQ29udmVydGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlQmFja2dyb3VuZFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg6CisgICAgICAgIChUaW1l
bGluZVJlY29yZEZhY3RvcnkpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRTdGFjazo6
VGltZWxpbmVSZWNvcmRTdGFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lUmVjb3JkU3RhY2s6OmFkZFNjb3BlZFJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVJlY29yZFN0YWNrOjpjbG9zZVNjb3BlZFJlY29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUaW1lbGluZVJlY29yZFN0YWNrOjphZGRJbnN0YW50UmVjb3JkKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkU3RhY2s6OmlzT3BlblJlY29yZE9mVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZFN0YWNrOjpzZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25C
ZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
cjo6b25SYXN0ZXJUYXNrQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yOjpvblJhc3RlclRhc2tFbmQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpjcmVhdGVSZWNvcmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDoKKyAgICAgICAgKFRpbWVsaW5lUmVjb3Jk
U3RhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRTdGFjazo6RW50cnk6OkVu
dHJ5KToKKyAgICAgICAgKEVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3Jk
U3RhY2s6OlRpbWVsaW5lUmVjb3JkU3RhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5lVGhyZWFkU3Rh
dGU6OlRpbWVsaW5lVGhyZWFkU3RhdGUpOgorICAgICAgICAoVGltZWxpbmVUaHJlYWRTdGF0ZSk6
CisgICAgICAgIChUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50OjpUcmFjZUV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVu
dDo6aXNOdWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
cjo6dGhyZWFkU3RhdGUpOgorCiAyMDEzLTAzLTEyICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNvdXJjZUZyYW1lcyBhcmUg
bGVha2luZyBvbiByZWxvYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKaW5kZXggYjc3MDFhM2FmNGU3NmJjOWQ2MDBjMDE2ODJkMzgyOGRm
ZDNiMzRjOC4uYWI1YzMyNTM1MmYzYTdhMzI4YTljZWMxNWQ3NTMzNmVmNzljOWVmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAt
NzcyLDcgKzc3Miw2IEBAIGxvY2FsaXplZFN0cmluZ3NbIlNjaGVkdWxlIFN0eWxlIFJlY2FsY3Vs
YXRpb24iXSA9ICJTY2hlZHVsZSBTdHlsZSBSZWNhbGN1bGF0aW9uCiBsb2NhbGl6ZWRTdHJpbmdz
WyJJbnZhbGlkYXRlIExheW91dCJdID0gIkludmFsaWRhdGUgTGF5b3V0IjsKIGxvY2FsaXplZFN0
cmluZ3NbIkNvbXBvc2l0ZSBMYXllcnMiXSA9ICJDb21wb3NpdGUgTGF5ZXJzIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIkludGVydmFsIER1cmF0aW9uIl0gPSAiSW50ZXJ2YWwgRHVyYXRpb24iOwotbG9j
YWxpemVkU3RyaW5nc1siQ1BVIHRpbWUiXSA9ICJDUFUgdGltZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJSZXBsYXkgWEhSIl0gPSAiUmVwbGF5IFhIUiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJbICVkIC0g
JWQgXSJdID0gIlsgJWQgLSAlZCBdIjsKIGxvY2FsaXplZFN0cmluZ3NbIlNlYXJjaCBzb3VyY2Vz
Il0gPSAiU2VhcmNoIHNvdXJjZXMiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDAyODhiMDQxOGM2MGFiMTFiZmE4Yzdl
ZWEyMGRjNWNjNDMxNTVhM2QuLjMzZTE3NTRiYTI5ZjM0YjI0NjBjNzJjYzBlODZmMjM5YjZlNTc3
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5jcHAKQEAgLTEyMiw2ICsxMjIsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgV2ViU29j
a2V0RGVzdHJveVtdID0gIldlYlNvY2tldERlc3Ryb3kiOwogY29uc3QgY2hhciBSYXN0ZXJpemVb
XSA9ICJSYXN0ZXJpemUiOwogfQogCit2b2lkIFRpbWVsaW5lVGltZUNvbnZlcnRlcjo6cmVzZXQo
KQoreworICAgIG1fc3RhcnRPZmZzZXQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAt
IGN1cnJlbnRUaW1lKCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdD
RXZlbnRSZWNvcmRzKCkKIHsKICAgICBpZiAoIW1fZ2NFdmVudHMuc2l6ZSgpKQpAQCAtMTMwLDkg
KzEzNSw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cHVzaEdDRXZlbnRSZWNvcmRz
KCkKICAgICBHQ0V2ZW50cyBldmVudHMgPSBtX2djRXZlbnRzOwogICAgIG1fZ2NFdmVudHMuY2xl
YXIoKTsKICAgICBmb3IgKEdDRXZlbnRzOjppdGVyYXRvciBpID0gZXZlbnRzLmJlZ2luKCk7IGkg
IT0gZXZlbnRzLmVuZCgpOyArK2kpIHsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKHRpbWVz
dGFtcEZyb21NaWNyb3NlY29uZHMoaS0+c3RhcnRUaW1lKSwgbV9tYXhDYWxsU3RhY2tEZXB0aCk7
CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlR2VuZXJpY1JlY29yZChtX3RpbWVDb252ZXJ0ZXIuZnJvbU1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZShpLT5zdGFydFRpbWUpLCBtX21heENhbGxTdGFja0RlcHRoKTsK
ICAgICAgICAgcmVjb3JkLT5zZXRPYmplY3QoImRhdGEiLCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmNyZWF0ZUdDRXZlbnREYXRhKGktPmNvbGxlY3RlZEJ5dGVzKSk7Ci0gICAgICAgIHJlY29yZC0+
c2V0TnVtYmVyKCJlbmRUaW1lIiwgdGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhpLT5lbmRUaW1l
KSk7CisgICAgICAgIHJlY29yZC0+c2V0TnVtYmVyKCJlbmRUaW1lIiwgbV90aW1lQ29udmVydGVy
LmZyb21Nb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoaS0+ZW5kVGltZSkpOwogICAgICAgICBh
ZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZC5yZWxlYXNlKCksIFRpbWVsaW5lUmVjb3JkVHlwZTo6
R0NFdmVudCk7CiAgICAgfQogfQpAQCAtMTc4LDcgKzE4Myw3IEBAIHZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6c3RhcnQoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIG1heENhbGxTdGFja0Rl
cHRoKQogICAgIGVsc2UKICAgICAgICAgbV9tYXhDYWxsU3RhY2tEZXB0aCA9IDU7CiAgICAgbV9z
dGF0ZS0+c2V0TG9uZyhUaW1lbGluZUFnZW50U3RhdGU6OnRpbWVsaW5lTWF4Q2FsbFN0YWNrRGVw
dGgsIG1fbWF4Q2FsbFN0YWNrRGVwdGgpOwotICAgIG1fdGltZXN0YW1wT2Zmc2V0ID0gY3VycmVu
dFRpbWUoKSAtIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIG1fdGltZUNvbnZl
cnRlci5yZXNldCgpOwogCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JU
aW1lbGluZUFnZW50KHRoaXMpOwogICAgIFNjcmlwdEdDRXZlbnQ6OmFkZEV2ZW50TGlzdGVuZXIo
dGhpcyk7CkBAIC01NDcsMTEgKzU1Miw5IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0CiAgICAg
ZWxzZQogICAgICAgICBzZXRET01Db3VudGVycyhyZWNvcmQuZ2V0KCkpOwogCi0gICAgaWYgKG1f
cmVjb3JkU3RhY2suaXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBydW50aW1lQ2FzdCBp
cyBhIGhhY2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVpbGQgVGltZWxpbmVFdmVudCBk
aXJlY3RseSBub3cuCi0gICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVs
aW5lRXZlbnQ+IHJlY29yZENoZWNrZWQgPSBUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5l
RXZlbnQ6OnJ1bnRpbWVDYXN0KHJlY29yZC5yZWxlYXNlKCkpOwotICAgICAgICBtX2Zyb250ZW5k
LT5ldmVudFJlY29yZGVkKHJlY29yZENoZWNrZWQucmVsZWFzZSgpKTsKLSAgICB9IGVsc2Ugewor
ICAgIGlmIChtX3JlY29yZFN0YWNrLmlzRW1wdHkoKSkKKyAgICAgICAgc2VuZEV2ZW50KHJlY29y
ZC5yZWxlYXNlKCkpOworICAgIGVsc2UgewogICAgICAgICBUaW1lbGluZVJlY29yZEVudHJ5IHBh
cmVudCA9IG1fcmVjb3JkU3RhY2subGFzdCgpOwogICAgICAgICBwYXJlbnQuY2hpbGRyZW4tPnB1
c2hPYmplY3QocmVjb3JkLnJlbGVhc2UoKSk7CiAgICAgfQpAQCAtNjM0LDcgKzYzNyw2IEBAIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAg
LCBtX21lbW9yeUFnZW50KG1lbW9yeUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQotICAgICwg
bV90aW1lc3RhbXBPZmZzZXQoMCkKICAgICAsIG1faWQoMSkKICAgICAsIG1fbWF4Q2FsbFN0YWNr
RGVwdGgoNSkKICAgICAsIG1fcGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnRJbnN0YWxsZWRB
dFN0YWNrRGVwdGgoMCkKQEAgLTY0OSwxOSArNjUxLDE0IEBAIHZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6YXBwZW5kUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBj
b25zCiAgICAgcHVzaEdDRXZlbnRSZWNvcmRzKCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKHRp
bWVzdGFtcCgpLCBjYXB0dXJlQ2FsbFN0YWNrID8gbV9tYXhDYWxsU3RhY2tEZXB0aCA6IDApOwog
ICAgIHJlY29yZC0+c2V0T2JqZWN0KCJkYXRhIiwgZGF0YSk7Ci0gICAgcmVjb3JkLT5zZXRTdHJp
bmcoInR5cGUiLCB0eXBlKTsKICAgICBzZXRGcmFtZUlkZW50aWZpZXIocmVjb3JkLmdldCgpLCBm
cmFtZSk7CiAgICAgYWRkUmVjb3JkVG9UaW1lbGluZShyZWNvcmQucmVsZWFzZSgpLCB0eXBlKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphcHBlbmRCYWNrZ3JvdW5kVGhyZWFk
UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5
cGUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBjb25zdCBTdHJpbmcmIHRocmVh
ZE5hbWUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNlbmRFdmVudChQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gZXZlbnQpCiB7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cmVjb3JkID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKHRpbWVz
dGFtcEZyb21NaWNyb3NlY29uZHMoc3RhcnRUaW1lKSwgMCk7Ci0gICAgcmVjb3JkLT5zZXRPYmpl
Y3QoImRhdGEiLCBkYXRhKTsKLSAgICByZWNvcmQtPnNldFN0cmluZygidHlwZSIsIHR5cGUpOwot
ICAgIHJlY29yZC0+c2V0U3RyaW5nKCJ0aHJlYWQiLCB0aHJlYWROYW1lKTsKLSAgICByZWNvcmQt
PnNldE51bWJlcigiZW5kVGltZSIsIHRpbWVzdGFtcEZyb21NaWNyb3NlY29uZHMoZW5kVGltZSkp
OwotICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ+IHJlY29y
ZENoZWNrZWQgPSBUeXBlQnVpbGRlcjo6VGltZWxpbmU6OlRpbWVsaW5lRXZlbnQ6OnJ1bnRpbWVD
YXN0KHJlY29yZC5yZWxlYXNlKCkpOworICAgIC8vIEZJWE1FOiBydW50aW1lQ2FzdCBpcyBhIGhh
Y2suIFdlIGRvIGl0IGJlY2F1c2Ugd2UgY2FuJ3QgYnVpbGQgVGltZWxpbmVFdmVudCBkaXJlY3Rs
eSBub3cuCisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4g
cmVjb3JkQ2hlY2tlZCA9IFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxpbmVFdmVudDo6cnVu
dGltZUNhc3QoZXZlbnQpOwogICAgIG1fZnJvbnRlbmQtPmV2ZW50UmVjb3JkZWQocmVjb3JkQ2hl
Y2tlZC5yZWxlYXNlKCkpOwogfQogCkBAIC03MDAsMTIgKzY5Nyw3IEBAIHZvaWQgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6Y2xlYXJSZWNvcmRTdGFjaygpCiAKIGRvdWJsZSBJbnNwZWN0b3JUaW1l
bGluZUFnZW50Ojp0aW1lc3RhbXAoKQogewotICAgIHJldHVybiB0aW1lc3RhbXBGcm9tTWljcm9z
ZWNvbmRzKFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwotfQotCi1kb3VibGUg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6dGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhkb3VibGUg
bWljcm9zZWNvbmRzKQotewotICAgIHJldHVybiAobWljcm9zZWNvbmRzICsgbV90aW1lc3RhbXBP
ZmZzZXQpICogMTAwMC4wOworICAgIHJldHVybiBtX3RpbWVDb252ZXJ0ZXIuZnJvbU1vbm90b25p
Y2FsbHlJbmNyZWFzaW5nVGltZShXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsK
IH0KIAogUGFnZSogSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6cGFnZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCBlMWNjYzI2
YzdlZTgwYmQyMDVhNmZiODUyMTdhNmU4ODJjNDE5YmNiLi45ODQ3ZTFkZDAyY2FiMjU1OGU1MWNl
MzhiMzFjZmI0YzE2ZTQ0YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTY3LDYgKzY3LDE5IEBAIG5hbWVzcGFjZSBUaW1l
bGluZVJlY29yZFR5cGUgewogZXh0ZXJuIGNvbnN0IGNoYXIgUmFzdGVyaXplW107CiB9OwogCitj
bGFzcyBUaW1lbGluZVRpbWVDb252ZXJ0ZXIgeworcHVibGljOgorICAgIFRpbWVsaW5lVGltZUNv
bnZlcnRlcigpCisgICAgICAgIDogbV9zdGFydE9mZnNldCgwKQorICAgIHsKKyAgICB9CisgICAg
ZG91YmxlIGZyb21Nb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoZG91YmxlIHRpbWUpIGNvbnN0
ICB7IHJldHVybiAodGltZSAtIG1fc3RhcnRPZmZzZXQpICogMTAwMC4wOyB9CisgICAgdm9pZCBy
ZXNldCgpOworCitwcml2YXRlOgorICAgIGRvdWJsZSBtX3N0YXJ0T2Zmc2V0OworfTsKKwogY2xh
c3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudAogICAgIDogcHVibGljIEluc3BlY3RvckJhc2VBZ2Vu
dDxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiwKICAgICAgIHB1YmxpYyBTY3JpcHRHQ0V2ZW50TGlz
dGVuZXIsCkBAIC0xODEsNiArMTk0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZXNpemVJbWFnZSgpIE9WRVJSSURFOwogCiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBUaW1l
bGluZVJlY29yZFN0YWNrOwogICAgIGZyaWVuZCBjbGFzcyBUaW1lbGluZVRyYWNlRXZlbnRQcm9j
ZXNzb3I7CiAKICAgICBzdHJ1Y3QgVGltZWxpbmVSZWNvcmRFbnRyeSB7CkBAIC0xOTcsNyArMjEx
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yTWVtb3J5QWdl
bnQqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNs
aWVudCopOwogCi0gICAgdm9pZCBhcHBlbmRCYWNrZ3JvdW5kVGhyZWFkUmVjb3JkKFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUsIGRvdWJsZSBzdGFy
dFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBjb25zdCBTdHJpbmcmIHRocmVhZE5hbWUpOworICAgIHZv
aWQgc2VuZEV2ZW50KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Pik7CiAgICAgdm9pZCBhcHBl
bmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYg
dHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSopOwogICAgIHZvaWQgcHVzaEN1cnJl
bnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+LCBjb25zdCBTdHJpbmcmIHR5cGUs
IGJvb2wgY2FwdHVyZUNhbGxTdGFjaywgRnJhbWUqLCBib29sIGhhc0xvd0xldmVsRGV0YWlscyA9
IGZhbHNlKTsKIApAQCAtMjE1LDEyICsyMjksMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGlubmVy
QWRkUmVjb3JkVG9UaW1lbGluZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNvbnN0IFN0
cmluZyYgdHlwZSk7CiAgICAgdm9pZCBjbGVhclJlY29yZFN0YWNrKCk7CiAKKyAgICBjb25zdCBU
aW1lbGluZVRpbWVDb252ZXJ0ZXImIHRpbWVDb252ZXJ0ZXIoKSBjb25zdCB7IHJldHVybiBtX3Rp
bWVDb252ZXJ0ZXI7IH0KICAgICBkb3VibGUgdGltZXN0YW1wKCk7Ci0gICAgZG91YmxlIHRpbWVz
dGFtcEZyb21NaWNyb3NlY29uZHMoZG91YmxlIG1pY3Jvc2Vjb25kcyk7CiAgICAgUGFnZSogcGFn
ZSgpOwogCiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKICAgICBJbnNwZWN0
b3JNZW1vcnlBZ2VudCogbV9tZW1vcnlBZ2VudDsKKyAgICBUaW1lbGluZVRpbWVDb252ZXJ0ZXIg
bV90aW1lQ29udmVydGVyOwogCiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OlRpbWVsaW5lKiBtX2Zy
b250ZW5kOwogICAgIGRvdWJsZSBtX3RpbWVzdGFtcE9mZnNldDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKaW5kZXggZTQ3Y2JhNWRl
OGQyNjI3OTZjNDBkNzNhZDllOGU4NDU1ZjQ1NTdhYy4uYTJkNTU1ZTc3NzM2ZTk3Y2U4MWY1MDFm
MmUxNzU2MzNkYmJlYzFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Rp
bWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Rp
bWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAKQEAgLTU5LDYgKzU5LDE0IEBAIFBhc3NSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdlbmVyaWNSZWNvcmQo
ZG91YmxlIHN0CiAgICAgcmV0dXJuIHJlY29yZC5yZWxlYXNlKCk7CiB9CiAKK1Bhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUJhY2tncm91bmRS
ZWNvcmQoZG91YmxlIHN0YXJ0VGltZSwgY29uc3QgU3RyaW5nJiB0aHJlYWROYW1lKQoreworICAg
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCk7CisgICAgcmVjb3JkLT5zZXROdW1iZXIoInN0YXJ0VGltZSIsIHN0YXJ0VGltZSk7CisgICAg
cmVjb3JkLT5zZXRTdHJpbmcoInRocmVhZCIsIHRocmVhZE5hbWUpOworICAgIHJldHVybiByZWNv
cmQucmVsZWFzZSgpOworfQorCiBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVS
ZWNvcmRGYWN0b3J5OjpjcmVhdGVHQ0V2ZW50RGF0YShjb25zdCBzaXplX3QgdXNlZEhlYXBTaXpl
RGVsdGEpCiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CkBAIC0yMTMsMTQgKzIyMSw2IEBAIHZvaWQgVGltZWxpbmVSZWNvcmRG
YWN0b3J5OjphZGRSZWN0RGF0YShJbnNwZWN0b3JPYmplY3QqIGRhdGEsIGNvbnN0IExheW91dFJl
Y3QmCiAgICAgZGF0YS0+c2V0TnVtYmVyKCJoZWlnaHQiLCByZWN0LmhlaWdodCgpKTsKIH0KIAot
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRl
UmFzdGVyRGF0YShkb3VibGUgdG90YWxDUFVUaW1lLCBpbnQgdGhyZWFkc1VzZWQpCi17Ci0gICAg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
Ci0gICAgZGF0YS0+c2V0TnVtYmVyKCJ0b3RhbENQVVRpbWUiLCB0b3RhbENQVVRpbWUpOwotICAg
IGRhdGEtPnNldE51bWJlcigidGhyZWFkc1VzZWQiLCB0aHJlYWRzVXNlZCk7Ci0gICAgcmV0dXJu
IGRhdGEucmVsZWFzZSgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVs
aW5lUmVjb3JkRmFjdG9yeS5oCmluZGV4IDA5MjU2NDkzMWM4YzQ5ZGRhMzdmZGFjZGI4ZmE0ZDA4
NjZjMGYxYzYuLjY4Y2JhNmQ2YmE5ZDIzNjY5NmYyMDVhMzFkZTUyMGRkOWI4MWU1NjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKQEAg
LTQ5LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGNyZWF0ZUdlbmVyaWNSZWNvcmQoZG91YmxlIHN0YXJ0VGltZSwgaW50IG1h
eENhbGxTdGFja0RlcHRoKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBjcmVhdGVCYWNrZ3JvdW5kUmVjb3JkKGRvdWJsZSBzdGFydFRpbWUsIGNvbnN0IFN0cmlu
ZyYgdGhyZWFkKTsKIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGNyZWF0ZUdDRXZlbnREYXRhKGNvbnN0IHNpemVfdCB1c2VkSGVhcFNpemVEZWx0YSk7CiAKQEAg
LTEwOCw4ICsxMDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICByZXR1cm4g
ZGF0YS5yZWxlYXNlKCk7CiAgICAgICAgIH0KICNlbmRpZgotICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZVJhc3RlckRhdGEoZG91YmxlIHRvdGFsQ1BVVGlt
ZSwgaW50IHRocmVhZHNVc2VkKTsKLQogICAgIHByaXZhdGU6CiAgICAgICAgIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeSgpIHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwCmluZGV4IDkyMTBjYWFkZWY1
NGZmOTVmZjFhMDBlMGY4NDVmN2IxZjU1MDI1OTMuLjFlODFlNzEyYjM0NTdjM2MyMDJjZmVjZWZj
NmQwYzc4NTcwZjg1M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1l
bGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENv
cHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzYsNyArMzYsNiBAQAogCiAjaW5jbHVkZSAi
SW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgi
Ci0jaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIlRpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oIgogCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC0xMDQs
MTMgKzEwMyw1OCBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BjZQorCisKK1RpbWVsaW5l
UmVjb3JkU3RhY2s6OlRpbWVsaW5lUmVjb3JkU3RhY2soV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50PiB0aW1lbGluZUFnZW50KQorICAgIDogbV90aW1lbGluZUFnZW50KHRpbWVsaW5lQWdl
bnQpCit7Cit9CisKK3Vuc2lnbmVkIFRpbWVsaW5lUmVjb3JkU3RhY2s6OmFkZFNjb3BlZFJlY29y
ZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkKQoreworICAgIG1fc3RhY2suYXBw
ZW5kKEVudHJ5KHJlY29yZCkpOworICAgIHJldHVybiBtX3N0YWNrLnNpemUoKTsKK30KKwordm9p
ZCBUaW1lbGluZVJlY29yZFN0YWNrOjpjbG9zZVNjb3BlZFJlY29yZChkb3VibGUgZW5kVGltZSkK
K3sKKyAgICBpZiAobV9zdGFjay5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBFbnRy
eSBsYXN0ID0gbV9zdGFjay5sYXN0KCk7CisgICAgbV9zdGFjay5yZW1vdmVMYXN0KCk7CisgICAg
bGFzdC5yZWNvcmQtPnNldE51bWJlcigiZW5kVGltZSIsIGVuZFRpbWUpOworICAgIGlmIChsYXN0
LmNoaWxkcmVuLT5sZW5ndGgoKSkKKyAgICAgICAgbGFzdC5yZWNvcmQtPnNldEFycmF5KCJjaGls
ZHJlbiIsIGxhc3QuY2hpbGRyZW4pOworICAgIGFkZEluc3RhbnRSZWNvcmQobGFzdC5yZWNvcmQp
OworfQorCit2b2lkIFRpbWVsaW5lUmVjb3JkU3RhY2s6OmFkZEluc3RhbnRSZWNvcmQoUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCkKK3sKKyAgICBpZiAobV9zdGFjay5pc0VtcHR5
KCkpCisgICAgICAgIHNlbmQocmVjb3JkKTsKKyAgICBlbHNlCisgICAgICAgIG1fc3RhY2subGFz
dCgpLmNoaWxkcmVuLT5wdXNoT2JqZWN0KHJlY29yZCk7Cit9CisKK2Jvb2wgVGltZWxpbmVSZWNv
cmRTdGFjazo6aXNPcGVuUmVjb3JkT2ZUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBT
dHJpbmcgbGFzdFJlY29yZFR5cGU7CisgICAgcmV0dXJuIG1fc3RhY2suaXNFbXB0eSgpIHx8ICht
X3N0YWNrLmxhc3QoKS5yZWNvcmQtPmdldFN0cmluZygidHlwZSIsICZsYXN0UmVjb3JkVHlwZSkg
JiYgdHlwZSA9PSBsYXN0UmVjb3JkVHlwZSk7Cit9CisKK3ZvaWQgVGltZWxpbmVSZWNvcmRTdGFj
azo6c2VuZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkKQoreworICAgIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBtX3RpbWVsaW5lQWdlbnQuZ2V0KCk7
CisgICAgaWYgKCF0aW1lbGluZUFnZW50KQorICAgICAgICByZXR1cm47CisgICAgdGltZWxpbmVB
Z2VudC0+c2VuZEV2ZW50KHJlY29yZCk7Cit9CisKIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
cjo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVB
Z2VudD4gdGltZWxpbmVBZ2VudCwgSW5zcGVjdG9yQ2xpZW50ICpjbGllbnQpCiAgICAgOiBtX3Rp
bWVsaW5lQWdlbnQodGltZWxpbmVBZ2VudCkKKyAgICAsIG1fdGltZUNvbnZlcnRlcih0aW1lbGlu
ZUFnZW50LmdldCgpLT50aW1lQ29udmVydGVyKCkpCiAgICAgLCBtX2luc3BlY3RvckNsaWVudChj
bGllbnQpCiAgICAgLCBtX3BhZ2VJZChyZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGxvbmcgbG9u
Zz4obV90aW1lbGluZUFnZW50LmdldCgpLT5wYWdlKCkpKQotICAgICwgbV9maXJzdFJhc3RlclN0
YXJ0VGltZSgwKQotICAgICwgbV9sYXN0UmFzdGVyRW5kVGltZSgwKQotICAgICwgbV9mcmFtZVJh
c3RlclRpbWUoMCkKICAgICAsIG1fbGF5ZXJJZCgwKQogewogICAgIHJlZ2lzdGVySGFuZGxlcihJ
bnN0cnVtZW50YXRpb25FdmVudHM6OkJlZ2luRnJhbWUsIFRyYWNlUGhhc2VJbnN0YW50LCAmVGlt
ZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpvbkJlZ2luRnJhbWUpOwpAQCAtMTc4LDcgKzIyMiw3
IEBAIHZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9jZXNzRXZlbnRPbkFueVRo
cmVhZChUcmFjZUV2ZW50UGhhc2UgcGhhc2UsCiAKIHZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjpvbkJlZ2luRnJhbWUoY29uc3QgVHJhY2VFdmVudCYpCiB7Ci0gICAgZmx1c2hSYXN0
ZXJpemVyU3RhdGlzdGljcygpOworICAgIHByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRzKCk7CiB9CiAK
IHZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpvblBhaW50TGF5ZXJCZWdpbihjb25z
dCBUcmFjZUV2ZW50JiBldmVudCkKQEAgLTE5NSwyNiArMjM5LDIyIEBAIHZvaWQgVGltZWxpbmVU
cmFjZUV2ZW50UHJvY2Vzc29yOjpvblBhaW50TGF5ZXJFbmQoY29uc3QgVHJhY2VFdmVudCYpCiB2
b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25SYXN0ZXJUYXNrQmVnaW4oY29uc3Qg
VHJhY2VFdmVudCYgZXZlbnQpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIGxheWVySWQgPSBl
dmVudC5hc1VJbnQoSW5zdHJ1bWVudGF0aW9uRXZlbnRBcmd1bWVudHM6OkxheWVySWQpOwotICAg
IFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGV2ZW50LnRocmVhZElkZW50aWZp
ZXIoKTsKLSAgICBBU1NFUlQobV9yYXN0ZXJTdGFydFRpbWVCeVRocmVhZC5nZXQodGhyZWFkSWRl
bnRpZmllcikgPT0gSGFzaFRyYWl0czxkb3VibGU+OjplbXB0eVZhbHVlKCkpOwotICAgIGRvdWJs
ZSB0aW1lc3RhbXAgPSBtX2tub3duTGF5ZXJzLmNvbnRhaW5zKGxheWVySWQpID8gZXZlbnQudGlt
ZXN0YW1wKCkgOiAwOwotICAgIG1fcmFzdGVyU3RhcnRUaW1lQnlUaHJlYWQuc2V0KHRocmVhZElk
ZW50aWZpZXIsIHRpbWVzdGFtcCk7CisgICAgaWYgKCFtX2tub3duTGF5ZXJzLmNvbnRhaW5zKGxh
eWVySWQpKQorICAgICAgICByZXR1cm47CisgICAgVGltZWxpbmVUaHJlYWRTdGF0ZSYgc3RhdGUg
PSB0aHJlYWRTdGF0ZShldmVudC50aHJlYWRJZGVudGlmaWVyKCkpOworICAgIEFTU0VSVCghc3Rh
dGUucmFzdGVyaXplU3RhcnRTdGFja0xldmVsKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiByZWNvcmQgPSBjcmVhdGVSZWNvcmQoZXZlbnQsIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmFzdGVy
aXplKTsKKyAgICBzdGF0ZS5yYXN0ZXJpemVTdGFydFN0YWNrTGV2ZWwgPSBzdGF0ZS5yZWNvcmRT
dGFjay5hZGRTY29wZWRSZWNvcmQocmVjb3JkLnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgVGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpvblJhc3RlclRhc2tFbmQoY29uc3QgVHJhY2VFdmVudCYg
ZXZlbnQpCiB7Ci0gICAgSGFzaE1hcDxUaHJlYWRJZGVudGlmaWVyLCBkb3VibGU+OjppdGVyYXRv
ciBpdCA9IG1fcmFzdGVyU3RhcnRUaW1lQnlUaHJlYWQuZmluZChldmVudC50aHJlYWRJZGVudGlm
aWVyKCkpOwotICAgIGlmIChpdCA9PSBtX3Jhc3RlclN0YXJ0VGltZUJ5VGhyZWFkLmVuZCgpKQot
ICAgICAgICByZXR1cm47Ci0gICAgZG91YmxlIHN0YXJ0VGltZSA9IGl0LT52YWx1ZTsKLSAgICBk
b3VibGUgZW5kVGltZSA9IGV2ZW50LnRpbWVzdGFtcCgpOwotICAgIGlmIChzdGFydFRpbWUgPT0g
SGFzaFRyYWl0czxkb3VibGU+OjplbXB0eVZhbHVlKCkpIC8vIFJhc3Rlcml6aW5nIHVua25vd24g
bGF5ZXIuCisgICAgVGltZWxpbmVUaHJlYWRTdGF0ZSYgc3RhdGUgPSB0aHJlYWRTdGF0ZShldmVu
dC50aHJlYWRJZGVudGlmaWVyKCkpOworICAgIGlmICghc3RhdGUucmFzdGVyaXplU3RhcnRTdGFj
a0xldmVsKQogICAgICAgICByZXR1cm47Ci0gICAgbV9mcmFtZVJhc3RlclRpbWUgKz0gZW5kVGlt
ZSAtIHN0YXJ0VGltZTsKLSAgICBpdC0+dmFsdWUgPSBIYXNoVHJhaXRzPGRvdWJsZT46OmVtcHR5
VmFsdWUoKTsKLSAgICBpZiAoIW1fZmlyc3RSYXN0ZXJTdGFydFRpbWUgfHwgbV9maXJzdFJhc3Rl
clN0YXJ0VGltZSA+IHN0YXJ0VGltZSkKLSAgICAgICAgbV9maXJzdFJhc3RlclN0YXJ0VGltZSA9
IHN0YXJ0VGltZTsKLSAgICBtX2xhc3RSYXN0ZXJFbmRUaW1lID0gZW5kVGltZTsKKyAgICBBU1NF
UlQoc3RhdGUucmVjb3JkU3RhY2suaXNPcGVuUmVjb3JkT2ZUeXBlKFRpbWVsaW5lUmVjb3JkVHlw
ZTo6UmFzdGVyaXplKSk7CisgICAgc3RhdGUucmVjb3JkU3RhY2suY2xvc2VTY29wZWRSZWNvcmQo
bV90aW1lQ29udmVydGVyLmZyb21Nb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoZXZlbnQudGlt
ZXN0YW1wKCkpKTsKKyAgICBzdGF0ZS5yYXN0ZXJpemVTdGFydFN0YWNrTGV2ZWwgPSAwOwogfQog
CiB2b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25MYXllckRlbGV0ZWQoY29uc3Qg
VHJhY2VFdmVudCYgZXZlbnQpCkBAIC0yMzUsMjUgKzI3NSwxMyBAQCB2b2lkIFRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3Nvcjo6b25QYWludChjb25zdCBUcmFjZUV2ZW50JiBldmVudCkKICAgICAg
ICAgbV9rbm93bkxheWVycy5hZGQobV9sYXllcklkKTsKIH0KIAotdm9pZCBUaW1lbGluZVRyYWNl
RXZlbnRQcm9jZXNzb3I6OmZsdXNoUmFzdGVyaXplclN0YXRpc3RpY3MoKQorUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6Y3JlYXRlUmVjb3Jk
KGNvbnN0IFRyYWNlRXZlbnQmIGV2ZW50LCBjb25zdCBTdHJpbmcmIHJlY29yZFR5cGUsIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhKQogewotICAgIHByb2Nlc3NCYWNrZ3JvdW5kRXZl
bnRzKCk7Ci0gICAgaWYgKG1fbGFzdFJhc3RlckVuZFRpbWUpIHsKLSAgICAgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlUmFzdGVy
RGF0YShtX2ZyYW1lUmFzdGVyVGltZSwgbV9yYXN0ZXJTdGFydFRpbWVCeVRocmVhZC5zaXplKCkp
OwotICAgICAgICBzZW5kVGltZWxpbmVSZWNvcmQoZGF0YSwgVGltZWxpbmVSZWNvcmRUeXBlOjpS
YXN0ZXJpemUsIG1fZmlyc3RSYXN0ZXJTdGFydFRpbWUsIG1fbGFzdFJhc3RlckVuZFRpbWUsICJt
dWx0aXBsZSIpOwotICAgIH0KLSAgICBtX2ZpcnN0UmFzdGVyU3RhcnRUaW1lID0gMDsKLSAgICBt
X2xhc3RSYXN0ZXJFbmRUaW1lID0gMDsKLSAgICBtX2ZyYW1lUmFzdGVyVGltZSA9IDA7Ci19Ci0K
LXZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpzZW5kVGltZWxpbmVSZWNvcmQoUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYgcmVjb3JkVHlwZSwg
ZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUsIGNvbnN0IFN0cmluZyYgdGhyZWFkKQot
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCogdGltZWxpbmVBZ2VudCA9IG1fdGltZWxpbmVBZ2VudC5nZXQoKTsKLSAgICBpZiAoIXRpbWVs
aW5lQWdlbnQpCi0gICAgICAgIHJldHVybjsKLSAgICB0aW1lbGluZUFnZW50LT5hcHBlbmRCYWNr
Z3JvdW5kVGhyZWFkUmVjb3JkKGRhdGEsIHJlY29yZFR5cGUsIHN0YXJ0VGltZSwgZW5kVGltZSwg
dGhyZWFkKTsKKyAgICBkb3VibGUgc3RhcnRUaW1lID0gbV90aW1lQ29udmVydGVyLmZyb21Nb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoZXZlbnQudGltZXN0YW1wKCkpOworICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IHJlY29yZCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlQmFj
a2dyb3VuZFJlY29yZChzdGFydFRpbWUsIFN0cmluZzo6bnVtYmVyKGV2ZW50LnRocmVhZElkZW50
aWZpZXIoKSkpOworICAgIHJlY29yZC0+c2V0U3RyaW5nKCJ0eXBlIiwgcmVjb3JkVHlwZSk7Cisg
ICAgcmVjb3JkLT5zZXRPYmplY3QoImRhdGEiLCBkYXRhID8gZGF0YSA6IEluc3BlY3Rvck9iamVj
dDo6Y3JlYXRlKCkpOworICAgIHJldHVybiByZWNvcmQucmVsZWFzZSgpOwogfQogCiB2b2lkIFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6cHJvY2Vzc0JhY2tncm91bmRFdmVudHMoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nl
c3Nvci5oCmluZGV4IDg2MWFiOTA4MjBkM2VhYzhkNTBhMmYwOGQ2ZWU5YWRlYmRmYjhjM2EuLjM4
YjI1NDY3NTIyOGZiN2I5ZmViZGYyYzI3ZDZhMjA2NTUxZWU1YzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNDksNiArNTAsMzYgQEAgY2xhc3MgSW5zcGVjdG9y
Q2xpZW50OwogY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKIGNsYXNzIFBhZ2U7CiAKK2Ns
YXNzIFRpbWVsaW5lUmVjb3JkU3RhY2sgeworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgRW50cnkgewor
ICAgICAgICBFbnRyeShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkKQorICAgICAg
ICAgICAgOiByZWNvcmQocmVjb3JkKQorICAgICAgICAgICAgLCBjaGlsZHJlbihJbnNwZWN0b3JB
cnJheTo6Y3JlYXRlKCkpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IHJlY29yZDsKKyAgICAgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBj
aGlsZHJlbjsKKyAgICB9OworCitwdWJsaWM6CisgICAgVGltZWxpbmVSZWNvcmRTdGFjaygpIHsg
fQorICAgIFRpbWVsaW5lUmVjb3JkU3RhY2soV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50
Pik7CisKKyAgICB1bnNpZ25lZCBhZGRTY29wZWRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IHJlY29yZCk7CisgICAgdm9pZCBjbG9zZVNjb3BlZFJlY29yZChkb3VibGUgZW5kVGlt
ZSk7CisgICAgdm9pZCBhZGRJbnN0YW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiByZWNvcmQpOworCisgICAgYm9vbCBpc09wZW5SZWNvcmRPZlR5cGUoY29uc3QgU3RyaW5nJiB0
eXBlKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNlbmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+KTsKKworICAgIFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFn
ZW50OworICAgIFZlY3RvcjxFbnRyeT4gbV9zdGFjazsKK307CisKIGNsYXNzIFRpbWVsaW5lVHJh
Y2VFdmVudFByb2Nlc3NvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3I+IHsKIHB1YmxpYzoKICAgICAvLyBGSVhNRTogcmUtdXNlIGRlZmlu
aXRpb25zIGluIFRyYWNlRXZlbnQuaCBvbmNlIGl0J3MgcHJvbW90ZWQgdG8gYWxsIHBsYXRmb3Jt
cy4KQEAgLTg5LDEwICsxMjAsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgVHlwZUNvcHlTdHJpbmcg
PSA3CiAgICAgfTsKIAorICAgIHN0cnVjdCBUaW1lbGluZVRocmVhZFN0YXRlIHsKKyAgICAgICAg
VGltZWxpbmVUaHJlYWRTdGF0ZSgpIHsgfQorCisgICAgICAgIFRpbWVsaW5lVGhyZWFkU3RhdGUo
V2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiB0aW1lbGluZUFnZW50KQorICAgICAgICAg
ICAgOiByZWNvcmRTdGFjayh0aW1lbGluZUFnZW50KQorICAgICAgICAgICAgLCByYXN0ZXJpemVT
dGFydFN0YWNrTGV2ZWwoMCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgVGltZWxp
bmVSZWNvcmRTdGFjayByZWNvcmRTdGFjazsKKyAgICAgICAgdW5zaWduZWQgcmFzdGVyaXplU3Rh
cnRTdGFja0xldmVsOworICAgIH07CisKICAgICBjbGFzcyBUcmFjZUV2ZW50IHsKICAgICBwdWJs
aWM6CiAgICAgICAgIFRyYWNlRXZlbnQoKQotICAgICAgICAgICAgOiBtX2FyZ3VtZW50Q291bnQo
MCkKKyAgICAgICAgICAgIDogbV9uYW1lKDApCisgICAgICAgICAgICAsIG1fYXJndW1lbnRDb3Vu
dCgwKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtMTIyLDYgKzE2Nyw3IEBAIHByaXZhdGU6
CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0K
ICAgICAgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV90aHJlYWRJZGVudGlmaWVyOyB9CiAgICAgICAgIGludCBhcmd1bWVudENvdW50KCkgY29u
c3QgeyByZXR1cm4gbV9hcmd1bWVudENvdW50OyB9CisgICAgICAgIGJvb2wgaXNOdWxsKCkgY29u
c3QgeyByZXR1cm4gIW1fbmFtZTsgfQogCiAgICAgICAgIGJvb2wgYXNCb29sKGNvbnN0IGNoYXIq
IG5hbWUpIGNvbnN0CiAgICAgICAgIHsKQEAgLTE2OCw4ICsyMTQsMTggQEAgcHJpdmF0ZToKIAog
ICAgIHR5cGVkZWYgdm9pZCAoVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjoqVHJhY2VFdmVu
dEhhbmRsZXIpKGNvbnN0IFRyYWNlRXZlbnQmKTsKIAorICAgIFRpbWVsaW5lVGhyZWFkU3RhdGUm
IHRocmVhZFN0YXRlKFRocmVhZElkZW50aWZpZXIgdGhyZWFkKQorICAgIHsKKyAgICAgICAgVGhy
ZWFkU3RhdGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aHJlYWRTdGF0ZXMuZmluZCh0aHJlYWQpOwor
ICAgICAgICBpZiAoaXQgIT0gbV90aHJlYWRTdGF0ZXMuZW5kKCkpCisgICAgICAgICAgICByZXR1
cm4gaXQtPnZhbHVlOworICAgICAgICByZXR1cm4gbV90aHJlYWRTdGF0ZXMuYWRkKHRocmVhZCwg
VGltZWxpbmVUaHJlYWRTdGF0ZShtX3RpbWVsaW5lQWdlbnQpKS5pdGVyYXRvci0+dmFsdWU7Cisg
ICAgfQorCiAgICAgdm9pZCBwcm9jZXNzQmFja2dyb3VuZEV2ZW50cygpOwotICAgIHZvaWQgc2Vu
ZFRpbWVsaW5lUmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBT
dHJpbmcmIHJlY29yZFR5cGUsIGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBjb25z
dCBTdHJpbmcmIFRocmVhZCk7CisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0
ZVJlY29yZChjb25zdCBUcmFjZUV2ZW50JiwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBlLCBQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0YSA9IDApOworCisgICAgdm9pZCByZWdpc3Rlckhh
bmRsZXIoY29uc3QgY2hhciogbmFtZSwgVHJhY2VFdmVudFBoYXNlLCBUcmFjZUV2ZW50SGFuZGxl
cik7CiAKICAgICB2b2lkIG9uQmVnaW5GcmFtZShjb25zdCBUcmFjZUV2ZW50Jik7CiAgICAgdm9p
ZCBvblBhaW50TGF5ZXJCZWdpbihjb25zdCBUcmFjZUV2ZW50Jik7CkBAIC0xNzksMjUgKzIzNSwy
MSBAQCBwcml2YXRlOgogICAgIHZvaWQgb25MYXllckRlbGV0ZWQoY29uc3QgVHJhY2VFdmVudCYp
OwogICAgIHZvaWQgb25QYWludChjb25zdCBUcmFjZUV2ZW50Jik7CiAKLSAgICB2b2lkIGZsdXNo
UmFzdGVyaXplclN0YXRpc3RpY3MoKTsKLQotICAgIHZvaWQgcmVnaXN0ZXJIYW5kbGVyKGNvbnN0
IGNoYXIqIG5hbWUsIFRyYWNlRXZlbnRQaGFzZSwgVHJhY2VFdmVudEhhbmRsZXIpOwogCiAgICAg
V2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7CisgICAgVGlt
ZWxpbmVUaW1lQ29udmVydGVyIG1fdGltZUNvbnZlcnRlcjsKICAgICBJbnNwZWN0b3JDbGllbnQq
IG1faW5zcGVjdG9yQ2xpZW50OworICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3BhZ2VJZDsKIAog
ICAgIHR5cGVkZWYgSGFzaE1hcDxzdGQ6OnBhaXI8U3RyaW5nLCBpbnQ+LCBUcmFjZUV2ZW50SGFu
ZGxlcj4gSGFuZGxlcnNNYXA7CiAgICAgSGFuZGxlcnNNYXAgbV9oYW5kbGVyc0J5VHlwZTsKICAg
ICBNdXRleCBtX2JhY2tncm91bmRFdmVudHNNdXRleDsKICAgICBWZWN0b3I8VHJhY2VFdmVudD4g
bV9iYWNrZ3JvdW5kRXZlbnRzOwotICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3BhZ2VJZDsKIAot
ICAgIEhhc2hTZXQ8dW5zaWduZWQgbG9uZyBsb25nPiBtX2tub3duTGF5ZXJzOwotICAgIEhhc2hN
YXA8VGhyZWFkSWRlbnRpZmllciwgZG91YmxlPiBtX3Jhc3RlclN0YXJ0VGltZUJ5VGhyZWFkOwot
ICAgIGRvdWJsZSBtX2ZpcnN0UmFzdGVyU3RhcnRUaW1lOwotICAgIGRvdWJsZSBtX2xhc3RSYXN0
ZXJFbmRUaW1lOwotICAgIGRvdWJsZSBtX2ZyYW1lUmFzdGVyVGltZTsKKyAgICB0eXBlZGVmIEhh
c2hNYXA8VGhyZWFkSWRlbnRpZmllciwgVGltZWxpbmVUaHJlYWRTdGF0ZT4gVGhyZWFkU3RhdGVN
YXA7CisgICAgVGhyZWFkU3RhdGVNYXAgbV90aHJlYWRTdGF0ZXM7CiAKKyAgICBIYXNoU2V0PHVu
c2lnbmVkIGxvbmcgbG9uZz4gbV9rbm93bkxheWVyczsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcg
bV9sYXllcklkOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192941</attachid>
            <date>2013-03-13 10:01:13 -0700</date>
            <delta_ts>2013-03-13 11:02:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112172-20130313205710.patch</filename>
            <type>text/plain</type>
            <size>25036</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGEyOWY5OTYyYWRhZjU4
NzdkZDQ5ZDhiYzdiMGIxMDExODU3MWYwOC4uZGQ5ZDliZTY3MWQ3MGUyZTZmZWUxZGZlNThkNmJm
YWIxNjY2NjBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTAzLTEyICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogZG8gbm90IGFnZ3JlZ2F0ZSBub24tbWFpbiB0aHJlYWQgdGltZWxpbmUgZXZlbnRzLCBoYW5k
bGUgdGhlbSBpbiBhIGdlbmVyaWMgZmFzaGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyMTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgLSBidWlsZCBuZXN0ZWQgZXZlbnQgdHJlZXMgZm9yIG5vbi1t
YWluIHRocmVhZCBldmVudHMgc2ltaWxhciB0byBob3cgaXQncyBkb25lIG9uIHRoZSBtYWluIHRo
cmVhZDsKKyAgICAgICAgLSBkcm9wIGFnZ3JlZ2F0aW9uIGxvZ2ljIGZvciBSYXN0ZXJpemUgZXZl
bnRzOworICAgICAgICAtIGV4dHJhY3QgdGltZSBjb252ZXJzaW9uIGxvZ2ljIHNvIHRoYXQgaXQg
bWF5IGJlIHJldXNlZCBpbiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuCisKKyAgICAgICAg
KiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6IGRyaXZlLWJ5OiBkcm9wIGR1cGxp
Y2F0ZSBsaW5lLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVGltZUNvbnZlcnRlcjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpwdXNoR0NFdmVudFJlY29yZHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dDo6aW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6YXBwZW5kUmVjb3JkKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnNlbmRFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0aW1lc3RhbXApOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg6CisgICAgICAgIChUaW1lbGluZVRpbWVDb252ZXJ0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUaW1lQ29udmVydGVyOjpUaW1lbGluZVRp
bWVDb252ZXJ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUaW1lQ29udmVydGVyOjpm
cm9tTW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojp0aW1lQ29udmVydGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6Y3JlYXRlQmFja2dyb3VuZFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg6CisgICAgICAgIChUaW1l
bGluZVJlY29yZEZhY3RvcnkpOgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZl
bnRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRTdGFjazo6
VGltZWxpbmVSZWNvcmRTdGFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lUmVjb3JkU3RhY2s6OmFkZFNjb3BlZFJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpUaW1lbGluZVJlY29yZFN0YWNrOjpjbG9zZVNjb3BlZFJlY29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUaW1lbGluZVJlY29yZFN0YWNrOjphZGRJbnN0YW50UmVjb3JkKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkU3RhY2s6OmlzT3BlblJlY29yZE9mVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUaW1lbGluZVJlY29yZFN0YWNrOjpzZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vz
c29yKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25C
ZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
cjo6b25SYXN0ZXJUYXNrQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVUcmFjZUV2
ZW50UHJvY2Vzc29yOjpvblJhc3RlclRhc2tFbmQpOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxp
bmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpjcmVhdGVSZWNvcmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaDoKKyAgICAgICAgKFRpbWVsaW5lUmVjb3Jk
U3RhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRTdGFjazo6RW50cnk6OkVu
dHJ5KToKKyAgICAgICAgKEVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3Jk
U3RhY2s6OlRpbWVsaW5lUmVjb3JkU3RhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OlRpbWVsaW5lVGhyZWFkU3Rh
dGU6OlRpbWVsaW5lVGhyZWFkU3RhdGUpOgorICAgICAgICAoVGltZWxpbmVUaHJlYWRTdGF0ZSk6
CisgICAgICAgIChUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpUcmFjZUV2ZW50OjpUcmFjZUV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6VHJhY2VFdmVu
dDo6aXNOdWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nv
cjo6dGhyZWFkU3RhdGUpOgorCiAyMDEzLTAzLTEzICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5p
a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ29kZU1pcnJvcl0g
SGFuZGxlICJlbnRlciIga2V5IGluIHt8fSBzaXR1YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3Jl
L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBiNzcwMWEzYWY0ZTc2YmM5
ZDYwMGMwMTY4MmQzODI4ZGZkM2IzNGM4Li5hYjVjMzI1MzUyZjNhN2EzMjhhOWNlYzE1ZDc1MzM2
ZWY3OWM5ZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzCkBAIC03NzIsNyArNzcyLDYgQEAgbG9jYWxpemVkU3RyaW5nc1siU2NoZWR1
bGUgU3R5bGUgUmVjYWxjdWxhdGlvbiJdID0gIlNjaGVkdWxlIFN0eWxlIFJlY2FsY3VsYXRpb24K
IGxvY2FsaXplZFN0cmluZ3NbIkludmFsaWRhdGUgTGF5b3V0Il0gPSAiSW52YWxpZGF0ZSBMYXlv
dXQiOwogbG9jYWxpemVkU3RyaW5nc1siQ29tcG9zaXRlIExheWVycyJdID0gIkNvbXBvc2l0ZSBM
YXllcnMiOwogbG9jYWxpemVkU3RyaW5nc1siSW50ZXJ2YWwgRHVyYXRpb24iXSA9ICJJbnRlcnZh
bCBEdXJhdGlvbiI7Ci1sb2NhbGl6ZWRTdHJpbmdzWyJDUFUgdGltZSJdID0gIkNQVSB0aW1lIjsK
IGxvY2FsaXplZFN0cmluZ3NbIlJlcGxheSBYSFIiXSA9ICJSZXBsYXkgWEhSIjsKIGxvY2FsaXpl
ZFN0cmluZ3NbIlsgJWQgLSAlZCBdIl0gPSAiWyAlZCAtICVkIF0iOwogbG9jYWxpemVkU3RyaW5n
c1siU2VhcmNoIHNvdXJjZXMiXSA9ICJTZWFyY2ggc291cmNlcyI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKaW5kZXggMDI4OGIw
NDE4YzYwYWIxMWJmYThjN2VlYTIwZGM1Y2M0MzE1NWEzZC4uMzNlMTc1NGJhMjlmMzRiMjQ2MGM3
MmNjMGU4NmYyMzliNmU1NzczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcApAQCAtMTIyLDYgKzEyMiwxMSBAQCBzdGF0aWMg
Y29uc3QgY2hhciBXZWJTb2NrZXREZXN0cm95W10gPSAiV2ViU29ja2V0RGVzdHJveSI7CiBjb25z
dCBjaGFyIFJhc3Rlcml6ZVtdID0gIlJhc3Rlcml6ZSI7CiB9CiAKK3ZvaWQgVGltZWxpbmVUaW1l
Q29udmVydGVyOjpyZXNldCgpCit7CisgICAgbV9zdGFydE9mZnNldCA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpIC0gY3VycmVudFRpbWUoKTsKK30KKwogdm9pZCBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OjpwdXNoR0NFdmVudFJlY29yZHMoKQogewogICAgIGlmICghbV9nY0V2ZW50cy5z
aXplKCkpCkBAIC0xMzAsOSArMTM1LDkgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojpw
dXNoR0NFdmVudFJlY29yZHMoKQogICAgIEdDRXZlbnRzIGV2ZW50cyA9IG1fZ2NFdmVudHM7CiAg
ICAgbV9nY0V2ZW50cy5jbGVhcigpOwogICAgIGZvciAoR0NFdmVudHM6Oml0ZXJhdG9yIGkgPSBl
dmVudHMuYmVnaW4oKTsgaSAhPSBldmVudHMuZW5kKCk7ICsraSkgewotICAgICAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNSZWNvcmQodGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhpLT5zdGFydFRpbWUpLCBtX21h
eENhbGxTdGFja0RlcHRoKTsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3Jk
ID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVHZW5lcmljUmVjb3JkKG1fdGltZUNvbnZl
cnRlci5mcm9tTW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKGktPnN0YXJ0VGltZSksIG1fbWF4
Q2FsbFN0YWNrRGVwdGgpOwogICAgICAgICByZWNvcmQtPnNldE9iamVjdCgiZGF0YSIsIFRpbWVs
aW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlR0NFdmVudERhdGEoaS0+Y29sbGVjdGVkQnl0ZXMpKTsK
LSAgICAgICAgcmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUiLCB0aW1lc3RhbXBGcm9tTWljcm9z
ZWNvbmRzKGktPmVuZFRpbWUpKTsKKyAgICAgICAgcmVjb3JkLT5zZXROdW1iZXIoImVuZFRpbWUi
LCBtX3RpbWVDb252ZXJ0ZXIuZnJvbU1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShpLT5lbmRU
aW1lKSk7CiAgICAgICAgIGFkZFJlY29yZFRvVGltZWxpbmUocmVjb3JkLnJlbGVhc2UoKSwgVGlt
ZWxpbmVSZWNvcmRUeXBlOjpHQ0V2ZW50KTsKICAgICB9CiB9CkBAIC0xNzgsNyArMTgzLDcgQEAg
dm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydChFcnJvclN0cmluZyosIGNvbnN0IGlu
dCogbWF4Q2FsbFN0YWNrRGVwdGgpCiAgICAgZWxzZQogICAgICAgICBtX21heENhbGxTdGFja0Rl
cHRoID0gNTsKICAgICBtX3N0YXRlLT5zZXRMb25nKFRpbWVsaW5lQWdlbnRTdGF0ZTo6dGltZWxp
bmVNYXhDYWxsU3RhY2tEZXB0aCwgbV9tYXhDYWxsU3RhY2tEZXB0aCk7Ci0gICAgbV90aW1lc3Rh
bXBPZmZzZXQgPSBjdXJyZW50VGltZSgpIC0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7
CisgICAgbV90aW1lQ29udmVydGVyLnJlc2V0KCk7CiAKICAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPnNldEluc3BlY3RvclRpbWVsaW5lQWdlbnQodGhpcyk7CiAgICAgU2NyaXB0R0NFdmVudDo6
YWRkRXZlbnRMaXN0ZW5lcih0aGlzKTsKQEAgLTU0NywxMSArNTUyLDkgQEAgdm9pZCBJbnNwZWN0
b3JUaW1lbGluZUFnZW50Ojppbm5lckFkZFJlY29yZFRvVGltZWxpbmUoUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3QKICAgICBlbHNlCiAgICAgICAgIHNldERPTUNvdW50ZXJzKHJlY29yZC5nZXQo
KSk7CiAKLSAgICBpZiAobV9yZWNvcmRTdGFjay5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gRklY
TUU6IHJ1bnRpbWVDYXN0IGlzIGEgaGFjay4gV2UgZG8gaXQgYmVjYXVzZSB3ZSBjYW4ndCBidWls
ZCBUaW1lbGluZUV2ZW50IGRpcmVjdGx5IG5vdy4KLSAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVy
OjpUaW1lbGluZTo6VGltZWxpbmVFdmVudD4gcmVjb3JkQ2hlY2tlZCA9IFR5cGVCdWlsZGVyOjpU
aW1lbGluZTo6VGltZWxpbmVFdmVudDo6cnVudGltZUNhc3QocmVjb3JkLnJlbGVhc2UoKSk7Ci0g
ICAgICAgIG1fZnJvbnRlbmQtPmV2ZW50UmVjb3JkZWQocmVjb3JkQ2hlY2tlZC5yZWxlYXNlKCkp
OwotICAgIH0gZWxzZSB7CisgICAgaWYgKG1fcmVjb3JkU3RhY2suaXNFbXB0eSgpKQorICAgICAg
ICBzZW5kRXZlbnQocmVjb3JkLnJlbGVhc2UoKSk7CisgICAgZWxzZSB7CiAgICAgICAgIFRpbWVs
aW5lUmVjb3JkRW50cnkgcGFyZW50ID0gbV9yZWNvcmRTdGFjay5sYXN0KCk7CiAgICAgICAgIHBh
cmVudC5jaGlsZHJlbi0+cHVzaE9iamVjdChyZWNvcmQucmVsZWFzZSgpKTsKICAgICB9CkBAIC02
MzQsNyArNjM3LDYgQEAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW4KICAgICAsIG1fcGFnZUFnZW50
KHBhZ2VBZ2VudCkKICAgICAsIG1fbWVtb3J5QWdlbnQobWVtb3J5QWdlbnQpCiAgICAgLCBtX2Zy
b250ZW5kKDApCi0gICAgLCBtX3RpbWVzdGFtcE9mZnNldCgwKQogICAgICwgbV9pZCgxKQogICAg
ICwgbV9tYXhDYWxsU3RhY2tEZXB0aCg1KQogICAgICwgbV9wbGF0Zm9ybUluc3RydW1lbnRhdGlv
bkNsaWVudEluc3RhbGxlZEF0U3RhY2tEZXB0aCgwKQpAQCAtNjQ5LDE5ICs2NTEsMTQgQEAgdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjphcHBlbmRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGRhdGEsIGNvbnMKICAgICBwdXNoR0NFdmVudFJlY29yZHMoKTsKICAgICBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0
ZUdlbmVyaWNSZWNvcmQodGltZXN0YW1wKCksIGNhcHR1cmVDYWxsU3RhY2sgPyBtX21heENhbGxT
dGFja0RlcHRoIDogMCk7CiAgICAgcmVjb3JkLT5zZXRPYmplY3QoImRhdGEiLCBkYXRhKTsKLSAg
ICByZWNvcmQtPnNldFN0cmluZygidHlwZSIsIHR5cGUpOwogICAgIHNldEZyYW1lSWRlbnRpZmll
cihyZWNvcmQuZ2V0KCksIGZyYW1lKTsKICAgICBhZGRSZWNvcmRUb1RpbWVsaW5lKHJlY29yZC5y
ZWxlYXNlKCksIHR5cGUpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmFwcGVu
ZEJhY2tncm91bmRUaHJlYWRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEs
IGNvbnN0IFN0cmluZyYgdHlwZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUsIGNv
bnN0IFN0cmluZyYgdGhyZWFkTmFtZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c2Vu
ZEV2ZW50KFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBldmVudCkKIHsKLSAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdl
bmVyaWNSZWNvcmQodGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhzdGFydFRpbWUpLCAwKTsKLSAg
ICByZWNvcmQtPnNldE9iamVjdCgiZGF0YSIsIGRhdGEpOwotICAgIHJlY29yZC0+c2V0U3RyaW5n
KCJ0eXBlIiwgdHlwZSk7Ci0gICAgcmVjb3JkLT5zZXRTdHJpbmcoInRocmVhZCIsIHRocmVhZE5h
bWUpOwotICAgIHJlY29yZC0+c2V0TnVtYmVyKCJlbmRUaW1lIiwgdGltZXN0YW1wRnJvbU1pY3Jv
c2Vjb25kcyhlbmRUaW1lKSk7Ci0gICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGlt
ZWxpbmVFdmVudD4gcmVjb3JkQ2hlY2tlZCA9IFR5cGVCdWlsZGVyOjpUaW1lbGluZTo6VGltZWxp
bmVFdmVudDo6cnVudGltZUNhc3QocmVjb3JkLnJlbGVhc2UoKSk7CisgICAgLy8gRklYTUU6IHJ1
bnRpbWVDYXN0IGlzIGEgaGFjay4gV2UgZG8gaXQgYmVjYXVzZSB3ZSBjYW4ndCBidWlsZCBUaW1l
bGluZUV2ZW50IGRpcmVjdGx5IG5vdy4KKyAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlRpbWVsaW5l
OjpUaW1lbGluZUV2ZW50PiByZWNvcmRDaGVja2VkID0gVHlwZUJ1aWxkZXI6OlRpbWVsaW5lOjpU
aW1lbGluZUV2ZW50OjpydW50aW1lQ2FzdChldmVudCk7CiAgICAgbV9mcm9udGVuZC0+ZXZlbnRS
ZWNvcmRlZChyZWNvcmRDaGVja2VkLnJlbGVhc2UoKSk7CiB9CiAKQEAgLTcwMCwxMiArNjk3LDcg
QEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjbGVhclJlY29yZFN0YWNrKCkKIAogZG91
YmxlIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcCgpCiB7Ci0gICAgcmV0dXJuIHRp
bWVzdGFtcEZyb21NaWNyb3NlY29uZHMoV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KSk7Ci19Ci0KLWRvdWJsZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0aW1lc3RhbXBGcm9tTWlj
cm9zZWNvbmRzKGRvdWJsZSBtaWNyb3NlY29uZHMpCi17Ci0gICAgcmV0dXJuIChtaWNyb3NlY29u
ZHMgKyBtX3RpbWVzdGFtcE9mZnNldCkgKiAxMDAwLjA7CisgICAgcmV0dXJuIG1fdGltZUNvbnZl
cnRlci5mcm9tTW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKFdURjo6bW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCkpOwogfQogCiBQYWdlKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpwYWdl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oCmluZGV4IGUxY2NjMjZjN2VlODBiZDIwNWE2ZmI4NTIxN2E2ZTg4MmM0MTliY2IuLjk4NDdl
MWRkMDJjYWIyNTU4ZTUxY2UzOGIzMWNmYjRjMTZlNDRjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNjcsNiArNjcsMTkg
QEAgbmFtZXNwYWNlIFRpbWVsaW5lUmVjb3JkVHlwZSB7CiBleHRlcm4gY29uc3QgY2hhciBSYXN0
ZXJpemVbXTsKIH07CiAKK2NsYXNzIFRpbWVsaW5lVGltZUNvbnZlcnRlciB7CitwdWJsaWM6Cisg
ICAgVGltZWxpbmVUaW1lQ29udmVydGVyKCkKKyAgICAgICAgOiBtX3N0YXJ0T2Zmc2V0KDApCisg
ICAgeworICAgIH0KKyAgICBkb3VibGUgZnJvbU1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShk
b3VibGUgdGltZSkgY29uc3QgIHsgcmV0dXJuICh0aW1lIC0gbV9zdGFydE9mZnNldCkgKiAxMDAw
LjA7IH0KKyAgICB2b2lkIHJlc2V0KCk7CisKK3ByaXZhdGU6CisgICAgZG91YmxlIG1fc3RhcnRP
ZmZzZXQ7Cit9OworCiBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50CiAgICAgOiBwdWJsaWMg
SW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+LAogICAgICAgcHVibGlj
IFNjcmlwdEdDRXZlbnRMaXN0ZW5lciwKQEAgLTE4MSw2ICsxOTQsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlc2l6ZUltYWdlKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CisgICAg
ZnJpZW5kIGNsYXNzIFRpbWVsaW5lUmVjb3JkU3RhY2s7CiAgICAgZnJpZW5kIGNsYXNzIFRpbWVs
aW5lVHJhY2VFdmVudFByb2Nlc3NvcjsKIAogICAgIHN0cnVjdCBUaW1lbGluZVJlY29yZEVudHJ5
IHsKQEAgLTE5Nyw3ICsyMTEsNyBAQCBwcml2YXRlOgogICAgICAgICAKICAgICBJbnNwZWN0b3JU
aW1lbGluZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJ
bnNwZWN0b3JNZW1vcnlBZ2VudCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5zcGVjdG9y
VHlwZSwgSW5zcGVjdG9yQ2xpZW50Kik7CiAKLSAgICB2b2lkIGFwcGVuZEJhY2tncm91bmRUaHJl
YWRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmluZyYg
dHlwZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUsIGNvbnN0IFN0cmluZyYgdGhy
ZWFkTmFtZSk7CisgICAgdm9pZCBzZW5kRXZlbnQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KTsKICAgICB2b2lkIGFwcGVuZFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGF0
YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKik7CiAg
ICAgdm9pZCBwdXNoQ3VycmVudFJlY29yZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4sIGNv
bnN0IFN0cmluZyYgdHlwZSwgYm9vbCBjYXB0dXJlQ2FsbFN0YWNrLCBGcmFtZSosIGJvb2wgaGFz
TG93TGV2ZWxEZXRhaWxzID0gZmFsc2UpOwogCkBAIC0yMTUsMTIgKzIyOSwxMyBAQCBwcml2YXRl
OgogICAgIHZvaWQgaW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiwgY29uc3QgU3RyaW5nJiB0eXBlKTsKICAgICB2b2lkIGNsZWFyUmVjb3JkU3RhY2so
KTsKIAorICAgIGNvbnN0IFRpbWVsaW5lVGltZUNvbnZlcnRlciYgdGltZUNvbnZlcnRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fdGltZUNvbnZlcnRlcjsgfQogICAgIGRvdWJsZSB0aW1lc3RhbXAoKTsK
LSAgICBkb3VibGUgdGltZXN0YW1wRnJvbU1pY3Jvc2Vjb25kcyhkb3VibGUgbWljcm9zZWNvbmRz
KTsKICAgICBQYWdlKiBwYWdlKCk7CiAKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFn
ZW50OwogICAgIEluc3BlY3Rvck1lbW9yeUFnZW50KiBtX21lbW9yeUFnZW50OworICAgIFRpbWVs
aW5lVGltZUNvbnZlcnRlciBtX3RpbWVDb252ZXJ0ZXI7CiAKICAgICBJbnNwZWN0b3JGcm9udGVu
ZDo6VGltZWxpbmUqIG1fZnJvbnRlbmQ7CiAgICAgZG91YmxlIG1fdGltZXN0YW1wT2Zmc2V0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNw
cAppbmRleCBlNDdjYmE1ZGU4ZDI2Mjc5NmM0MGQ3M2FkOWU4ZTg0NTVmNDU1N2FjLi5hMmQ1NTVl
Nzc3MzZlOTdjZTgxZjUwMWYyZTE3NTYzM2RiYmVjMWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtNTksNiArNTksMTQg
QEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlR2VuZXJpY1JlY29yZChkb3VibGUgc3QKICAgICByZXR1cm4gcmVjb3JkLnJlbGVhc2UoKTsK
IH0KIAorUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6
Y3JlYXRlQmFja2dyb3VuZFJlY29yZChkb3VibGUgc3RhcnRUaW1lLCBjb25zdCBTdHJpbmcmIHRo
cmVhZE5hbWUpCit7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZWNvcmQtPnNldE51bWJlcigic3RhcnRUaW1lIiwg
c3RhcnRUaW1lKTsKKyAgICByZWNvcmQtPnNldFN0cmluZygidGhyZWFkIiwgdGhyZWFkTmFtZSk7
CisgICAgcmV0dXJuIHJlY29yZC5yZWxlYXNlKCk7Cit9CisKIFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUdDRXZlbnREYXRhKGNvbnN0IHNp
emVfdCB1c2VkSGVhcFNpemVEZWx0YSkKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBk
YXRhID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKQEAgLTIxMywxNCArMjIxLDYgQEAgdm9p
ZCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmFkZFJlY3REYXRhKEluc3BlY3Rvck9iamVjdCogZGF0
YSwgY29uc3QgTGF5b3V0UmVjdCYKICAgICBkYXRhLT5zZXROdW1iZXIoImhlaWdodCIsIHJlY3Qu
aGVpZ2h0KCkpOwogfQogCi1QYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gVGltZWxpbmVSZWNv
cmRGYWN0b3J5OjpjcmVhdGVSYXN0ZXJEYXRhKGRvdWJsZSB0b3RhbENQVVRpbWUsIGludCB0aHJl
YWRzVXNlZCkKLXsKLSAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKLSAgICBkYXRhLT5zZXROdW1iZXIoInRvdGFsQ1BVVGltZSIsIHRv
dGFsQ1BVVGltZSk7Ci0gICAgZGF0YS0+c2V0TnVtYmVyKCJ0aHJlYWRzVXNlZCIsIHRocmVhZHNV
c2VkKTsKLSAgICByZXR1cm4gZGF0YS5yZWxlYXNlKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKaW5kZXggMDkyNTY0OTMxYzhjNDlk
ZGEzN2ZkYWNkYjhmYTRkMDg2NmMwZjFjNi4uNjhjYmE2ZDZiYTlkMjM2Njk2ZjIwNWEzMWRlNTIw
ZGQ5YjgxZTU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuaApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgVGltZWxpbmVSZWNvcmRGYWN0b3J5IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlR2VuZXJpY1JlY29yZChkb3VibGUg
c3RhcnRUaW1lLCBpbnQgbWF4Q2FsbFN0YWNrRGVwdGgpOworICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUJhY2tncm91bmRSZWNvcmQoZG91YmxlIHN0YXJ0
VGltZSwgY29uc3QgU3RyaW5nJiB0aHJlYWQpOwogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gY3JlYXRlR0NFdmVudERhdGEoY29uc3Qgc2l6ZV90IHVzZWRIZWFw
U2l6ZURlbHRhKTsKIApAQCAtMTA4LDggKzEwOSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgICAgIHJldHVybiBkYXRhLnJlbGVhc2UoKTsKICAgICAgICAgfQogI2VuZGlmCi0gICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmFzdGVyRGF0YShk
b3VibGUgdG90YWxDUFVUaW1lLCBpbnQgdGhyZWFkc1VzZWQpOwotCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgVGltZWxpbmVSZWNvcmRGYWN0b3J5KCkgeyB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAK
aW5kZXggOTIxMGNhYWRlZjU0ZmY5NWZmMWEwMGUwZjg0NWY3YjFmNTUwMjU5My4uM2U0MmFhYzg1
ZTA1Nzg1MWVhNjA5ZGQ5YWJmODk1ZjJhZjI4MWE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNiw3ICszNiw2
IEBACiAKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAj
aW5jbHVkZSAiVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgiCiAKICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KQEAgLTEwNCwxMyArMTAzLDU5IEBAIHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVz
cGNlCisKKworVGltZWxpbmVSZWNvcmRTdGFjazo6VGltZWxpbmVSZWNvcmRTdGFjayhXZWFrUHRy
PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IHRpbWVsaW5lQWdlbnQpCisgICAgOiBtX3RpbWVsaW5l
QWdlbnQodGltZWxpbmVBZ2VudCkKK3sKK30KKwordm9pZCBUaW1lbGluZVJlY29yZFN0YWNrOjph
ZGRTY29wZWRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCkKK3sKKyAg
ICBtX3N0YWNrLmFwcGVuZChFbnRyeShyZWNvcmQpKTsKK30KKwordm9pZCBUaW1lbGluZVJlY29y
ZFN0YWNrOjpjbG9zZVNjb3BlZFJlY29yZChkb3VibGUgZW5kVGltZSkKK3sKKyAgICBpZiAobV9z
dGFjay5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBFbnRyeSBsYXN0ID0gbV9zdGFj
ay5sYXN0KCk7CisgICAgbV9zdGFjay5yZW1vdmVMYXN0KCk7CisgICAgbGFzdC5yZWNvcmQtPnNl
dE51bWJlcigiZW5kVGltZSIsIGVuZFRpbWUpOworICAgIGlmIChsYXN0LmNoaWxkcmVuLT5sZW5n
dGgoKSkKKyAgICAgICAgbGFzdC5yZWNvcmQtPnNldEFycmF5KCJjaGlsZHJlbiIsIGxhc3QuY2hp
bGRyZW4pOworICAgIGFkZEluc3RhbnRSZWNvcmQobGFzdC5yZWNvcmQpOworfQorCit2b2lkIFRp
bWVsaW5lUmVjb3JkU3RhY2s6OmFkZEluc3RhbnRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IHJlY29yZCkKK3sKKyAgICBpZiAobV9zdGFjay5pc0VtcHR5KCkpCisgICAgICAgIHNl
bmQocmVjb3JkKTsKKyAgICBlbHNlCisgICAgICAgIG1fc3RhY2subGFzdCgpLmNoaWxkcmVuLT5w
dXNoT2JqZWN0KHJlY29yZCk7Cit9CisKKyNpZm5kZWYgTkRFQlVHCitib29sIFRpbWVsaW5lUmVj
b3JkU3RhY2s6OmlzT3BlblJlY29yZE9mVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAg
U3RyaW5nIGxhc3RSZWNvcmRUeXBlOworICAgIHJldHVybiBtX3N0YWNrLmlzRW1wdHkoKSB8fCAo
bV9zdGFjay5sYXN0KCkucmVjb3JkLT5nZXRTdHJpbmcoInR5cGUiLCAmbGFzdFJlY29yZFR5cGUp
ICYmIHR5cGUgPT0gbGFzdFJlY29yZFR5cGUpOworfQorI2VuZGlmCisKK3ZvaWQgVGltZWxpbmVS
ZWNvcmRTdGFjazo6c2VuZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkKQorewor
ICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBtX3RpbWVsaW5lQWdl
bnQuZ2V0KCk7CisgICAgaWYgKCF0aW1lbGluZUFnZW50KQorICAgICAgICByZXR1cm47CisgICAg
dGltZWxpbmVBZ2VudC0+c2VuZEV2ZW50KHJlY29yZCk7Cit9CisKIFRpbWVsaW5lVHJhY2VFdmVu
dFByb2Nlc3Nvcjo6VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yKFdlYWtQdHI8SW5zcGVjdG9y
VGltZWxpbmVBZ2VudD4gdGltZWxpbmVBZ2VudCwgSW5zcGVjdG9yQ2xpZW50ICpjbGllbnQpCiAg
ICAgOiBtX3RpbWVsaW5lQWdlbnQodGltZWxpbmVBZ2VudCkKKyAgICAsIG1fdGltZUNvbnZlcnRl
cih0aW1lbGluZUFnZW50LmdldCgpLT50aW1lQ29udmVydGVyKCkpCiAgICAgLCBtX2luc3BlY3Rv
ckNsaWVudChjbGllbnQpCiAgICAgLCBtX3BhZ2VJZChyZWludGVycHJldF9jYXN0PHVuc2lnbmVk
IGxvbmcgbG9uZz4obV90aW1lbGluZUFnZW50LmdldCgpLT5wYWdlKCkpKQotICAgICwgbV9maXJz
dFJhc3RlclN0YXJ0VGltZSgwKQotICAgICwgbV9sYXN0UmFzdGVyRW5kVGltZSgwKQotICAgICwg
bV9mcmFtZVJhc3RlclRpbWUoMCkKICAgICAsIG1fbGF5ZXJJZCgwKQogewogICAgIHJlZ2lzdGVy
SGFuZGxlcihJbnN0cnVtZW50YXRpb25FdmVudHM6OkJlZ2luRnJhbWUsIFRyYWNlUGhhc2VJbnN0
YW50LCAmVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpvbkJlZ2luRnJhbWUpOwpAQCAtMTc4
LDcgKzIyMyw3IEBAIHZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpwcm9jZXNzRXZl
bnRPbkFueVRocmVhZChUcmFjZUV2ZW50UGhhc2UgcGhhc2UsCiAKIHZvaWQgVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yOjpvbkJlZ2luRnJhbWUoY29uc3QgVHJhY2VFdmVudCYpCiB7Ci0gICAg
Zmx1c2hSYXN0ZXJpemVyU3RhdGlzdGljcygpOworICAgIHByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRz
KCk7CiB9CiAKIHZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpvblBhaW50TGF5ZXJC
ZWdpbihjb25zdCBUcmFjZUV2ZW50JiBldmVudCkKQEAgLTE5NSwyNiArMjQwLDIzIEBAIHZvaWQg
VGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yOjpvblBhaW50TGF5ZXJFbmQoY29uc3QgVHJhY2VF
dmVudCYpCiB2b2lkIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25SYXN0ZXJUYXNrQmVn
aW4oY29uc3QgVHJhY2VFdmVudCYgZXZlbnQpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIGxh
eWVySWQgPSBldmVudC5hc1VJbnQoSW5zdHJ1bWVudGF0aW9uRXZlbnRBcmd1bWVudHM6OkxheWVy
SWQpOwotICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSWRlbnRpZmllciA9IGV2ZW50LnRocmVh
ZElkZW50aWZpZXIoKTsKLSAgICBBU1NFUlQobV9yYXN0ZXJTdGFydFRpbWVCeVRocmVhZC5nZXQo
dGhyZWFkSWRlbnRpZmllcikgPT0gSGFzaFRyYWl0czxkb3VibGU+OjplbXB0eVZhbHVlKCkpOwot
ICAgIGRvdWJsZSB0aW1lc3RhbXAgPSBtX2tub3duTGF5ZXJzLmNvbnRhaW5zKGxheWVySWQpID8g
ZXZlbnQudGltZXN0YW1wKCkgOiAwOwotICAgIG1fcmFzdGVyU3RhcnRUaW1lQnlUaHJlYWQuc2V0
KHRocmVhZElkZW50aWZpZXIsIHRpbWVzdGFtcCk7CisgICAgaWYgKCFtX2tub3duTGF5ZXJzLmNv
bnRhaW5zKGxheWVySWQpKQorICAgICAgICByZXR1cm47CisgICAgVGltZWxpbmVUaHJlYWRTdGF0
ZSYgc3RhdGUgPSB0aHJlYWRTdGF0ZShldmVudC50aHJlYWRJZGVudGlmaWVyKCkpOworICAgIEFT
U0VSVCghc3RhdGUuaW5SYXN0ZXJpemVFdmVudCk7CisgICAgc3RhdGUuaW5SYXN0ZXJpemVFdmVu
dCA9IHRydWU7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVjb3JkID0gY3JlYXRlUmVj
b3JkKGV2ZW50LCBUaW1lbGluZVJlY29yZFR5cGU6OlJhc3Rlcml6ZSk7CisgICAgc3RhdGUucmVj
b3JkU3RhY2suYWRkU2NvcGVkUmVjb3JkKHJlY29yZC5yZWxlYXNlKCkpOwogfQogCiB2b2lkIFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6b25SYXN0ZXJUYXNrRW5kKGNvbnN0IFRyYWNlRXZl
bnQmIGV2ZW50KQogewotICAgIEhhc2hNYXA8VGhyZWFkSWRlbnRpZmllciwgZG91YmxlPjo6aXRl
cmF0b3IgaXQgPSBtX3Jhc3RlclN0YXJ0VGltZUJ5VGhyZWFkLmZpbmQoZXZlbnQudGhyZWFkSWRl
bnRpZmllcigpKTsKLSAgICBpZiAoaXQgPT0gbV9yYXN0ZXJTdGFydFRpbWVCeVRocmVhZC5lbmQo
KSkKLSAgICAgICAgcmV0dXJuOwotICAgIGRvdWJsZSBzdGFydFRpbWUgPSBpdC0+dmFsdWU7Ci0g
ICAgZG91YmxlIGVuZFRpbWUgPSBldmVudC50aW1lc3RhbXAoKTsKLSAgICBpZiAoc3RhcnRUaW1l
ID09IEhhc2hUcmFpdHM8ZG91YmxlPjo6ZW1wdHlWYWx1ZSgpKSAvLyBSYXN0ZXJpemluZyB1bmtu
b3duIGxheWVyLgorICAgIFRpbWVsaW5lVGhyZWFkU3RhdGUmIHN0YXRlID0gdGhyZWFkU3RhdGUo
ZXZlbnQudGhyZWFkSWRlbnRpZmllcigpKTsKKyAgICBpZiAoIXN0YXRlLmluUmFzdGVyaXplRXZl
bnQpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2ZyYW1lUmFzdGVyVGltZSArPSBlbmRUaW1lIC0g
c3RhcnRUaW1lOwotICAgIGl0LT52YWx1ZSA9IEhhc2hUcmFpdHM8ZG91YmxlPjo6ZW1wdHlWYWx1
ZSgpOwotICAgIGlmICghbV9maXJzdFJhc3RlclN0YXJ0VGltZSB8fCBtX2ZpcnN0UmFzdGVyU3Rh
cnRUaW1lID4gc3RhcnRUaW1lKQotICAgICAgICBtX2ZpcnN0UmFzdGVyU3RhcnRUaW1lID0gc3Rh
cnRUaW1lOwotICAgIG1fbGFzdFJhc3RlckVuZFRpbWUgPSBlbmRUaW1lOworICAgIEFTU0VSVChz
dGF0ZS5yZWNvcmRTdGFjay5pc09wZW5SZWNvcmRPZlR5cGUoVGltZWxpbmVSZWNvcmRUeXBlOjpS
YXN0ZXJpemUpKTsKKyAgICBzdGF0ZS5yZWNvcmRTdGFjay5jbG9zZVNjb3BlZFJlY29yZChtX3Rp
bWVDb252ZXJ0ZXIuZnJvbU1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZShldmVudC50aW1lc3Rh
bXAoKSkpOworICAgIHN0YXRlLmluUmFzdGVyaXplRXZlbnQgPSBmYWxzZTsKIH0KIAogdm9pZCBU
aW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6Om9uTGF5ZXJEZWxldGVkKGNvbnN0IFRyYWNlRXZl
bnQmIGV2ZW50KQpAQCAtMjM1LDI1ICsyNzcsMTMgQEAgdm9pZCBUaW1lbGluZVRyYWNlRXZlbnRQ
cm9jZXNzb3I6Om9uUGFpbnQoY29uc3QgVHJhY2VFdmVudCYgZXZlbnQpCiAgICAgICAgIG1fa25v
d25MYXllcnMuYWRkKG1fbGF5ZXJJZCk7CiB9CiAKLXZvaWQgVGltZWxpbmVUcmFjZUV2ZW50UHJv
Y2Vzc29yOjpmbHVzaFJhc3Rlcml6ZXJTdGF0aXN0aWNzKCkKK1Bhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OmNyZWF0ZVJlY29yZChjb25zdCBU
cmFjZUV2ZW50JiBldmVudCwgY29uc3QgU3RyaW5nJiByZWNvcmRUeXBlLCBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gZGF0YSkKIHsKLSAgICBwcm9jZXNzQmFja2dyb3VuZEV2ZW50cygpOwot
ICAgIGlmIChtX2xhc3RSYXN0ZXJFbmRUaW1lKSB7Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGRhdGEgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZVJhc3RlckRhdGEobV9m
cmFtZVJhc3RlclRpbWUsIG1fcmFzdGVyU3RhcnRUaW1lQnlUaHJlYWQuc2l6ZSgpKTsKLSAgICAg
ICAgc2VuZFRpbWVsaW5lUmVjb3JkKGRhdGEsIFRpbWVsaW5lUmVjb3JkVHlwZTo6UmFzdGVyaXpl
LCBtX2ZpcnN0UmFzdGVyU3RhcnRUaW1lLCBtX2xhc3RSYXN0ZXJFbmRUaW1lLCAibXVsdGlwbGUi
KTsKLSAgICB9Ci0gICAgbV9maXJzdFJhc3RlclN0YXJ0VGltZSA9IDA7Ci0gICAgbV9sYXN0UmFz
dGVyRW5kVGltZSA9IDA7Ci0gICAgbV9mcmFtZVJhc3RlclRpbWUgPSAwOwotfQotCi12b2lkIFRp
bWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvcjo6c2VuZFRpbWVsaW5lUmVjb3JkKFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBkYXRhLCBjb25zdCBTdHJpbmcmIHJlY29yZFR5cGUsIGRvdWJsZSBz
dGFydFRpbWUsIGRvdWJsZSBlbmRUaW1lLCBjb25zdCBTdHJpbmcmIHRocmVhZCkKLXsKLSAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVs
aW5lQWdlbnQgPSBtX3RpbWVsaW5lQWdlbnQuZ2V0KCk7Ci0gICAgaWYgKCF0aW1lbGluZUFnZW50
KQotICAgICAgICByZXR1cm47Ci0gICAgdGltZWxpbmVBZ2VudC0+YXBwZW5kQmFja2dyb3VuZFRo
cmVhZFJlY29yZChkYXRhLCByZWNvcmRUeXBlLCBzdGFydFRpbWUsIGVuZFRpbWUsIHRocmVhZCk7
CisgICAgZG91YmxlIHN0YXJ0VGltZSA9IG1fdGltZUNvbnZlcnRlci5mcm9tTW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKGV2ZW50LnRpbWVzdGFtcCgpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQgPSBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmNyZWF0ZUJhY2tncm91bmRS
ZWNvcmQoc3RhcnRUaW1lLCBTdHJpbmc6Om51bWJlcihldmVudC50aHJlYWRJZGVudGlmaWVyKCkp
KTsKKyAgICByZWNvcmQtPnNldFN0cmluZygidHlwZSIsIHJlY29yZFR5cGUpOworICAgIHJlY29y
ZC0+c2V0T2JqZWN0KCJkYXRhIiwgZGF0YSA/IGRhdGEgOiBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpKTsKKyAgICByZXR1cm4gcmVjb3JkLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBUaW1lbGluZVRy
YWNlRXZlbnRQcm9jZXNzb3I6OnByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3IuaApp
bmRleCA4NjFhYjkwODIwZDNlYWM4ZDUwYTJmMDhkNmVlOWFkZWJkZmI4YzNhLi5jOGUwYzUxMDgx
NmFlYTRlMWM4NjNjNjBhMWFmNmYyYzY0NDQxMjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvVGltZWxpbmVUcmFjZUV2ZW50UHJvY2Vzc29yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5oCkBAIC0zMyw2ICsz
Myw3IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCisjaW5jbHVkZSAiSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KQEAgLTQ5LDYgKzUwLDM4IEBAIGNsYXNzIEluc3BlY3RvckNsaWVudDsK
IGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CiBjbGFzcyBQYWdlOwogCitjbGFzcyBUaW1l
bGluZVJlY29yZFN0YWNrIHsKK3ByaXZhdGU6CisgICAgc3RydWN0IEVudHJ5IHsKKyAgICAgICAg
RW50cnkoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29yZCkKKyAgICAgICAgICAgIDog
cmVjb3JkKHJlY29yZCkKKyAgICAgICAgICAgICwgY2hpbGRyZW4oSW5zcGVjdG9yQXJyYXk6OmNy
ZWF0ZSgpKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZWNvcmQ7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gY2hpbGRyZW47
CisgICAgfTsKKworcHVibGljOgorICAgIFRpbWVsaW5lUmVjb3JkU3RhY2soKSB7IH0KKyAgICBU
aW1lbGluZVJlY29yZFN0YWNrKFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4pOworCisg
ICAgdm9pZCBhZGRTY29wZWRSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlY29y
ZCk7CisgICAgdm9pZCBjbG9zZVNjb3BlZFJlY29yZChkb3VibGUgZW5kVGltZSk7CisgICAgdm9p
ZCBhZGRJbnN0YW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZWNvcmQpOwor
CisjaWZuZGVmIE5ERUJVRworICAgIGJvb2wgaXNPcGVuUmVjb3JkT2ZUeXBlKGNvbnN0IFN0cmlu
ZyYgdHlwZSk7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICB2b2lkIHNlbmQoUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+KTsKKworICAgIFdlYWtQdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4g
bV90aW1lbGluZUFnZW50OworICAgIFZlY3RvcjxFbnRyeT4gbV9zdGFjazsKK307CisKIGNsYXNz
IFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3NvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I+IHsKIHB1YmxpYzoKICAgICAvLyBGSVhNRTog
cmUtdXNlIGRlZmluaXRpb25zIGluIFRyYWNlRXZlbnQuaCBvbmNlIGl0J3MgcHJvbW90ZWQgdG8g
YWxsIHBsYXRmb3Jtcy4KQEAgLTg5LDEwICsxMjIsMjQgQEAgcHJpdmF0ZToKICAgICAgICAgVHlw
ZUNvcHlTdHJpbmcgPSA3CiAgICAgfTsKIAorICAgIHN0cnVjdCBUaW1lbGluZVRocmVhZFN0YXRl
IHsKKyAgICAgICAgVGltZWxpbmVUaHJlYWRTdGF0ZSgpIHsgfQorCisgICAgICAgIFRpbWVsaW5l
VGhyZWFkU3RhdGUoV2Vha1B0cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiB0aW1lbGluZUFnZW50
KQorICAgICAgICAgICAgOiByZWNvcmRTdGFjayh0aW1lbGluZUFnZW50KQorICAgICAgICAgICAg
LCBpblJhc3Rlcml6ZUV2ZW50KGZhbHNlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBUaW1lbGluZVJlY29yZFN0YWNrIHJlY29yZFN0YWNrOworICAgICAgICBib29sIGluUmFzdGVy
aXplRXZlbnQ7CisgICAgfTsKKwogICAgIGNsYXNzIFRyYWNlRXZlbnQgewogICAgIHB1YmxpYzoK
ICAgICAgICAgVHJhY2VFdmVudCgpCi0gICAgICAgICAgICA6IG1fYXJndW1lbnRDb3VudCgwKQor
ICAgICAgICAgICAgOiBtX25hbWUoMCkKKyAgICAgICAgICAgICwgbV9hcmd1bWVudENvdW50KDAp
CiAgICAgICAgIHsKICAgICAgICAgfQogCkBAIC0xMjIsNiArMTY5LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogICAg
ICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X3RocmVhZElkZW50aWZpZXI7IH0KICAgICAgICAgaW50IGFyZ3VtZW50Q291bnQoKSBjb25zdCB7
IHJldHVybiBtX2FyZ3VtZW50Q291bnQ7IH0KKyAgICAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7
IHJldHVybiAhbV9uYW1lOyB9CiAKICAgICAgICAgYm9vbCBhc0Jvb2woY29uc3QgY2hhciogbmFt
ZSkgY29uc3QKICAgICAgICAgewpAQCAtMTY4LDggKzIxNiwxOCBAQCBwcml2YXRlOgogCiAgICAg
dHlwZWRlZiB2b2lkIChUaW1lbGluZVRyYWNlRXZlbnRQcm9jZXNzb3I6OipUcmFjZUV2ZW50SGFu
ZGxlcikoY29uc3QgVHJhY2VFdmVudCYpOwogCisgICAgVGltZWxpbmVUaHJlYWRTdGF0ZSYgdGhy
ZWFkU3RhdGUoVGhyZWFkSWRlbnRpZmllciB0aHJlYWQpCisgICAgeworICAgICAgICBUaHJlYWRT
dGF0ZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RocmVhZFN0YXRlcy5maW5kKHRocmVhZCk7CisgICAg
ICAgIGlmIChpdCAhPSBtX3RocmVhZFN0YXRlcy5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBp
dC0+dmFsdWU7CisgICAgICAgIHJldHVybiBtX3RocmVhZFN0YXRlcy5hZGQodGhyZWFkLCBUaW1l
bGluZVRocmVhZFN0YXRlKG1fdGltZWxpbmVBZ2VudCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICB9
CisKICAgICB2b2lkIHByb2Nlc3NCYWNrZ3JvdW5kRXZlbnRzKCk7Ci0gICAgdm9pZCBzZW5kVGlt
ZWxpbmVSZWNvcmQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGRhdGEsIGNvbnN0IFN0cmlu
ZyYgcmVjb3JkVHlwZSwgZG91YmxlIHN0YXJ0VGltZSwgZG91YmxlIGVuZFRpbWUsIGNvbnN0IFN0
cmluZyYgVGhyZWFkKTsKKyAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlUmVj
b3JkKGNvbnN0IFRyYWNlRXZlbnQmLCBjb25zdCBTdHJpbmcmIHJlY29yZFR5cGUsIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBkYXRhID0gMCk7CisKKyAgICB2b2lkIHJlZ2lzdGVySGFuZGxl
cihjb25zdCBjaGFyKiBuYW1lLCBUcmFjZUV2ZW50UGhhc2UsIFRyYWNlRXZlbnRIYW5kbGVyKTsK
IAogICAgIHZvaWQgb25CZWdpbkZyYW1lKGNvbnN0IFRyYWNlRXZlbnQmKTsKICAgICB2b2lkIG9u
UGFpbnRMYXllckJlZ2luKGNvbnN0IFRyYWNlRXZlbnQmKTsKQEAgLTE3OSwyNSArMjM3LDIxIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBvbkxheWVyRGVsZXRlZChjb25zdCBUcmFjZUV2ZW50Jik7CiAg
ICAgdm9pZCBvblBhaW50KGNvbnN0IFRyYWNlRXZlbnQmKTsKIAotICAgIHZvaWQgZmx1c2hSYXN0
ZXJpemVyU3RhdGlzdGljcygpOwotCi0gICAgdm9pZCByZWdpc3RlckhhbmRsZXIoY29uc3QgY2hh
ciogbmFtZSwgVHJhY2VFdmVudFBoYXNlLCBUcmFjZUV2ZW50SGFuZGxlcik7CiAKICAgICBXZWFr
UHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IG1fdGltZWxpbmVBZ2VudDsKKyAgICBUaW1lbGlu
ZVRpbWVDb252ZXJ0ZXIgbV90aW1lQ29udmVydGVyOwogICAgIEluc3BlY3RvckNsaWVudCogbV9p
bnNwZWN0b3JDbGllbnQ7CisgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fcGFnZUlkOwogCiAgICAg
dHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjxTdHJpbmcsIGludD4sIFRyYWNlRXZlbnRIYW5kbGVy
PiBIYW5kbGVyc01hcDsKICAgICBIYW5kbGVyc01hcCBtX2hhbmRsZXJzQnlUeXBlOwogICAgIE11
dGV4IG1fYmFja2dyb3VuZEV2ZW50c011dGV4OwogICAgIFZlY3RvcjxUcmFjZUV2ZW50PiBtX2Jh
Y2tncm91bmRFdmVudHM7Ci0gICAgdW5zaWduZWQgbG9uZyBsb25nIG1fcGFnZUlkOwogCi0gICAg
SGFzaFNldDx1bnNpZ25lZCBsb25nIGxvbmc+IG1fa25vd25MYXllcnM7Ci0gICAgSGFzaE1hcDxU
aHJlYWRJZGVudGlmaWVyLCBkb3VibGU+IG1fcmFzdGVyU3RhcnRUaW1lQnlUaHJlYWQ7Ci0gICAg
ZG91YmxlIG1fZmlyc3RSYXN0ZXJTdGFydFRpbWU7Ci0gICAgZG91YmxlIG1fbGFzdFJhc3RlckVu
ZFRpbWU7Ci0gICAgZG91YmxlIG1fZnJhbWVSYXN0ZXJUaW1lOworICAgIHR5cGVkZWYgSGFzaE1h
cDxUaHJlYWRJZGVudGlmaWVyLCBUaW1lbGluZVRocmVhZFN0YXRlPiBUaHJlYWRTdGF0ZU1hcDsK
KyAgICBUaHJlYWRTdGF0ZU1hcCBtX3RocmVhZFN0YXRlczsKIAorICAgIEhhc2hTZXQ8dW5zaWdu
ZWQgbG9uZyBsb25nPiBtX2tub3duTGF5ZXJzOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX2xh
eWVySWQ7CiB9OwogCg==
</data>
<flag name="review"
          id="214326"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>