<?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>136198</bug_id>
          
          <creation_ts>2014-08-23 23:30:19 -0700</creation_ts>
          <short_desc>DOMTimer may be deleted during timer fire</short_desc>
          <delta_ts>2014-08-27 09:43:01 -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>Bindings</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136197</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>ossy</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030958</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-08-23 23:30:19 -0700</bug_when>
    <thetext>For one-shot timers we move ownership of the ScheduledAction to a local RAII variable, so they&apos;ll survive until timer fire completes.

However for interval timers the ScheduledAction remains owned by the DOMTimer, which could cancel itself from script.

Change ownership model of ScheduledAction so even if the DOMTimer is cancelled the ScheduledAction won&apos;t be deleted mid execution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031253</commentid>
    <comment_count>1</comment_count>
      <attachid>237115</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-08-25 16:10:05 -0700</bug_when>
    <thetext>Created attachment 237115
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031255</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-25 16:13:01 -0700</bug_when>
    <thetext>Attachment 237115 did not pass style-queue:


ERROR: Source/WebCore/page/DOMTimer.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031257</commentid>
    <comment_count>3</comment_count>
      <attachid>237115</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-08-25 16:16:22 -0700</bug_when>
    <thetext>Comment on attachment 237115
Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031259</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-08-25 16:19:32 -0700</bug_when>
    <thetext>Something I said in person: Perhaps ScriptExecutionContext::m_timeouts should just be a map of RefPtr instead of raw pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031395</commentid>
    <comment_count>5</comment_count>
      <attachid>237154</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-08-26 10:06:02 -0700</bug_when>
    <thetext>Created attachment 237154
Alternative fix, address the problem for DOMTimer too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031402</commentid>
    <comment_count>6</comment_count>
      <attachid>237154</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-08-26 10:36:56 -0700</bug_when>
    <thetext>Comment on attachment 237154
Alternative fix, address the problem for DOMTimer too.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031410</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-08-26 10:58:29 -0700</bug_when>
    <thetext>Transmitting file data ......
Committed revision 172963.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031415</commentid>
    <comment_count>8</comment_count>
      <attachid>237154</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-08-26 11:05:42 -0700</bug_when>
    <thetext>Comment on attachment 237154
Alternative fix, address the problem for DOMTimer too.

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

&gt; Source/WebCore/page/DOMTimer.h:31
&gt; +#include &lt;WTF/RefCounted.h&gt;

It broke the Linux (EFL,GTK) builds, because this kind of magic includes work only on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031418</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-08-26 11:10:18 -0700</bug_when>
    <thetext>It seems, it isn&apos;t Linux issue, Apple Mac build is broken too.
I assume, you need wtf/RefCounted.h instead of WTF/RefCounted.h .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031419</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-08-26 11:11:43 -0700</bug_when>
    <thetext>Tim already fixed it in http://trac.webkit.org/changeset/172964, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031669</commentid>
    <comment_count>11</comment_count>
      <attachid>237154</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-27 09:42:33 -0700</bug_when>
    <thetext>Comment on attachment 237154
Alternative fix, address the problem for DOMTimer too.

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

&gt;&gt; Source/WebCore/page/DOMTimer.h:31
&gt;&gt; +#include &lt;WTF/RefCounted.h&gt;
&gt; 
&gt; It broke the Linux (EFL,GTK) builds, because this kind of magic includes work only on Mac.

Slightly incorrect analysis. It’s not about “magic includes”, but simply case sensitive file systems. The correct include is &lt;wtf/RefCounted.h&gt;. Using &lt;WTF/RefCounted.h&gt; instead breaks builds on Macs with case sensitive file systems too. However, the HFS case insensitive file system is the one that many of us have on our computers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031670</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-27 09:43:01 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; It seems, it isn&apos;t Linux issue, Apple Mac build is broken too.
&gt; I assume, you need wtf/RefCounted.h instead of WTF/RefCounted.h .

Oops, I see you figured this out. Sorry for the repetitive comment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237115</attachid>
            <date>2014-08-25 16:10:05 -0700</date>
            <delta_ts>2014-08-25 16:16:22 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>136198.1.patch</filename>
            <type>text/plain</type>
            <size>16544</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Mjk0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE0LTA4LTI1ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBTY2hlZHVsZWRB
Y3Rpb24gbWF5IGJlIGRlbGV0ZWQgZHVyaW5nIGV4ZWN1dGlvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MTk4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9yIG9uZS1zaG90IHRpbWVycyB3ZSBtb3Zl
IG93bmVyc2hpcCBvZiB0aGUgU2NoZWR1bGVkQWN0aW9uIHRvIGEgbG9jYWwgUkFJSSB2YXJpYWJs
ZSwKKyAgICAgICAgc28gdGhleSdsbCBzdXJ2aXZlIHVudGlsIHRpbWVyIGZpcmUgY29tcGxldGVz
LiBIb3dldmVyIGZvciBpbnRlcnZhbCB0aW1lcnMgdGhlIFNjaGVkdWxlZEFjdGlvbgorICAgICAg
ICByZW1haW5zIG93bmVkIGJ5IHRoZSBET01UaW1lciwgd2hpY2ggY291bGQgY2FuY2VsIGl0c2Vs
ZiBmcm9tIHNjcmlwdC4gQ2hhbmdlIG93bmVyc2hpcCBtb2RlbAorICAgICAgICBvZiBTY2hlZHVs
ZWRBY3Rpb24gc28gZXZlbiBpZiB0aGUgRE9NVGltZXIgaXMgY2FuY2VsbGVkIHRoZSBTY2hlZHVs
ZWRBY3Rpb24gd29uJ3QgYmUgZGVsZXRlZAorICAgICAgICBtaWQgZXhlY3V0aW9uLgorCisgICAg
ICAgIFRMO0RSOiBzdGQ6OnVuaXF1ZV9wdHIgLT4gUmVmUHRyCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
dzo6c2V0VGltZW91dCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6c2V0SW50ZXJ2
YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNXb3JrZXJHbG9iYWxTY29wZTo6c2V0VGltZW91dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckdsb2JhbFNjb3BlOjpzZXRJbnRlcnZhbCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjaGVkdWxlZEFjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY2hlZHVs
ZWRBY3Rpb24uaDoKKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVRpbWVyOjpET01UaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6aW5z
dGFsbCk6CisgICAgICAgIChXZWJDb3JlOjpET01UaW1lcjo6ZmlyZWQpOgorICAgICAgICAqIHBh
Z2UvRE9NVGltZXIuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OnNldFRpbWVvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpzZXRJbnRlcnZhbCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckdsb2JhbFNjb3BlOjpzZXRUaW1lb3V0KToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckdsb2Jh
bFNjb3BlOjpzZXRJbnRlcnZhbCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29w
ZS5oOgorCiAyMDE0LTA4LTI1ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZWR1Y2Ugc3R5bGUgbWFya2luZyB3aGVuIHVzaW5nIHRoZSBwc2V1ZG8g
Y2xhc3MgOnBsYWNlaG9sZGVyLXNob3duCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiAxNzI2MDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTYyMiw3ICs2MjIsNyBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojpwb3N0TWVzc2FnZShF
eGVjU3RhCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpzZXRUaW1lb3V0KEV4ZWNTdGF0ZSogZXhlYykK
IHsKICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3kqIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IGlt
cGwoKS5kb2N1bWVudCgpID8gaW1wbCgpLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpIDogMDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBT
Y2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QoKS0+d29ybGQoKSwgY29u
dGVudFNlY3VyaXR5UG9saWN5KTsKKyAgICBSZWZQdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24g
PSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBnbG9iYWxPYmplY3QoKS0+d29ybGQoKSwg
Y29udGVudFNlY3VyaXR5UG9saWN5KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogCkBAIC02MzIsNyArNjMyLDcgQEAgSlNWYWx1
ZSBKU0RPTVdpbmRvdzo6c2V0VGltZW91dChFeGVjU3RhdAogICAgIGludCBkZWxheSA9IGV4ZWMt
PmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBpbnQgcmVzdWx0ID0gaW1wbCgpLnNldFRpbWVvdXQoV1RGOjptb3ZlKGFjdGlvbiksIGRl
bGF5LCBlYyk7CisgICAgaW50IHJlc3VsdCA9IGltcGwoKS5zZXRUaW1lb3V0KGFjdGlvbi5yZWxl
YXNlKCksIGRlbGF5LCBlYyk7CiAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKIAogICAg
IHJldHVybiBqc051bWJlcihyZXN1bHQpOwpAQCAtNjQxLDcgKzY0MSw3IEBAIEpTVmFsdWUgSlNE
T01XaW5kb3c6OnNldFRpbWVvdXQoRXhlY1N0YXQKIEpTVmFsdWUgSlNET01XaW5kb3c6OnNldElu
dGVydmFsKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3kqIGNv
bnRlbnRTZWN1cml0eVBvbGljeSA9IGltcGwoKS5kb2N1bWVudCgpID8gaW1wbCgpLmRvY3VtZW50
KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpIDogMDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2No
ZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBnbG9i
YWxPYmplY3QoKS0+d29ybGQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5KTsKKyAgICBSZWZQdHI8
U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBn
bG9iYWxPYmplY3QoKS0+d29ybGQoKSwgY29udGVudFNlY3VyaXR5UG9saWN5KTsKICAgICBpZiAo
ZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAg
IGludCBkZWxheSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CkBAIC02NTAsNyAr
NjUwLDcgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6c2V0SW50ZXJ2YWwoRXhlY1N0YQogICAgICAg
ICByZXR1cm4ganNOdW1iZXIoMCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBp
bnQgcmVzdWx0ID0gaW1wbCgpLnNldEludGVydmFsKFdURjo6bW92ZShhY3Rpb24pLCBkZWxheSwg
ZWMpOworICAgIGludCByZXN1bHQgPSBpbXBsKCkuc2V0SW50ZXJ2YWwoYWN0aW9uLnJlbGVhc2Uo
KSwgZGVsYXksIGVjKTsKICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwogCiAgICAgcmV0
dXJuIGpzTnVtYmVyKHJlc3VsdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcAkocmV2aXNpb24gMTcy
NjAwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDI0ICs4NywyNCBAQCBKU1ZhbHVlIEpTV29y
a2VyR2xvYmFsU2NvcGU6OmltcG9ydFNjcmlwCiAKIEpTVmFsdWUgSlNXb3JrZXJHbG9iYWxTY29w
ZTo6c2V0VGltZW91dChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFNj
aGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gU2NoZWR1bGVkQWN0aW9uOjpjcmVhdGUoZXhlYywgZ2xv
YmFsT2JqZWN0KCktPndvcmxkKCksIGltcGwoKS5jb250ZW50U2VjdXJpdHlQb2xpY3koKSk7Cisg
ICAgUmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gU2NoZWR1bGVkQWN0aW9uOjpjcmVh
dGUoZXhlYywgZ2xvYmFsT2JqZWN0KCktPndvcmxkKCksIGltcGwoKS5jb250ZW50U2VjdXJpdHlQ
b2xpY3koKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICBpZiAoIWFjdGlvbikKICAgICAgICAgcmV0dXJuIGpzTnVtYmVy
KDApOwogICAgIGludCBkZWxheSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7Ci0g
ICAgcmV0dXJuIGpzTnVtYmVyKGltcGwoKS5zZXRUaW1lb3V0KFdURjo6bW92ZShhY3Rpb24pLCBk
ZWxheSkpOworICAgIHJldHVybiBqc051bWJlcihpbXBsKCkuc2V0VGltZW91dChhY3Rpb24ucmVs
ZWFzZSgpLCBkZWxheSkpOwogfQogCiBKU1ZhbHVlIEpTV29ya2VyR2xvYmFsU2NvcGU6OnNldElu
dGVydmFsKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVk
QWN0aW9uPiBhY3Rpb24gPSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVjLCBnbG9iYWxPYmpl
Y3QoKS0+d29ybGQoKSwgaW1wbCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgpKTsKKyAgICBSZWZQ
dHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24gPSBTY2hlZHVsZWRBY3Rpb246OmNyZWF0ZShleGVj
LCBnbG9iYWxPYmplY3QoKS0+d29ybGQoKSwgaW1wbCgpLmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
KTsKICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwogICAgIGlmICghYWN0aW9uKQogICAgICAgICByZXR1cm4ganNOdW1iZXIoMCk7CiAg
ICAgaW50IGRlbGF5ID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVjKTsKLSAgICByZXR1
cm4ganNOdW1iZXIoaW1wbCgpLnNldEludGVydmFsKFdURjo6bW92ZShhY3Rpb24pLCBkZWxheSkp
OworICAgIHJldHVybiBqc051bWJlcihpbXBsKCkuc2V0SW50ZXJ2YWwoYWN0aW9uLnJlbGVhc2Uo
KSwgZGVsYXkpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCShyZXZpc2lvbiAxNzI2
MDApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gU2No
ZWR1bGVkQWN0aW9uOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBET01XcmFwcGVyV29ybGQmIGlz
b2xhdGVkV29ybGQsIENvbnRlbnRTZWN1cml0eVBvbGljeSogcG9saWN5KQorUGFzc1JlZlB0cjxT
Y2hlZHVsZWRBY3Rpb24+IFNjaGVkdWxlZEFjdGlvbjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywg
RE9NV3JhcHBlcldvcmxkJiBpc29sYXRlZFdvcmxkLCBDb250ZW50U2VjdXJpdHlQb2xpY3kqIHBv
bGljeSkKIHsKICAgICBKU1ZhbHVlIHYgPSBleGVjLT5hcmd1bWVudCgwKTsKICAgICBDYWxsRGF0
YSBjYWxsRGF0YTsKQEAgLTU2LDEwICs1NiwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVk
QWN0aW9uPiBTY2hlZHVsCiAgICAgICAgIFN0cmluZyBzdHJpbmcgPSB2LnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKICAgICAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8U2No
ZWR1bGVkQWN0aW9uPihuZXcgU2NoZWR1bGVkQWN0aW9uKHN0cmluZywgaXNvbGF0ZWRXb3JsZCkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjaGVkdWxlZEFjdGlvbihzdHJpbmcsIGlz
b2xhdGVkV29ybGQpKTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFNjaGVk
dWxlZEFjdGlvbj4obmV3IFNjaGVkdWxlZEFjdGlvbihleGVjLCB2LCBpc29sYXRlZFdvcmxkKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY2hlZHVsZWRBY3Rpb24oZXhlYywgdiwgaXNvbGF0
ZWRXb3JsZCkpOwogfQogCiBTY2hlZHVsZWRBY3Rpb246OlNjaGVkdWxlZEFjdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgZnVuY3Rpb24sIERPTVdyYXBwZXJXb3JsZCYgaXNvbGF0ZWRXb3Js
ZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5o
CShyZXZpc2lvbiAxNzI2MDApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVs
ZWRBY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTAgKzQzLDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAqIHRpbWUgaW50ZXJ2YWwsIGVpdGhlciBvbmNlIG9yIHJlcGVhdGVkbHku
IFVzZWQgZm9yIHdpbmRvdy5zZXRUaW1lb3V0KCkKICAgICAqIGFuZCB3aW5kb3cuc2V0SW50ZXJ2
YWwoKQogICAgICovCi0gICAgY2xhc3MgU2NoZWR1bGVkQWN0aW9uIHsKKyAgICBjbGFzcyBTY2hl
ZHVsZWRBY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxTY2hlZHVsZWRBY3Rpb24+IHsKICAgICAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NoZWR1bGVkQWN0aW9uKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFNj
aGVkdWxlZEFjdGlvbj4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgRE9NV3JhcHBlcldvcmxkJiBp
c29sYXRlZFdvcmxkLCBDb250ZW50U2VjdXJpdHlQb2xpY3kqKTsKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U2NoZWR1bGVkQWN0aW9uPiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBET01XcmFw
cGVyV29ybGQmIGlzb2xhdGVkV29ybGQsIENvbnRlbnRTZWN1cml0eVBvbGljeSopOwogCiAgICAg
ICAgIHZvaWQgZXhlY3V0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuY3BwCShyZXZpc2lvbiAxNzI2MDApCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVRpbWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsMTAgKzU4LDEwIEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzaG91bGRGb3J3YXJkVXNlckdlc3QKICAgICAgICAgJiYgbmVzdGluZ0xl
dmVsID09IDE7IC8vIEdlc3R1cmVzIHNob3VsZCBub3QgYmUgZm9yd2FyZGVkIHRvIG5lc3RlZCB0
aW1lcnMuCiB9CiAKLURPTVRpbWVyOjpET01UaW1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCBpbnRl
cnZhbCwgYm9vbCBzaW5nbGVTaG90KQorRE9NVGltZXI6OkRPTVRpbWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGlu
dCBpbnRlcnZhbCwgYm9vbCBzaW5nbGVTaG90KQogICAgIDogU3VzcGVuZGFibGVUaW1lcihjb250
ZXh0KQogICAgICwgbV9uZXN0aW5nTGV2ZWwodGltZXJOZXN0aW5nTGV2ZWwgKyAxKQotICAgICwg
bV9hY3Rpb24oV1RGOjptb3ZlKGFjdGlvbikpCisgICAgLCBtX2FjdGlvbihhY3Rpb24pCiAgICAg
LCBtX29yaWdpbmFsSW50ZXJ2YWwoaW50ZXJ2YWwpCiAgICAgLCBtX3Nob3VsZEZvcndhcmRVc2Vy
R2VzdHVyZShzaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoaW50ZXJ2YWwsIG1fbmVzdGluZ0xldmVs
KSkKIHsKQEAgLTgzLDEyICs4MywxMiBAQCBET01UaW1lcjo6fkRPTVRpbWVyKCkKICAgICAgICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5yZW1vdmVUaW1lb3V0KG1fdGltZW91dElkKTsKIH0K
IAotaW50IERPTVRpbWVyOjppbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQsIGJv
b2wgc2luZ2xlU2hvdCkKK2ludCBET01UaW1lcjo6aW5zdGFsbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGlt
ZW91dCwgYm9vbCBzaW5nbGVTaG90KQogewogICAgIC8vIERPTVRpbWVyIGNvbnN0cnVjdG9yIGxp
bmtzIHRoZSBuZXcgdGltZXIgaW50byBhIGxpc3Qgb2YgQWN0aXZlRE9NT2JqZWN0cyBoZWxkIGJ5
IHRoZSAnY29udGV4dCcuCiAgICAgLy8gVGhlIHRpbWVyIGlzIGRlbGV0ZWQgd2hlbiBjb250ZXh0
IGlzIGRlbGV0ZWQgKERPTVRpbWVyOjpjb250ZXh0RGVzdHJveWVkKSBvciBleHBsaWNpdGx5IHZp
YSBET01UaW1lcjo6cmVtb3ZlQnlJZCgpLAogICAgIC8vIG9yIGlmIGl0IGlzIGEgb25lLXRpbWUg
dGltZXIgYW5kIGl0IGhhcyBmaXJlZCAoRE9NVGltZXI6OmZpcmVkKS4KLSAgICBET01UaW1lciog
dGltZXIgPSBuZXcgRE9NVGltZXIoY29udGV4dCwgV1RGOjptb3ZlKGFjdGlvbiksIHRpbWVvdXQs
IHNpbmdsZVNob3QpOworICAgIERPTVRpbWVyKiB0aW1lciA9IG5ldyBET01UaW1lcihjb250ZXh0
LCBhY3Rpb24sIHRpbWVvdXQsIHNpbmdsZVNob3QpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBp
ZiAoY29udGV4dC0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9
IHRvRG9jdW1lbnQoKmNvbnRleHQpOwpAQCAtMTM5LDYgKzEzOSw4IEBAIHZvaWQgRE9NVGltZXI6
OmZpcmVkKCkKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxGaXJlVGltZXIoY29udGV4dCwgbV90aW1lb3V0
SWQpOwogCisgICAgUmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uID0gbV9hY3Rpb247Cisg
ICAgCiAgICAgLy8gU2ltcGxlIGNhc2UgZm9yIG5vbi1vbmUtc2hvdCB0aW1lcnMuCiAgICAgaWYg
KGlzQWN0aXZlKCkpIHsKICAgICAgICAgZG91YmxlIG1pbmltdW1JbnRlcnZhbCA9IGNvbnRleHQt
Pm1pbmltdW1UaW1lckludGVydmFsKCk7CkBAIC0xNDksNyArMTUxLDcgQEAgdm9pZCBET01UaW1l
cjo6ZmlyZWQoKQogICAgICAgICB9CiAKICAgICAgICAgLy8gTm8gYWNjZXNzIHRvIG1lbWJlciB2
YXJpYWJsZXMgYWZ0ZXIgdGhpcyBwb2ludCwgaXQgY2FuIGRlbGV0ZSB0aGUgdGltZXIuCi0gICAg
ICAgIG1fYWN0aW9uLT5leGVjdXRlKGNvbnRleHQpOworICAgICAgICBhY3Rpb24tPmV4ZWN1dGUo
Y29udGV4dCk7CiAKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaXJlVGlt
ZXIoY29va2llKTsKIApAQCAtMTU3LDggKzE1OSw2IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkK
ICAgICB9CiAKICAgICAvLyBEZWxldGUgdGltZXIgYmVmb3JlIGV4ZWN1dGluZyB0aGUgYWN0aW9u
IGZvciBvbmUtc2hvdCB0aW1lcnMuCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlv
bj4gYWN0aW9uID0gV1RGOjptb3ZlKG1fYWN0aW9uKTsKLQogICAgIC8vIE5vIGFjY2VzcyB0byBt
ZW1iZXIgdmFyaWFibGVzIGFmdGVyIHRoaXMgcG9pbnQuCiAgICAgZGVsZXRlIHRoaXM7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVRpbWVyLmgJKHJldmlzaW9uIDE3MjYwMCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKKyAgICBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKICAgICBj
bGFzcyBTY2hlZHVsZWRBY3Rpb247CiAKICAgICBjbGFzcyBET01UaW1lciBmaW5hbCA6IHB1Ymxp
YyBTdXNwZW5kYWJsZVRpbWVyIHsKQEAgLTM5LDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2aXJ0dWFsIH5ET01UaW1lcigpOwogICAgICAgICAvLyBDcmVhdGVzIGEgbmV3
IHRpbWVyIG93bmVkIGJ5IHNwZWNpZmllZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0LCBzdGFydHMg
aXQKICAgICAgICAgLy8gYW5kIHJldHVybnMgaXRzIElkLgotICAgICAgICBzdGF0aWMgaW50IGlu
c3RhbGwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRB
Y3Rpb24+LCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KTsKKyAgICAgICAgc3RhdGljIGlu
dCBpbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPFNjaGVkdWxlZEFj
dGlvbj4sIGludCB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QpOwogICAgICAgICBzdGF0aWMgdm9p
ZCByZW1vdmVCeUlkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBpbnQgdGltZW91dElkKTsKIAog
ICAgICAgICAvLyBBZGp1c3QgdG8gYSBjaGFuZ2UgaW4gdGhlIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQncyBtaW5pbXVtIHRpbWVyIGludGVydmFsLgpAQCAtNDgsNyArNDksNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIHZvaWQgYWRqdXN0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91Ymxl
IG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIERPTVRp
bWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0
aW9uPiwgaW50IGludGVydmFsLCBib29sIHNpbmdsZVNob3QpOworICAgICAgICBET01UaW1lcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxTY2hlZHVsZWRBY3Rpb24+LCBpbnQg
aW50ZXJ2YWwsIGJvb2wgc2luZ2xlU2hvdCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgp
IG92ZXJyaWRlOwogCiAgICAgICAgIC8vIEFjdGl2ZURPTU9iamVjdApAQCAtNjQsNyArNjUsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgaW50IG1fdGltZW91dElkOwogICAgICAg
ICBpbnQgbV9uZXN0aW5nTGV2ZWw7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRB
Y3Rpb24+IG1fYWN0aW9uOworICAgICAgICBSZWZQdHI8U2NoZWR1bGVkQWN0aW9uPiBtX2FjdGlv
bjsKICAgICAgICAgaW50IG1fb3JpZ2luYWxJbnRlcnZhbDsKICAgICAgICAgYm9vbCBtX3Nob3Vs
ZEZvcndhcmRVc2VyR2VzdHVyZTsKICAgICB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAkocmV2aXNpb24gMTcyNjAwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAyLDE0ICsxNjAyLDE0IEBAIHZvaWQgRE9NV2luZG93
OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmwKICAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dS
ZWN0KGFkanVzdFdpbmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CiB9CiAKLWludCBET01XaW5kb3c6
OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQg
dGltZW91dCwgRXhjZXB0aW9uQ29kZSYgZWMpCitpbnQgRE9NV2luZG93OjpzZXRUaW1lb3V0KFBh
c3NSZWZQdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0LCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkgewogICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICByZXR1cm4g
RE9NVGltZXI6Omluc3RhbGwoY29udGV4dCwgV1RGOjptb3ZlKGFjdGlvbiksIHRpbWVvdXQsIHRy
dWUpOworICAgIHJldHVybiBET01UaW1lcjo6aW5zdGFsbChjb250ZXh0LCBhY3Rpb24sIHRpbWVv
dXQsIHRydWUpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6Y2xlYXJUaW1lb3V0KGludCB0aW1lb3V0
SWQpCkBAIC0xNjM2LDE0ICsxNjM2LDE0IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhclRpbWVvdXQo
aW50IHRpbWVvdXQKICAgICBET01UaW1lcjo6cmVtb3ZlQnlJZChjb250ZXh0LCB0aW1lb3V0SWQp
OwogfQogCi1pbnQgRE9NV2luZG93OjpzZXRJbnRlcnZhbChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1
bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0LCBFeGNlcHRpb25Db2RlJiBlYykKK2ludCBE
T01XaW5kb3c6OnNldEludGVydmFsKFBhc3NSZWZQdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24s
IGludCB0aW1lb3V0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29u
dGV4dCkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJu
IC0xOwogICAgIH0KLSAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoY29udGV4dCwgV1RGOjpt
b3ZlKGFjdGlvbiksIHRpbWVvdXQsIGZhbHNlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3Rh
bGwoY29udGV4dCwgYWN0aW9uLCB0aW1lb3V0LCBmYWxzZSk7CiB9CiAKIHZvaWQgRE9NV2luZG93
OjpjbGVhckludGVydmFsKGludCB0aW1lb3V0SWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmgJKHJldmlzaW9uIDE3MjYwMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI1Niw5ICsyNTYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgcmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3Q7CiAK
ICAgICAgICAgLy8gVGltZXJzCi0gICAgICAgIGludCBzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0
cjxTY2hlZHVsZWRBY3Rpb24+LCBpbnQgdGltZW91dCwgRXhjZXB0aW9uQ29kZSYpOworICAgICAg
ICBpbnQgc2V0VGltZW91dChQYXNzUmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIHZvaWQgY2xlYXJUaW1lb3V0KGludCB0aW1lb3V0
SWQpOwotICAgICAgICBpbnQgc2V0SW50ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFj
dGlvbj4sIGludCB0aW1lb3V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgICAgIGludCBzZXRJbnRl
cnZhbChQYXNzUmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0LCBFeGNlcHRpb25D
b2RlJik7CiAgICAgICAgIHZvaWQgY2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElkKTsKIAogICAg
ICAgICAvLyBXZWJLaXQgYW5pbWF0aW9uIGV4dGVuc2lvbnMKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCShyZXZpc2lvbiAxNzI2MDApCisrKyBT
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTUyLDkgKzE1Miw5IEBAIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RUYXNrKFRh
c2sgdGEKICAgICB0aHJlYWQoKS5ydW5Mb29wKCkucG9zdFRhc2soV1RGOjptb3ZlKHRhc2spKTsK
IH0KIAotaW50IFdvcmtlckdsb2JhbFNjb3BlOjpzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxT
Y2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQpCitpbnQgV29ya2VyR2xvYmFsU2Nv
cGU6OnNldFRpbWVvdXQoUGFzc1JlZlB0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRp
bWVvdXQpCiB7Ci0gICAgcmV0dXJuIERPTVRpbWVyOjppbnN0YWxsKHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgV1RGOjptb3ZlKGFjdGlvbiksIHRpbWVvdXQsIHRydWUpOworICAgIHJldHVybiBE
T01UaW1lcjo6aW5zdGFsbChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGFjdGlvbiwgdGltZW91
dCwgdHJ1ZSk7CiB9CiAKIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OmNsZWFyVGltZW91dChpbnQg
dGltZW91dElkKQpAQCAtMTYyLDkgKzE2Miw5IEBAIHZvaWQgV29ya2VyR2xvYmFsU2NvcGU6OmNs
ZWFyVGltZW91dChpbnQKICAgICBET01UaW1lcjo6cmVtb3ZlQnlJZChzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIHRpbWVvdXRJZCk7CiB9CiAKLWludCBXb3JrZXJHbG9iYWxTY29wZTo6c2V0SW50
ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91
dCkKK2ludCBXb3JrZXJHbG9iYWxTY29wZTo6c2V0SW50ZXJ2YWwoUGFzc1JlZlB0cjxTY2hlZHVs
ZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQpCiB7Ci0gICAgcmV0dXJuIERPTVRpbWVyOjpp
bnN0YWxsKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgV1RGOjptb3ZlKGFjdGlvbiksIHRpbWVv
dXQsIGZhbHNlKTsKKyAgICByZXR1cm4gRE9NVGltZXI6Omluc3RhbGwoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLCBhY3Rpb24sIHRpbWVvdXQsIGZhbHNlKTsKIH0KIAogdm9pZCBXb3JrZXJHbG9i
YWxTY29wZTo6Y2xlYXJJbnRlcnZhbChpbnQgdGltZW91dElkKQpJbmRleDogU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaAkocmV2aXNpb24gMTcyNjAwKQorKysgU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC05Myw5ICs5Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgV29ya2VyTmF2aWdh
dG9yKiBuYXZpZ2F0b3IoKSBjb25zdDsKIAogICAgICAgICAvLyBUaW1lcnMKLSAgICAgICAgaW50
IHNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4sIGludCB0aW1lb3V0
KTsKKyAgICAgICAgaW50IHNldFRpbWVvdXQoUGFzc1JlZlB0cjxTY2hlZHVsZWRBY3Rpb24+LCBp
bnQgdGltZW91dCk7CiAgICAgICAgIHZvaWQgY2xlYXJUaW1lb3V0KGludCB0aW1lb3V0SWQpOwot
ICAgICAgICBpbnQgc2V0SW50ZXJ2YWwoc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4s
IGludCB0aW1lb3V0KTsKKyAgICAgICAgaW50IHNldEludGVydmFsKFBhc3NSZWZQdHI8U2NoZWR1
bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQpOwogICAgICAgICB2b2lkIGNsZWFySW50ZXJ2YWwoaW50
IHRpbWVvdXRJZCk7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzQ29udGV4dFRocmVhZCgpIGNv
bnN0IG92ZXJyaWRlOwo=
</data>
<flag name="review"
          id="261826"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237154</attachid>
            <date>2014-08-26 10:06:02 -0700</date>
            <delta_ts>2014-08-27 09:42:33 -0700</delta_ts>
            <desc>Alternative fix, address the problem for DOMTimer too.</desc>
            <filename>136198.2.patch</filename>
            <type>text/plain</type>
            <size>15202</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Mjk1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE0LTA4LTI1ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBET01UaW1lciBt
YXkgYmUgZGVsZXRlZCBkdXJpbmcgdGltZXIgZmlyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ29uc2VxdWVudGlhbGx5IFNjaGVkdWxlZEFjdGlvbnMg
bWF5IGFsc28gYmUgZGVsZXRlZCBtaWQgZXhlY3V0aW9uLgorICAgICAgICBUaGlzIGlzIGZhaXJs
eSBzdXJwcmlzaW5nICYgZnJhZ2lsZSwgbGV0J3MgbWFrZSB0aGlzIHNpbXBsZXIuCisKKyAgICAg
ICAgQ3VycmVudGx5IERPTVRpbWVyIGluc3RhbmNlcyBhcmUgZWZmZWN0aXZlbHkgb3duZWQgYnkg
dGhlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisgICAgICAgIFRoZXJlIGlzIGEgMS0xIG1hcHBp
bmcgYmV0d2VlbiB0aW1lcnMgYW5kIGNvbnRleHRzLCBhbGwgdGltZXJzIGFyZSBoZWxwIGluIGEg
bWFwCisgICAgICAgIG9uIHRoZSBjb250ZXh0IGFuZCBpZiB0aGUgY29udGV4dCBnb2VzIGF3YXkg
YWxsIHRpbWVycyBhcmUgZGVsZXRlZC4gUmF0aGVyIHRoYW4KKyAgICAgICAgYmVpbmcgaW1wbGVt
ZW50ZWQgaW4gYSBzdHJhaWdodGZvcndhcmQgZmFzaGlvbiAoYSBzbWFydCBwb2ludGVyIHR5cGUg
Zm9yIHRoZSBtYXAKKyAgICAgICAgdmFsdWUpIHRoaXMgaXMgY3VycmVudGx5IGltcGxlbWVudGVk
IGJ5IGhhdmluZyB0aGUgdGltZXIgb2JqZWN0cyBsaXN0ZW4gZm9yIHRoZQorICAgICAgICBjb250
ZXh0IGdvaW5nIGF3YXkgdXNpbmcgY29udGV4dERlc3Ryb3llZCwgYW5kIGRlbGV0aW5nIHRoZW1z
ZWx2ZXMgaWYgc28uCisKKyAgICAgICAgU3dpdGNoIHRvIHVzaW5nIGEgc21hcnQgcG9pbnRlciBm
b3IgdmFsdWVzIG9mIG1fdGltZW91dHMgaW4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4KKyAgICAg
ICAgQnkgdXNpbmcgYSBSZWZDb3VudGVkIG9iamVjdCB3ZSBjYW4gYWxzbyBleHRlbmQgdGhlIGxp
ZmV0aW1lIG9mIHRoZSBET01UaW1lciBpbnN0YW5jZQorICAgICAgICBmcm9tIHdpdGhpbiB0aGUg
RE9NVGltZXI6OmZpcmVkIG1ldGhvZCwgc28gdGhlIG9iamVjdCBpcyBub3QgZGVzdHJveWVkIHdo
aWxlIHRoZQorICAgICAgICBtZW1iZXIgZnVuY3Rpb24gaXMgc3RpbGwgb24gdGhlIHN0YWNrLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAg
ICAgLSBwcm9qZWN0IC0+IHByaXZhdGUgc2luY2UgRE9NVGltZXIgY291bGQgbm8gbG9uZ2VyIGJl
IGEgZm9yd2FyZCBkZWNsYXJlIGluIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaC4KKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjphZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaWRDaGFuZ2VUaW1lckFsaWdubWVu
dEludGVydmFsKToKKyAgICAgICAgICAgIC0gYXV0byogLT4gYXV0byYgc2luY2UgdmFsdWUgdHlw
ZSBpbiBtYXAgaXMgbm8gbG9uZ2VyIGEgcmF3IHBvaW50ZXIuCisgICAgICAgICogZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OmFkZFRpbWVvdXQpOgorICAgICAgICAgICAgLSBET01UaW1lciogLT4gUGFzc1JlZlB0
cjxET01UaW1lcj4KKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVRpbWVyOjpET01UaW1lcik6CisgICAgICAgICAgICAtIGFkb3B0IHRoZSBpbml0aWFs
IHJlZiwgYW5kIHBhc3MgdG8gYWRkVGltZW91dC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVy
OjppbnN0YWxsKToKKyAgICAgICAgICAgIC0gdXBkYXRlZCBjb21tZW50LgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVGltZXI6OnJlbW92ZUJ5SWQpOgorICAgICAgICAgICAgLSBpbnN0ZWFkIG9mIGV4
cGxpY2l0bHkgZGVsZXRpbmcgdGhlIHRpbWVyIGFuZCBhc3N1bWluZyB0aGlzIHdpbGwgaW1wbGlj
aXRseSByZW1vdmUgaXQgZnJvbSB0aGUgY29udGV4dCBtYXAsCisgICAgICAgICAgICAgIHdlIGV4
cGxpY2l0bHkgcmVtb3ZlIGl0IGZyb20gdGhlIGNvbnRleHQgbWFwIGFuZCBhc3N1bWUgdGhpcyB3
aWxsIGltcGxpY2l0bHkgZGVsZXRpbmcgdGhlIHRpbWVyIQorICAgICAgICAoV2ViQ29yZTo6RE9N
VGltZXI6OmZpcmVkKToKKyAgICAgICAgICAgIC0gQWRkIGEgUmVmUHRyIHRvIGtlZXAgdGhlIERP
TVRpbWVyIG9iamVjdCBhbGl2ZSB1bnRpbCB0aGUgZmlyZWQgbWV0aG9kIGNvbXBsZXRlczsgdG8g
Y2FuY2VsIGEgb25lLXNob3QgdGltZXIKKyAgICAgICAgICAgICAganVzdCByZW1vdmUgaXQgZnJv
bSB0aGUgY29udGV4dCdzIG1hcCwgcmF0aGVyIHRoYW4gZXhwbGljaXRseSBkZWxldGluZyBpdC4K
KyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjp+RE9NVGltZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NVGltZXI6OmNvbnRleHREZXN0cm95ZWQpOiBEZWxldGVkLgorICAgICAg
ICAgICAgLSBubyBuZWVkISBvYmplY3QgbGlmZXRpbWUgbWFuYWdlbWVudCBub3cgaGFuZGxlZCBi
eSBzbWFydCBwb2ludGVycy4KKyAgICAgICAgKiBwYWdlL0RPTVRpbWVyLmg6CisgICAgICAgICAg
ICAtIGFkZGVkIHBhcmVudCBjbGFzcyBSZWZDb3VudGVkPERPTVRpbWVyPi4KKwogMjAxNC0wOC0y
NSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN1YnBpeGVsIGxh
eW91dDogcmVtb3ZlIHJvdW5kZWRMYXlvdXRQb2ludC9yb3VuZGVkTGF5b3V0U2l6ZSBmdW5jdGlv
bnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxNzI2MDApCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY0Nyw3ICs2NDcsNyBA
QAogCQkxODVCQ0YyODBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4NUJDRjI2MEYzMjc5Q0Uw
MDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuY3BwICovOyB9OwogCQkxODVCQ0YyOTBGMzI3OUNFMDAw
RUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxODVCQ0YyNzBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmgg
Ki87IH07CiAJCTE4ODYwNEIzMEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODg2MDRCMTBGMkU2NTRB
MDAwQjY0NDMgLyogRE9NVGltZXIuY3BwICovOyB9OwotCQkxODg2MDRCNDBGMkU2NTRBMDAwQjY0
NDMgLyogRE9NVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE4ODYwNEIyMEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5oICovOyB9OworCQkx
ODg2MDRCNDBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4ODYwNEIyMEYyRTY1NEEwMDBCNjQ0MyAvKiBE
T01UaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMThGODMxQjcwRkQ0OEM3
ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggKi87IH07CiAJCTE5MjEzMjc0MTFDMEU2
QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOTIxMzI3MTExQzBFNkJCMDA0NTYy
MzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwICovOyB9OwogCQkxOTIxMzI3NTEx
QzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5MjEzMjcyMTFDMEU2QkIwMDQ1
NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oICovOyB9OwpAQCAtMjEyNSw3ICsy
MTI1LDcgQEAKIAkJNURCMUJDNkIxMDcxNUE2NDAwRUZBQTQ5IC8qIFRyYW5zZm9ybVNvdXJjZUxp
YnhzbHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NURCMUJDNjkxMDcxNUE2NDAwRUZBQTQ5IC8qIFRyYW5zZm9ybVNvdXJjZUxpYnhzbHQuY3BwICov
OyB9OwogCQk1REY3RjVDMjBGMDFGOTJBMDA1MjZCNEIgLyogQ1NTUHJvcGVydHlOYW1lcy5oIGlu
IENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjU2NTgwRUYwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaCAqLzsgfTsK
IAkJNURGRThGNTYwRDE2NDc3QjAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0EzNzhCQTBEMTVGNjQy
MDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmNwcCAqLzsgfTsKLQkJNURGRThGNTcwRDE2NDc3
QzAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBMzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxl
ZEFjdGlvbi5oICovOyB9OworCQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5MzcgLyogU2NoZWR1bGVk
QWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0EzNzhCQjBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0aW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNURGRUJBQjcxODU5MkI2RDAw
Qzc1QkVCIC8qIFdlYktpdEF2YWlsYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNURGRUJBQjYxODU5MkI2RDAwQzc1QkVCIC8qIFdlYktpdEF2
YWlsYWJpbGl0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTVGMkRCQkU5MTc4RTNDODEwMDE0MTQ4NiAvKiBDZXJ0aWZpY2F0ZUluZm9NYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RjJEQkJFNzE3
OEUzMzJEMDAxNDE0ODYgLyogQ2VydGlmaWNhdGVJbmZvTWFjLm1tICovOyB9OwogCQk1RkE5MDRD
QTE3OEU2MUY1MDA0QzhBMkQgLyogQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RjJEQkJFODE3OEUzMzY5MDAxNDE0ODYgLyog
Q2VydGlmaWNhdGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTIxMzYsNyArMjEzNiw3IEBACiAJCTYyOEQyMTRDMTIxMzFFRDEwMDU1RENG
QyAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjI4RDIxNEIxMjEzMUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdDb250
ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NjI4RDIxNEUxMjEzMUVGNDAwNTVEQ0ZDIC8qIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyOEQyMTREMTIxMzFF
RjQwMDU1RENGQyAvKiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjJDMTIxN0MxMUFCOUU3NzAwM0M0NjJD
IC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjJDMTIxN0ExMUFCOUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGlt
ZXIuY3BwICovOyB9OwotCQk2MkMxMjE3RDExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVU
aW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjJD
MTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLzsgfTsKKwkJNjJD
MTIxN0QxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQzEyMTdCMTFBQjlFNzcwMDNDNDYy
QyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNjJDRDMyNTkxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyQ0Qz
MjU2MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi87IH07CiAJCTYyQ0QzMjVB
MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjJDRDMyNTcxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3Rv
bUV2ZW50LmggKi87IH07CiAJCTYzMTg5QUUzMEU4M0EzMzMwMDAxMkU0MSAvKiBOb2RlUmFyZURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzMTg5
QUUyMEU4M0EzMzMwMDAxMkU0MSAvKiBOb2RlUmFyZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9ICgpOyB9OyB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAkocmV2aXNpb24gMTcyNjAwKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTYsNyAr
NDE2LDcgQEAgUHVibGljVVJMTWFuYWdlciYgU2NyaXB0RXhlY3V0aW9uQ29udGV4dAogdm9pZCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGp1c3RNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUg
b2xkTWluaW11bVRpbWVySW50ZXJ2YWwpCiB7CiAgICAgaWYgKG1pbmltdW1UaW1lckludGVydmFs
KCkgIT0gb2xkTWluaW11bVRpbWVySW50ZXJ2YWwpIHsKLSAgICAgICAgZm9yIChhdXRvKiB0aW1l
ciA6IG1fdGltZW91dHMudmFsdWVzKCkpCisgICAgICAgIGZvciAoYXV0byYgdGltZXIgOiBtX3Rp
bWVvdXRzLnZhbHVlcygpKQogICAgICAgICAgICAgdGltZXItPmFkanVzdE1pbmltdW1UaW1lcklu
dGVydmFsKG9sZE1pbmltdW1UaW1lckludGVydmFsKTsKICAgICB9CiB9CkBAIC00MzMsNyArNDMz
LDcgQEAgZG91YmxlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Om1pbmltdW1UaQogCiB2b2lkIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpZENoYW5nZVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKQog
ewotICAgIGZvciAoYXV0byogdGltZXIgOiBtX3RpbWVvdXRzLnZhbHVlcygpKQorICAgIGZvciAo
YXV0byYgdGltZXIgOiBtX3RpbWVvdXRzLnZhbHVlcygpKQogICAgICAgICB0aW1lci0+ZGlkQ2hh
bmdlQWxpZ25tZW50SW50ZXJ2YWwoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCShyZXZpc2lvbiAxNzI2MDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2
ICsyOSw4IEBACiAjZGVmaW5lIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRfaAogCiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiRE9NVGltZXIuaCIKKyNpbmNsdWRlICJTY2hl
ZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJTZWN1cml0eUNvbnRleHQuaCIKICNpbmNsdWRlICJT
dXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg+CkBAIC00
Nyw3ICs0OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0Owog
Y2xhc3MgRGF0YWJhc2VDb250ZXh0OwotY2xhc3MgRE9NVGltZXI7CiBjbGFzcyBFdmVudFF1ZXVl
OwogY2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBNZXNzYWdlUG9ydDsKQEAgLTE1MCw3ICsxNTEs
NyBAQCBwdWJsaWM6CiAgICAgLy8gR2V0cyB0aGUgbmV4dCBpZCBpbiBhIGNpcmN1bGFyIHNlcXVl
bmNlIGZyb20gMSB0byAyXjMxLTEuCiAgICAgaW50IGNpcmN1bGFyU2VxdWVudGlhbElEKCk7CiAK
LSAgICBib29sIGFkZFRpbWVvdXQoaW50IHRpbWVvdXRJZCwgRE9NVGltZXIqIHRpbWVyKSB7IHJl
dHVybiBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05ld0VudHJ5OyB9CisgICAg
Ym9vbCBhZGRUaW1lb3V0KGludCB0aW1lb3V0SWQsIFBhc3NSZWZQdHI8RE9NVGltZXI+IHRpbWVy
KSB7IHJldHVybiBtX3RpbWVvdXRzLmFkZCh0aW1lb3V0SWQsIHRpbWVyKS5pc05ld0VudHJ5OyB9
CiAgICAgdm9pZCByZW1vdmVUaW1lb3V0KGludCB0aW1lb3V0SWQpIHsgbV90aW1lb3V0cy5yZW1v
dmUodGltZW91dElkKTsgfQogICAgIERPTVRpbWVyKiBmaW5kVGltZW91dChpbnQgdGltZW91dElk
KSB7IHJldHVybiBtX3RpbWVvdXRzLmdldCh0aW1lb3V0SWQpOyB9CiAKQEAgLTIwNSw3ICsyMDYs
NyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8QWN0aXZlRE9NT2JqZWN0Kj4gbV9hY3RpdmVET01P
YmplY3RzOwogCiAgICAgaW50IG1fY2lyY3VsYXJTZXF1ZW50aWFsSUQ7Ci0gICAgSGFzaE1hcDxp
bnQsIERPTVRpbWVyKj4gbV90aW1lb3V0czsKKyAgICBIYXNoTWFwPGludCwgUmVmUHRyPERPTVRp
bWVyPj4gbV90aW1lb3V0czsKIAogICAgIGJvb2wgbV9pbkRpc3BhdGNoRXJyb3JFdmVudDsKICAg
ICBjbGFzcyBQZW5kaW5nRXhjZXB0aW9uOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01U
aW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAJ
KHJldmlzaW9uIDE3MjYwMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02NSwxMCArNjUsMTIgQEAgRE9NVGltZXI6OkRPTVRpbWVyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleAogICAgICwgbV9vcmlnaW5hbEludGVydmFsKGludGVydmFsKQogICAg
ICwgbV9zaG91bGRGb3J3YXJkVXNlckdlc3R1cmUoc2hvdWxkRm9yd2FyZFVzZXJHZXN0dXJlKGlu
dGVydmFsLCBtX25lc3RpbmdMZXZlbCkpCiB7CisgICAgUmVmUHRyPERPTVRpbWVyPiByZWZlcmVu
Y2UgPSBhZG9wdFJlZih0aGlzKTsKKwogICAgIC8vIEtlZXAgYXNraW5nIGZvciB0aGUgbmV4dCBp
ZCB1bnRpbCB3ZSdyZSBnaXZlbiBvbmUgdGhhdCB3ZSBkb24ndCBhbHJlYWR5IGhhdmUuCiAgICAg
ZG8gewogICAgICAgICBtX3RpbWVvdXRJZCA9IGNvbnRleHQtPmNpcmN1bGFyU2VxdWVudGlhbElE
KCk7Ci0gICAgfSB3aGlsZSAoIWNvbnRleHQtPmFkZFRpbWVvdXQobV90aW1lb3V0SWQsIHRoaXMp
KTsKKyAgICB9IHdoaWxlICghY29udGV4dC0+YWRkVGltZW91dChtX3RpbWVvdXRJZCwgcmVmZXJl
bmNlKSk7CiAKICAgICBkb3VibGUgaW50ZXJ2YWxNaWxsaXNlY29uZHMgPSBpbnRlcnZhbENsYW1w
ZWRUb01pbmltdW0oaW50ZXJ2YWwsIGNvbnRleHQtPm1pbmltdW1UaW1lckludGVydmFsKCkpOwog
ICAgIGlmIChzaW5nbGVTaG90KQpAQCAtNzcsMTcgKzc5LDExIEBAIERPTVRpbWVyOjpET01UaW1l
cihTY3JpcHRFeGVjdXRpb25Db250ZXgKICAgICAgICAgc3RhcnRSZXBlYXRpbmcoaW50ZXJ2YWxN
aWxsaXNlY29uZHMpOwogfQogCi1ET01UaW1lcjo6fkRPTVRpbWVyKCkKLXsKLSAgICBpZiAoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnJlbW92ZVRpbWVvdXQobV90aW1lb3V0SWQpOwotfQotCiBpbnQgRE9NVGltZXI6Omluc3RhbGwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxl
ZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90KQogewotICAgIC8v
IERPTVRpbWVyIGNvbnN0cnVjdG9yIGxpbmtzIHRoZSBuZXcgdGltZXIgaW50byBhIGxpc3Qgb2Yg
QWN0aXZlRE9NT2JqZWN0cyBoZWxkIGJ5IHRoZSAnY29udGV4dCcuCi0gICAgLy8gVGhlIHRpbWVy
IGlzIGRlbGV0ZWQgd2hlbiBjb250ZXh0IGlzIGRlbGV0ZWQgKERPTVRpbWVyOjpjb250ZXh0RGVz
dHJveWVkKSBvciBleHBsaWNpdGx5IHZpYSBET01UaW1lcjo6cmVtb3ZlQnlJZCgpLAotICAgIC8v
IG9yIGlmIGl0IGlzIGEgb25lLXRpbWUgdGltZXIgYW5kIGl0IGhhcyBmaXJlZCAoRE9NVGltZXI6
OmZpcmVkKS4KKyAgICAvLyBET01UaW1lciBjb25zdHJ1Y3RvciBwYXNzZXMgb3duZXJzaGlwIG9m
IHRoZSBpbml0aWFsIHJlZiBvbiB0aGUgb2JqZWN0IHRvIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAv
LyBUaGlzIHJlZmVyZW5jZSB3aWxsIGJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiBhIG9u
ZS1zaG90IHRpbWVyIGZpcmVzLCB3aGVuIHRoZSBjb250ZXh0CisgICAgLy8gaXMgZGVzdHJveWVk
LCBvciBpZiBleHBsaWNpdGx5IGNhbmNlbGxlZCBieSByZW1vdmVCeUlkLiAKICAgICBET01UaW1l
ciogdGltZXIgPSBuZXcgRE9NVGltZXIoY29udGV4dCwgV1RGOjptb3ZlKGFjdGlvbiksIHRpbWVv
dXQsIHNpbmdsZVNob3QpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoY29udGV4dC0+aXNE
b2N1bWVudCgpKSB7CkBAIC0xMTUsMTIgKzExMSwxNiBAQCB2b2lkIERPTVRpbWVyOjpyZW1vdmVC
eUlkKFNjcmlwdEV4ZWN1dGlvCiAgICAgICAgIHJldHVybjsKIAogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkUmVtb3ZlVGltZXIoY29udGV4dCwgdGltZW91dElkKTsKLQotICAgIGRl
bGV0ZSBjb250ZXh0LT5maW5kVGltZW91dCh0aW1lb3V0SWQpOworICAgIGNvbnRleHQtPnJlbW92
ZVRpbWVvdXQodGltZW91dElkKTsKIH0KIAogdm9pZCBET01UaW1lcjo6ZmlyZWQoKQogeworICAg
IC8vIFJldGFpbiB0aGlzIC0gaWYgdGhlIHRpbWVyIGlzIGNhbmNlbGxlZCB3aGlsZSB0aGlzIGZ1
bmN0aW9uIGlzIG9uIHRoZSBzdGFjayAoaW1wbGljaXRseSBhbmQgYWx3YXlzCisgICAgLy8gZm9y
IG9uZS1zaG90IHRpbWVycywgb3IgaWYgcmVtb3ZlQnlJZCBpcyBjYWxsZWQgb24gaXRzZWxmIGZy
b20gd2l0aGluIGFuIGludGVydmFsIHRpbWVyIGZpcmUpIHRoZW4KKyAgICAvLyB3YWl0IHVuaXQg
dGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uIHRvIGRlbGV0ZSBET01UaW1lci4KKyAgICBSZWZQdHI8
RE9NVGltZXI+IHJlZmVyZW5jZSA9IHRoaXM7CisKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIEFTU0VSVChjb250ZXh0
KTsKICNpZiBQTEFURk9STShJT1MpCkBAIC0xNDgsNyArMTQ4LDYgQEAgdm9pZCBET01UaW1lcjo6
ZmlyZWQoKQogICAgICAgICAgICAgICAgIGF1Z21lbnRSZXBlYXRJbnRlcnZhbChtaW5pbXVtSW50
ZXJ2YWwgLSByZXBlYXRJbnRlcnZhbCgpKTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIE5vIGFj
Y2VzcyB0byBtZW1iZXIgdmFyaWFibGVzIGFmdGVyIHRoaXMgcG9pbnQsIGl0IGNhbiBkZWxldGUg
dGhlIHRpbWVyLgogICAgICAgICBtX2FjdGlvbi0+ZXhlY3V0ZShjb250ZXh0KTsKIAogICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpcmVUaW1lcihjb29raWUpOwpAQCAtMTU2
LDExICsxNTUsNyBAQCB2b2lkIERPTVRpbWVyOjpmaXJlZCgpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICAvLyBEZWxldGUgdGltZXIgYmVmb3JlIGV4ZWN1dGluZyB0aGUgYWN0aW9uIGZv
ciBvbmUtc2hvdCB0aW1lcnMuCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4g
YWN0aW9uID0gV1RGOjptb3ZlKG1fYWN0aW9uKTsKLQotICAgIC8vIE5vIGFjY2VzcyB0byBtZW1i
ZXIgdmFyaWFibGVzIGFmdGVyIHRoaXMgcG9pbnQuCi0gICAgZGVsZXRlIHRoaXM7CisgICAgY29u
dGV4dC0+cmVtb3ZlVGltZW91dChtX3RpbWVvdXRJZCk7CiAKICNpZiBQTEFURk9STShJT1MpCiAg
ICAgYm9vbCBzaG91bGRSZXBvcnRMYWNrT2ZDaGFuZ2VzOwpAQCAtMTc5LDcgKzE3NCw3IEBAIHZv
aWQgRE9NVGltZXI6OmZpcmVkKCkKICAgICB9CiAjZW5kaWYKIAotICAgIGFjdGlvbi0+ZXhlY3V0
ZShjb250ZXh0KTsKKyAgICBtX2FjdGlvbi0+ZXhlY3V0ZShjb250ZXh0KTsKIAogI2lmIFBMQVRG
T1JNKElPUykKICAgICBpZiAoc2hvdWxkQmVnaW5PYnNlcnZpbmdDaGFuZ2VzKSB7CkBAIC0xOTYs
MTIgKzE5MSw2IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKICAgICB0aW1lck5lc3RpbmdMZXZl
bCA9IDA7CiB9CiAKLXZvaWQgRE9NVGltZXI6OmNvbnRleHREZXN0cm95ZWQoKQotewotICAgIFN1
c3BlbmRhYmxlVGltZXI6OmNvbnRleHREZXN0cm95ZWQoKTsKLSAgICBkZWxldGUgdGhpczsKLX0K
LQogdm9pZCBET01UaW1lcjo6ZGlkU3RvcCgpCiB7CiAgICAgLy8gTmVlZCB0byByZWxlYXNlIEpT
IG9iamVjdHMgcG90ZW50aWFsbHkgcHJvdGVjdGVkIGJ5IFNjaGVkdWxlZEFjdGlvbgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuaAkocmV2aXNpb24gMTcyNjAwKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNSArMjgsMTcgQEAKICNkZWZp
bmUgRE9NVGltZXJfaAogCiAjaW5jbHVkZSAiU3VzcGVuZGFibGVUaW1lci5oIgorI2luY2x1ZGUg
PFdURi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CiAKLSAgICBjbGFzcyBET01UaW1lciBm
aW5hbCA6IHB1YmxpYyBTdXNwZW5kYWJsZVRpbWVyIHsKKyAgICBjbGFzcyBET01UaW1lciBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTVRpbWVyPiwgcHVibGljIFN1c3BlbmRhYmxlVGltZXIg
eworICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShET01UaW1lcik7CisgICAgICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+RE9NVGlt
ZXIoKTsKICAgICAgICAgLy8gQ3JlYXRlcyBhIG5ldyB0aW1lciBvd25lZCBieSBzcGVjaWZpZWQg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgc3RhcnRzIGl0CiAgICAgICAgIC8vIGFuZCByZXR1cm5z
IGl0cyBJZC4KICAgICAgICAgc3RhdGljIGludCBpbnN0YWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiwgaW50IHRpbWVvdXQsIGJvb2wg
c2luZ2xlU2hvdCk7CkBAIC00OSwxNyArNTEsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgRE9NVGltZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHN0
ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+LCBpbnQgaW50ZXJ2YWwsIGJvb2wgc2luZ2xl
U2hvdCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIG92ZXJyaWRlOwotCi0gICAgICAg
IC8vIEFjdGl2ZURPTU9iamVjdAotICAgICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3ll
ZCgpIG92ZXJyaWRlOworICAgICAgICBkb3VibGUgaW50ZXJ2YWxDbGFtcGVkVG9NaW5pbXVtKGlu
dCB0aW1lb3V0LCBkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwpIGNvbnN0OwogCiAgICAgICAg
IC8vIFN1c3BlbmRhYmxlVGltZXIKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgb3ZlcnJp
ZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wKCkgb3ZlcnJpZGU7Ci0KLSAgICAgICAg
ZG91YmxlIGludGVydmFsQ2xhbXBlZFRvTWluaW11bShpbnQgdGltZW91dCwgZG91YmxlIG1pbmlt
dW1UaW1lckludGVydmFsKSBjb25zdDsKLQotICAgICAgICAvLyBSZXR1bnMgdGltZXIgZmlyZSB0
aW1lIHJvdW5kZWQgdG8gdGhlIG5leHQgbXVsdGlwbGUgb2YgdGltZXIgYWxpZ25tZW50IGludGVy
dmFsLgogICAgICAgICB2aXJ0dWFsIGRvdWJsZSBhbGlnbmVkRmlyZVRpbWUoZG91YmxlKSBjb25z
dCBvdmVycmlkZTsKIAogICAgICAgICBpbnQgbV90aW1lb3V0SWQ7Cg==
</data>
<flag name="review"
          id="261862"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>