<?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>97521</bug_id>
          
          <creation_ts>2012-09-24 21:43:20 -0700</creation_ts>
          <short_desc>[Forms] Move multiple fields related functions to BaseDateAndTimeInputType from TimeInputType</short_desc>
          <delta_ts>2012-09-26 23:43:02 -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>Forms</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>
          <dependson>97649</dependson>
          <blocked>97299</blocked>
    
    <blocked>97756</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>mifenton</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>727274</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-09-24 21:43:20 -0700</bug_when>
    <thetext>To share code among date time related input types, date, datetime, month, time and week, we should move multiple fields related functions to BaseDateAndTimeInputType class from TimeInputType class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728228</commentid>
    <comment_count>1</comment_count>
      <attachid>165736</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-25 23:11:27 -0700</bug_when>
    <thetext>Created attachment 165736
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728230</commentid>
    <comment_count>2</comment_count>
      <attachid>165736</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-25 23:12:55 -0700</bug_when>
    <thetext>Comment on attachment 165736
Patch 1

Could you review this patch?
Thanks in advance.

Bug 97299 has an implementation of multiple fields &quot;month&quot; input UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728340</commentid>
    <comment_count>3</comment_count>
      <attachid>165736</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-26 02:17:21 -0700</bug_when>
    <thetext>Comment on attachment 165736
Patch 1

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

The direction of the change looks good.

&gt; Source/WebCore/html/BaseDateAndTimeInputType.h:74
&gt; +class BaseMultipleFieldsDateAndTimeInputType : public BaseDateAndTimeInputType {

This class should have its own source files because it is large.

&gt; Source/WebCore/html/BaseDateAndTimeInputType.h:82
&gt; +    class DateTimeEditControlOwnerImpl : public DateTimeEditElement::EditControlOwner {

nit:
We may add DateTimeEditElement::EditControlOwner interface to BaseMultipleFieldsDateAndTimeInputType class directly.
You can change so in another patch.

&gt; Source/WebCore/html/TimeInputType.h:43
&gt; +typedef BaseMultipleFieldsDateAndTimeInputType BaseTimeInputType;
&gt; +#else
&gt; +typedef BaseDateAndTimeInputType BaseTimeInputType;

This should be in BaseMultipleFieldsDateAndTimeInputType.h because this pattern will be used in other date/time input types.
Of course we should rename BaseTimeInputType so that it doesn&apos;t have &quot;Time&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729145</commentid>
    <comment_count>4</comment_count>
      <attachid>165916</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-26 19:21:05 -0700</bug_when>
    <thetext>Created attachment 165916
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729146</commentid>
    <comment_count>5</comment_count>
      <attachid>165916</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-26 19:22:02 -0700</bug_when>
    <thetext>Comment on attachment 165916
Patch 2

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Move BaseMultipleFiledsDateAndTimeInputType class to own file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729154</commentid>
    <comment_count>6</comment_count>
      <attachid>165916</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-26 19:44:38 -0700</bug_when>
    <thetext>Comment on attachment 165916
Patch 2

Attachment 165916 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14036636</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729172</commentid>
    <comment_count>7</comment_count>
      <attachid>165916</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-26 20:45:09 -0700</bug_when>
    <thetext>Comment on attachment 165916
Patch 2

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        This patch introduces new class BaseMultipleFieldsDateAndTimeInputType
&gt; +         for sharing code among multiple fields date/time input UI.

nit: extra space before &apos;for&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729177</commentid>
    <comment_count>8</comment_count>
      <attachid>165922</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-26 21:06:42 -0700</bug_when>
    <thetext>Created attachment 165922
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729178</commentid>
    <comment_count>9</comment_count>
      <attachid>165922</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-26 21:08:16 -0700</bug_when>
    <thetext>Comment on attachment 165922
Patch 3

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Make BaseMultipleFieldsDateAndTimeInputType::formatDateTimeFieldsState() and setupLayoutParameters() pure virtual
** Fix compilation error and no need to have default functions
* Update ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729200</commentid>
    <comment_count>10</comment_count>
      <attachid>165922</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-26 22:15:24 -0700</bug_when>
    <thetext>Comment on attachment 165922
Patch 3

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

&gt; Source/WebCore/html/BaseMultipleFieldsDateAndTimeInputType.cpp:234
&gt; +        TextFieldInputType::updateInnerTextValue();

Why did you add the TextFieldInputType::updateInnerTextValue() call?  It looks unnecessary and confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729220</commentid>
    <comment_count>11</comment_count>
      <attachid>165931</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-26 22:48:52 -0700</bug_when>
    <thetext>Created attachment 165931
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729221</commentid>
    <comment_count>12</comment_count>
      <attachid>165931</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-26 22:50:25 -0700</bug_when>
    <thetext>Comment on attachment 165931
Patch 4

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Remove call of TextFieldInputType::updateInnerTextValue() in BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729245</commentid>
    <comment_count>13</comment_count>
      <attachid>165931</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-26 23:41:19 -0700</bug_when>
    <thetext>Comment on attachment 165931
Patch 4

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729247</commentid>
    <comment_count>14</comment_count>
      <attachid>165931</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-26 23:42:57 -0700</bug_when>
    <thetext>Comment on attachment 165931
Patch 4

Clearing flags on attachment: 165931

Committed r129729: &lt;http://trac.webkit.org/changeset/129729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729248</commentid>
    <comment_count>15</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-09-26 23:43:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165736</attachid>
            <date>2012-09-25 23:11:27 -0700</date>
            <delta_ts>2012-09-26 19:21:02 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-97521-20120926151046.patch</filename>
            <type>text/plain</type>
            <size>28908</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUxMjNjZWRhNjdjMTNl
MWVmNTBhNjM5YmQ1OWI4ZDhmZGQ1MGFmYy4uMzU1NzQ5OTBhMjZlMjNhZDY1NDlhNzc5NGMwOGM3
MTU2Y2I3NjAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY3IEBACiAyMDEyLTA5LTI1ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW0Zvcm1zXSBNb3Zl
IG11bHRpcGxlIGZpZWxkcyByZWxhdGVkIGZ1bmN0aW9ucyB0byBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUgZnJvbSBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzUyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBuZXcgY2xhc3MgQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUKKyAgICAgICAgZm9yIHNoYXJpbmcgY29kZSBh
bW9uZyBtdWx0aXBsZSBmaWVsZHMgZGF0ZS90aW1lIGlucHV0IFVJLgorCisgICAgICAgIE1lbWJl
ciBmdW5jdGlvbnMgaW4gQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUgYXJl
IG1vdmVkCisgICAgICAgIGZyb20gVGltZUlucHV0VHlwZS4KKworICAgICAgICBUaGlzIHBhdGNo
IGFmZmVjdHMgcG9ydHMgd2hpY2ggZW5hYmxlIGJvdGggRU5BQkxFX0lOUFVUX1RZUEVfVElNRSBh
bmQKKyAgICAgICAgRU5BQkxFX0lOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIHBhdGNoIGRvZXNuJ3QgY2hhbmdlIGJlaGF2aW9yLgor
CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1l
RWRpdENvbnRyb2xPd25lckltcGw6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwpOiBNb3Zl
ZCBmcm9tIFRpbWVJbnB1dFR5cGUuCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVs
ZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6fkRh
dGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6QmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGw6OmRpZEJsdXJGcm9tQ29udHJvbCk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpC
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJv
bE93bmVySW1wbDo6ZGlkRm9jdXNPbkNvbnRyb2wpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRy
b2xPd25lckltcGw6OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKTogZGl0dG8KKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVk
aXRDb250cm9sT3duZXJJbXBsOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKTogQ2hhbmdlZCB0
byBjYWxsIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoKSBpbiBCYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZUlucHV0VHlwZSBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2lj
KTogTW92ZWQgZnJvbSBUaW1lSW5wdXRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGw6OmlzRWRpdENvbnRyb2xPd25lckRpc2FibGVkKTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250
cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJSZWFkT25seSk6IGRpdHRvCisgICAgICAg
IChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6QmFzZU11
bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUpOiBkaXR0bworICAgICAgICAoV2ViQ29y
ZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6On5CYXNlTXVsdGlwbGVG
aWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Ymx1cik6IGRpdHRvCisgICAgICAg
IChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRl
UmVuZGVyZXIpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBkaXR0bworICAgICAgICAo
V2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lT
aGFkb3dTdWJ0cmVlKTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpmb2N1cyk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpC
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KTogZGl0
dG8KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlOjpkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVu
dCk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZSk6IGRpdHRvCisgICAgICAgIChXZWJDb3Jl
OjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNNb3VzZUZvY3VzYWJs
ZSk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKTogZGl0dG8KKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpyZWFkb25seUF0
dHJpYnV0ZUNoYW5nZWQpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmll
bGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzVGV4dEZpZWxkKTogZGl0dG8KKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpyZXN0b3JlRm9y
bUNvbnRyb2xTdGF0ZSk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVs
ZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBkaXR0bworICAg
ICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNl
dHVwTGF5b3V0UGFyYW1ldGVycyk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlw
bGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWUpOiBkaXR0bworICAgICAgICAo
V2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNob3VsZFVz
ZUlucHV0TWV0aG9kKTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpzdGVwQXR0cmlidXRlQ2hhbmdlZCk6IGRpdHRvCisgICAg
ICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6dXBk
YXRlSW5uZXJUZXh0VmFsdWUpOiBNb3ZlZCBmcm9tIFRpbWVJbnB1dFR5cGUgYW5kIGNhbGwgc2V0
dXBMYXlvdXRQYXJhbWV0ZXJzKCkgdG8gc2V0IGRhdGUvdGltZSBmb3JtYXQgYnkgZWFjaCBpbnB1
dCB0eXBlLgorICAgICAgICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAg
ICAgIChCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUpOiBFeHBvc2VkIHNldE1pbGxpc2Vjb25kVG9E
YXRlQ29tcG9uZW50cyBhcyBwcm90ZWN0ZWQuCisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZSk6IEFkZGVkLgorICAgICAgICAoRGF0ZVRpbWVFZGl0Q29udHJv
bE93bmVySW1wbCk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OlRpbWVJbnB1dFR5cGUpOiBDaGFuZ2VkIGJhc2UgY2xh
c3MgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6On5UaW1lSW5wdXRUeXBl
KTogQ2hhbmdlZCBub3RoaW5nIHRvIGRvLgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlw
ZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IE1vdmVkIGZyb20gVGltZUlOcHV0OjpEYXRl
VEltZUVkaXRDb250cm9sT3duZXJJbXBsIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6VGltZUlu
cHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKTogQWRkZWQgZm9yIHNldCB0aW1lIGZvcm1h
dC4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFRpbWVJbnB1dFR5
cGUpOiBNb3ZlZCBtdWx0aXBsZSBmaWVsZHMgdGltZSBpbnB1dCBVSSByZWxhdGVkIGZ1bmN0aW9u
cyB0byBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS4KKworMjAxMi0wOS0y
NSAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtGb3Jt
c10gV2Ugc2hvdWxkIGRpc2Nvbm5lY3QgRGF0ZVRpbWVFZGl0RWxlbWVudCBhbmQgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQgb24gbGF5b3V0KCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk3NDM4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0YjdmOTNjZjA1YzgwMDc5YTkwMDllYzc2YWMz
OGQxYjRmYjkzZTQzLi4xZTk1YzgzZDQzMmEyNDhkZTYwY2RhYTdiNDhmNGViZTJjNWM0ZDk1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
CkBAIC00Miw2ICs0MiwxNCBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01V
TFRJUExFX0ZJRUxEUykKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkc1N0YXRlLmgiCisjaW5jbHVk
ZSAiRWxlbWVudFNoYWRvdy5oIgorI2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiTG9jYWxpemVyLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTE4Miw0ICsx
OTAsMjE5IEBAIFN0cmluZyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNhbml0aXplVmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zCiAgICAgcmV0dXJuIHR5cGVNaXNtYXRj
aEZvcihwcm9wb3NlZFZhbHVlKSA/IFN0cmluZygpIDogcHJvcG9zZWRWYWx1ZTsKIH0KIAorI2lm
IEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorCitCYXNlTXVsdGlwbGVG
aWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6
RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZSYgZGF0ZUFuZFRpbWVJbnB1dFR5cGUpCisgICAgOiBtX2RhdGVBbmRUaW1lSW5w
dXRUeXBlKGRhdGVBbmRUaW1lSW5wdXRUeXBlKQoreworfQorCitCYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6fkRhdGVU
aW1lRWRpdENvbnRyb2xPd25lckltcGwoKQoreworfQorCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRC
bHVyRnJvbUNvbnRyb2woKQoreworICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY2FsbCBibHVyKCku
IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gY29udHJvbAorICAgIC8vIGxvc3QgZm9jdXMu
CisKKyAgICAvLyBSZW1vdmUgZm9jdXMgcmluZyBieSBDU1MgImZvY3VzIiBwc2V1ZG8gY2xhc3Mu
CisgICAgbV9kYXRlQW5kVGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKGZhbHNlKTsK
K30KKwordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZGlkRm9jdXNPbkNvbnRyb2woKQoreworICAgIC8vIFdl
IGRvbid0IG5lZWQgdG8gY2FsbCBmb2N1cygpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVu
IGNvbnRyb2wKKyAgICAvLyBnb3QgZm9jdXMuCisKKyAgICAvLyBBZGQgZm9jdXMgcmluZyBieSBD
U1MgImZvY3VzIiBwc2V1ZG8gY2xhc3MuCisgICAgbV9kYXRlQW5kVGltZUlucHV0VHlwZS5lbGVt
ZW50KCktPnNldEZvY3VzKHRydWUpOworfQorCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJv
bFZhbHVlQ2hhbmdlZCgpCit7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KG1f
ZGF0ZUFuZFRpbWVJbnB1dFR5cGUuZWxlbWVudCgpKTsKKyAgICBpbnB1dC0+c2V0VmFsdWVJbnRl
cm5hbChtX2RhdGVBbmRUaW1lSW5wdXRUeXBlLm1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+dmFsdWUo
KSwgRGlzcGF0Y2hOb0V2ZW50KTsKKyAgICBpbnB1dC0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwor
ICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9sSW5wdXRFdmVudCgpOworICAgIGlucHV0LT5k
aXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKKyAgICBpbnB1dC0+bm90aWZ5Rm9ybVN0
YXRlQ2hhbmdlZCgpOworfQorCitTdHJpbmcgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmZvcm1hdERhdGVUaW1lRmll
bGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9kYXRlQW5kVGltZUlucHV0VHlwZS5mb3JtYXREYXRlVGlt
ZUZpZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRzU3RhdGUpOworfQorCitib29sIEJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRy
b2xPd25lckRpc2FibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kYXRlQW5kVGltZUlucHV0
VHlwZS5lbGVtZW50KCktPnJlYWRPbmx5KCk7Cit9CisKK2Jvb2wgQmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRp
dENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kYXRlQW5kVGlt
ZUlucHV0VHlwZS5lbGVtZW50KCktPmRpc2FibGVkKCk7Cit9CisKK0Jhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQorICAgIDogQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlKGVsZW1lbnQpCisgICAgLCBtX2RhdGVUaW1lRWRpdEVsZW1lbnQoMCkKKyAgICAsIG1f
ZGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCgqdGhpcykKK3sKK30KKworQmFzZU11bHRpcGxl
RmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6On5CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZSgpCit7CisgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAg
bV9kYXRlVGltZUVkaXRFbGVtZW50LT5yZW1vdmVFZGl0Q29udHJvbE93bmVyKCk7Cit9CisKK3Zv
aWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmJsdXIoKQoreworICAg
IGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVu
dC0+Ymx1ckJ5T3duZXIoKTsKK30KKworUmVuZGVyT2JqZWN0KiBCYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBS
ZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIElucHV0VHlwZTo6Y3JlYXRl
UmVuZGVyZXIoYXJlbmEsIHN0eWxlKTsKK30KKwordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCit7CisgICAgQVNTRVJUKGVs
ZW1lbnQoKS0+c2hhZG93KCkpOworCisgICAgUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGRh
dGVUaW1lRWRpdEVsZW1lbnQoRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+
ZG9jdW1lbnQoKSwgbV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKSk7CisgICAgbV9kYXRl
VGltZUVkaXRFbGVtZW50ID0gZGF0ZVRpbWVFZGl0RWxlbWVudC5nZXQoKTsKKyAgICBlbGVtZW50
KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9kYXRlVGltZUVkaXRFbGVt
ZW50KTsKKyAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOworfQorCit2b2lkIEJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCit7Cisg
ICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkgeworICAgICAgICBtX2RhdGVUaW1lRWRpdEVs
ZW1lbnQtPnJlbW92ZUVkaXRDb250cm9sT3duZXIoKTsKKyAgICAgICAgbV9kYXRlVGltZUVkaXRF
bGVtZW50ID0gMDsKKyAgICB9CisgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95
U2hhZG93U3VidHJlZSgpOworfQorCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlOjpmb2N1cyhib29sKQoreworICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQp
CisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+Zm9jdXNCeU93bmVyKCk7Cit9CisKK3Zv
aWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmZvcndhcmRFdmVudChF
dmVudCogZXZlbnQpCit7CisgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAg
bV9kYXRlVGltZUVkaXRFbGVtZW50LT5kZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30KKwor
dm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlzYWJsZWRBdHRy
aWJ1dGVDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQorICAgICAg
ICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmRpc2FibGVkU3RhdGVDaGFuZ2VkKCk7Cit9CisKK3Zv
aWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25F
dmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBmb3J3YXJkRXZlbnQoZXZlbnQpOwor
fQorCitib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjppc0tleWJv
YXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNNb3Vz
ZUZvY3VzYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5n
ZWQoKQoreworICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7Cit9CisKK3ZvaWQgQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnJlYWRvbmx5QXR0cmlidXRlQ2hhbmdlZCgp
Cit7CisgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgbV9kYXRlVGltZUVk
aXRFbGVtZW50LT5yZWFkT25seVN0YXRlQ2hhbmdlZCgpOworfQorCitib29sIEJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1RleHRGaWVsZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBz
dGF0ZSkKK3sKKyAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgcmV0dXJu
OworICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21w
b25lbnRzKGNyZWF0ZVN0ZXBSYW5nZShBbnlJc0RlZmF1bHRTdGVwKS5taW5pbXVtKCkudG9Eb3Vi
bGUoKSwgJmRhdGUpOworICAgIERhdGVUaW1lRmllbGRzU3RhdGUgZGF0ZVRpbWVGaWVsZHNTdGF0
ZSA9IERhdGVUaW1lRmllbGRzU3RhdGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKHN0YXRlKTsK
KyAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRl
KGRhdGVUaW1lRmllbGRzU3RhdGUsIGRhdGUpOworICAgIGVsZW1lbnQoKS0+c2V0VmFsdWVJbnRl
cm5hbChtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCk7Cit9
CisKK0Zvcm1Db250cm9sU3RhdGUgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZGF0ZVRpbWVF
ZGl0RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIEZvcm1Db250cm9sU3RhdGUoKTsKKworICAgIHJl
dHVybiBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKCku
c2F2ZUZvcm1Db250cm9sU3RhdGUoKTsKK30KKwordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1l
bnQ6OkxheW91dFBhcmFtZXRlcnMmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUs
IGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3Ip
Cit7CisgICAgSW5wdXRUeXBlOjpzZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2Vk
LCBldmVudEJlaGF2aW9yKTsKKyAgICBpZiAodmFsdWVDaGFuZ2VkKQorICAgICAgICB1cGRhdGVJ
bm5lclRleHRWYWx1ZSgpOworfQorCitib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlOjpzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpz
dGVwQXR0cmlidXRlQ2hhbmdlZCgpCit7CisgICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKK30K
Kwordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6dXBkYXRlSW5u
ZXJUZXh0VmFsdWUoKQoreworICAgIGlmICghbV9kYXRlVGltZUVkaXRFbGVtZW50KSB7CisgICAg
ICAgIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIExvY2FsaXplciYgbG9jYWxpemVyID0gZWxlbWVudCgpLT5k
b2N1bWVudCgpLT5nZXRMb2NhbGl6ZXIoZWxlbWVudCgpLT5jb21wdXRlSW5oZXJpdGVkTGFuZ3Vh
Z2UoKSk7CisgICAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyBsYXlvdXRQ
YXJhbWV0ZXJzKGxvY2FsaXplciwgY3JlYXRlU3RlcFJhbmdlKEFueUlzRGVmYXVsdFN0ZXApKTsK
KworICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgY29uc3QgYm9vbCBoYXNWYWx1ZSA9IHBh
cnNlVG9EYXRlQ29tcG9uZW50cyhlbGVtZW50KCktPnZhbHVlKCksICZkYXRlKTsKKyAgICBpZiAo
IWhhc1ZhbHVlKQorICAgICAgICBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMobGF5b3V0
UGFyYW1ldGVycy5zdGVwUmFuZ2UubWluaW11bSgpLnRvRG91YmxlKCksICZkYXRlKTsKKworICAg
IHNldHVwTGF5b3V0UGFyYW1ldGVycyhsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKKworICAgIGlm
IChoYXNWYWx1ZSkKKyAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRWYWx1ZUFzRGF0
ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKKyAgICBlbHNlCisgICAgICAgIG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudC0+c2V0RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKK30KKyNl
bmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYTQ5OTEwZmRlYzNlMjRlMTQ1N2E3YThjYzA1
ZjMyZDFjN2RiYmIyZC4uNGQxMzM0YjkxNTE0ZjM4MWU0NjI0MWNhMDkyODM2NzM4NjY4OWNkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBA
IC0zNSw2ICszNSwxMCBAQAogI2luY2x1ZGUgIlRleHRGaWVsZElucHV0VHlwZS5oIgogI2luY2x1
ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVf
TVVMVElQTEVfRklFTERTKQorI2luY2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEEgc3VwZXIgY2xhc3Mgb2YgZGF0ZSwgZGF0
ZXRpbWUsIGRhdGV0aW1lLWxvY2FsLCBtb250aCwgdGltZSwgYW5kIHdlZWsgdHlwZXMuCkBAIC00
NiwxMCArNTAsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNv
bXBvbmVudHMoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoY29uc3QgRGVjaW1hbCYpIGNvbnN0IE9WRVJS
SURFOwogICAgIFN0cmluZyBzZXJpYWxpemVXaXRoQ29tcG9uZW50cyhjb25zdCBEYXRlQ29tcG9u
ZW50cyYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBv
bmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0ID0gMDsKIAogcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgcGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNoYXIq
LCB1bnNpZ25lZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKikgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9u
ZW50cyopIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVU
eXBlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGRvdWJsZSwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOwpAQCAtNjYsNiArNzAsNjIgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwogfTsKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQor
Y2xhc3MgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKK3Byb3RlY3RlZDoKKyAgICBCYXNlTXVsdGlwbGVGaWVs
ZHNEYXRlQW5kVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CisgICAgdmlydHVhbCB+
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUoKTsKKyAgICB2aXJ0dWFsIFN0
cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUm
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRl
VGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMm
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsIDogcHVibGljIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3duZXIgeworICAg
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKTsK
KworICAgIHB1YmxpYzoKKyAgICAgICAgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbChCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSYpOworICAgICAgICB2aXJ0dWFsIH5E
YXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkQmx1ckZyb21Db250cm9sKCkgT1ZFUlJJREUgRklOQUw7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRGb2N1c09uQ29udHJvbCgpIE9WRVJSSURFIEZJTkFMOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsK
KyAgICAgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBE
YXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgICAgIHZpcnR1
YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJEaXNhYmxlZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFM
OworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25z
dCBPVkVSUklERSBGSU5BTDsKKworICAgICAgICBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZSYgbV9kYXRlQW5kVGltZUlucHV0VHlwZTsKKyAgICB9OworCisgICAgZnJpZW5k
IGNsYXNzIERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw7CisKKyAgICAvLyBJbnB1dFR5cGUg
ZnVuY3Rpb25zCisgICAgdmlydHVhbCB2b2lkIGJsdXIoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2
aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJT
dHlsZSopIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lTaGFk
b3dTdWJ0cmVlKCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVkQXR0
cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhi
b29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVh
bCB2b2lkIGZvcndhcmRFdmVudChFdmVudCopIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCop
IGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxl
KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxkKCkg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIG1pbk9yTWF4QXR0cmlidXRl
Q2hhbmdlZCgpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCByZWFkb25seUF0dHJp
YnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZv
cm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREUgRklO
QUw7CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QgT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHN0ZXBBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJ
REUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCkgT1ZFUlJJ
REUgRklOQUw7CisKKyAgICBEYXRlVGltZUVkaXRFbGVtZW50KiBtX2RhdGVUaW1lRWRpdEVsZW1l
bnQ7CisgICAgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCBtX2RhdGVUaW1lRWRpdENvbnRy
b2xPd25lckltcGw7Cit9OworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcAppbmRleCBhMDA1MTUxM2E4ZGE4ZjQxMGMxOWU3MGNmMWY5ZjdjZWRjZmM1ZWRm
Li45NzdmZWMyMzA2ZjY4ZTBhMTRjZDQ1YmRjZmVlMDRiN2ZhNmVhNDM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTQxLDEzICs0MSwxMCBAQAogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQorCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCiAjaW5jbHVkZSAiRGF0ZVRpbWVG
aWVsZHNTdGF0ZS5oIgotI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKLSNpbmNsdWRlICJGb3Jt
Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2Nh
bGl6ZXIuaCIKLSNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAjZW5kaWYKIApAQCAtNjQsNiArNjEsMTEgQEAgUGFzc093blB0cjxJbnB1dFR5
cGU+IFRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAg
IHJldHVybiBhZG9wdFB0cihuZXcgVGltZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKK1RpbWVJ
bnB1dFR5cGU6OlRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKKyAgICA6
IEJhc2VUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCit7Cit9CisKIGNvbnN0IEF0b21pY1N0cmluZyYg
VGltZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5w
dXRUeXBlTmFtZXM6OnRpbWUoKTsKQEAgLTEyMCw0NSArMTIyLDExIEBAIGJvb2wgVGltZUlucHV0
VHlwZTo6aXNUaW1lRmllbGQoKSBjb25zdAogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9N
VUxUSVBMRV9GSUVMRFMpCiAKLVRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGw6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoVGltZUlucHV0VHlwZSYgdGltZUlu
cHV0VHlwZSkKLSAgICA6IG1fdGltZUlucHV0VHlwZSh0aW1lSW5wdXRUeXBlKQotewotfQotCi1U
aW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjp+RGF0ZVRpbWVFZGl0
Q29udHJvbE93bmVySW1wbCgpCi17Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVF
ZGl0Q29udHJvbE93bmVySW1wbDo6ZGlkQmx1ckZyb21Db250cm9sKCkKLXsKLSAgICAvLyBXZSBk
b24ndCBuZWVkIHRvIGNhbGwgYmx1cigpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNv
bnRyb2wKLSAgICAvLyBsb3N0IGZvY3VzLgotCi0gICAgLy8gUmVtb3ZlIGZvY3VzIHJpbmcgYnkg
Q1NTICJmb2N1cyIgcHNldWRvIGNsYXNzLgotICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCkt
PnNldEZvY3VzKGZhbHNlKTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRD
b250cm9sT3duZXJJbXBsOjpkaWRGb2N1c09uQ29udHJvbCgpCitUaW1lSW5wdXRUeXBlOjp+VGlt
ZUlucHV0VHlwZSgpCiB7Ci0gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjYWxsIGZvY3VzKCkuIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gY29udHJvbAotICAgIC8vIGdvdCBmb2N1cy4KLQot
ICAgIC8vIEFkZCBmb2N1cyByaW5nIGJ5IENTUyAiZm9jdXMiIHBzZXVkbyBjbGFzcy4KLSAgICBt
X3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5zZXRGb2N1cyh0cnVlKTsKIH0KIAotdm9pZCBUaW1l
SW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVl
Q2hhbmdlZCgpCi17Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KG1fdGltZUlu
cHV0VHlwZS5lbGVtZW50KCkpOwotICAgIGlucHV0LT5zZXRWYWx1ZUludGVybmFsKG1fdGltZUlu
cHV0VHlwZS5tX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCk7
Ci0gICAgaW5wdXQtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICBpbnB1dC0+ZGlzcGF0Y2hG
b3JtQ29udHJvbElucHV0RXZlbnQoKTsKLSAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbENo
YW5nZUV2ZW50KCk7Ci0gICAgaW5wdXQtPm5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoKTsKLX0KLQot
Ci1TdHJpbmcgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6Zm9y
bWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGlt
ZUZpZWxkc1N0YXRlKSBjb25zdAorU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1l
RmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0
ZSkgY29uc3QKIHsKICAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzSG91cigpIHx8ICFk
YXRlVGltZUZpZWxkc1N0YXRlLmhhc01pbnV0ZSgpIHx8ICFkYXRlVGltZUZpZWxkc1N0YXRlLmhh
c0FNUE0oKSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CkBAIC0xNzYsMTc5ICsxNDQs
MTUgQEAgU3RyaW5nIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY28KICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQo
IiUwMnU6JTAydSIsIGRhdGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksIGRhdGVUaW1lRmllbGRz
U3RhdGUubWludXRlKCkpOwogfQogCi1ib29sIFRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3Vz
TG9naWMoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBUaW1lSW5wdXRU
eXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJEaXNh
YmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnJl
YWRPbmx5KCk7Ci19Ci0KLWJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93
bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdAotewotICAgIHJldHVy
biBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5kaXNhYmxlZCgpOwotfQotCi1UaW1lSW5wdXRU
eXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKLSAgICAsIG1fZGF0ZVRpbWVFZGl0RWxlbWVu
dCgwKQotICAgICwgbV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCp0aGlzKQotewotfQot
Ci1UaW1lSW5wdXRUeXBlOjp+VGltZUlucHV0VHlwZSgpCi17Ci0gICAgaWYgKG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5yZW1vdmVFZGl0Q29u
dHJvbE93bmVyKCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6Ymx1cigpCi17Ci0gICAgaWYg
KG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5i
bHVyQnlPd25lcigpOwotfQotCi1SZW5kZXJPYmplY3QqIFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAotewot
ICAgIHJldHVybiBJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKGFyZW5hLCBzdHlsZSk7Ci19Ci0K
LXZvaWQgVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCi17Ci0gICAgQVNTRVJU
KGVsZW1lbnQoKS0+c2hhZG93KCkpOwotCi0gICAgUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+
IGRhdGVUaW1lRWRpdEVsZW1lbnQoRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKSwgbV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKSk7Ci0gICAgbV9k
YXRlVGltZUVkaXRFbGVtZW50ID0gZGF0ZVRpbWVFZGl0RWxlbWVudC5nZXQoKTsKLSAgICBlbGVt
ZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9kYXRlVGltZUVkaXRF
bGVtZW50KTsKLSAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwotfQotCi12b2lkIFRpbWVJbnB1
dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKLXsKLSAgICBpZiAobV9kYXRlVGltZUVkaXRF
bGVtZW50KSB7Ci0gICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3ZlRWRpdENvbnRy
b2xPd25lcigpOwotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSAwOwotICAgIH0KLSAg
ICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7Ci19Ci0K
LXZvaWQgVGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCkKK3ZvaWQgVGltZUlucHV0VHlwZTo6c2V0
dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMm
IGxheW91dFBhcmFtZXRlcnMsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAogewot
ICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxl
bWVudC0+Zm9jdXNCeU93bmVyKCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6Zm9yd2FyZEV2
ZW50KEV2ZW50KiBldmVudCkKLXsKLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQotICAg
ICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwot
fQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OmRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpCi17Ci0g
ICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVt
ZW50LT5kaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6Omhh
bmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKLXsKLSAgICBmb3J3YXJkRXZl
bnQoZXZlbnQpOwotfQotCi1ib29sIFRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUo
S2V5Ym9hcmRFdmVudCopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFRp
bWVJbnB1dFR5cGU6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKQot
ewotICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6
cmVhZG9ubHlBdHRyaWJ1dGVDaGFuZ2VkKCkKLXsKLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVt
ZW50KQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnJlYWRPbmx5U3RhdGVDaGFuZ2Vk
KCk7Ci19Ci0KLWJvb2wgVGltZUlucHV0VHlwZTo6aXNUZXh0RmllbGQoKSBjb25zdAotewotICAg
IHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRy
b2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoIW1fZGF0
ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgcmV0dXJuOwotICAgIERhdGVDb21wb25lbnRzIGRh
dGU7Ci0gICAgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGNyZWF0ZVN0ZXBSYW5nZShB
bnlJc0RlZmF1bHRTdGVwKS5taW5pbXVtKCkudG9Eb3VibGUoKSwgJmRhdGUpOwotICAgIERhdGVU
aW1lRmllbGRzU3RhdGUgZGF0ZVRpbWVGaWVsZHNTdGF0ZSA9IERhdGVUaW1lRmllbGRzU3RhdGU6
OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKHN0YXRlKTsKLSAgICBtX2RhdGVUaW1lRWRpdEVsZW1l
bnQtPnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRzU3RhdGUsIGRh
dGUpOwotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWVJbnRlcm5hbChtX2RhdGVUaW1lRWRpdEVsZW1l
bnQtPnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCk7Ci19Ci0KLUZvcm1Db250cm9sU3RhdGUgVGlt
ZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAotewotICAgIGlmICghbV9k
YXRlVGltZUVkaXRFbGVtZW50KQotICAgICAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZSgpOwot
Ci0gICAgcmV0dXJuIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+dmFsdWVBc0RhdGVUaW1lRmllbGRz
U3RhdGUoKS5zYXZlRm9ybUNvbnRyb2xTdGF0ZSgpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6
OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2Vk
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCi17Ci0gICAgSW5wdXRUeXBl
OjpzZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsK
LSAgICBpZiAodmFsdWVDaGFuZ2VkKQotICAgICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwot
fQotCi1ib29sIFRpbWVJbnB1dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6c3RlcEF0dHJpYnV0
ZUNoYW5nZWQoKQotewotICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7Ci19Ci0KLXZvaWQgVGlt
ZUlucHV0VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUoKQotewotICAgIGlmICghbV9kYXRlVGlt
ZUVkaXRFbGVtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBMb2NhbGl6ZXImIGxvY2FsaXpl
ciA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+Z2V0TG9jYWxpemVyKGVsZW1lbnQoKS0+Y29tcHV0
ZUluaGVyaXRlZExhbmd1YWdlKCkpOwotICAgIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBh
cmFtZXRlcnMgbGF5b3V0UGFyYW1ldGVycyhsb2NhbGl6ZXIsIGNyZWF0ZVN0ZXBSYW5nZShBbnlJ
c0RlZmF1bHRTdGVwKSk7Ci0KLSAgICBEYXRlQ29tcG9uZW50cyBkYXRlOwotICAgIGNvbnN0IGJv
b2wgaGFzVmFsdWUgPSBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoZWxlbWVudCgpLT52YWx1ZSgpLCAm
ZGF0ZSk7Ci0gICAgaWYgKCFoYXNWYWx1ZSkKLSAgICAgICAgc2V0TWlsbGlzZWNvbmRUb0RhdGVD
b21wb25lbnRzKGxheW91dFBhcmFtZXRlcnMuc3RlcFJhbmdlLm1pbmltdW0oKS50b0RvdWJsZSgp
LCAmZGF0ZSk7Ci0KICAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJhbWV0ZXJzLnNo
b3VsZEhhdmVTZWNvbmRGaWVsZCgpKSB7Ci0gICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRp
bWVGb3JtYXQgPSBsb2NhbGl6ZXIudGltZUZvcm1hdCgpOworICAgICAgICBsYXlvdXRQYXJhbWV0
ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGl6ZXIudGltZUZvcm1h
dCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQgPSAi
SEg6bW06c3MiOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRp
bWVGb3JtYXQgPSBsb2NhbGl6ZXIuc2hvcnRUaW1lRm9ybWF0KCk7CisgICAgICAgIGxheW91dFBh
cmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5zaG9y
dFRpbWVGb3JtYXQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1l
Rm9ybWF0ID0gIkhIOm1tIjsKICAgICB9Ci0KLSAgICBpZiAoaGFzVmFsdWUpCi0gICAgICAgIG1f
ZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0VmFsdWVBc0RhdGUobGF5b3V0UGFyYW1ldGVycywgZGF0
ZSk7Ci0gICAgZWxzZQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldEVtcHR5VmFs
dWUobGF5b3V0UGFyYW1ldGVycywgZGF0ZSk7Ci19Ci0jZWxzZQotVGltZUlucHV0VHlwZTo6VGlt
ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQotICAgIDogQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlKGVsZW1lbnQpCi17CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJ
bnB1dFR5cGUuaAppbmRleCA1OWUyNzIxMDJlZmFkNzI2NDYzN2NkMmM1YTBjZWU2YTM2OTJiOTRi
Li5iYzZkNjVlZjUwOTBhODE4ZDRlM2MwOTZjYmVlNTIwOGQ1ZjA1YzlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtMzUsMTMgKzM1LDE1IEBACiAKICNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9USU1FKQogCituYW1lc3BhY2UgV2ViQ29yZSB7CisKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKLSNpbmNsdWRlICJEYXRlVGltZUVkaXRFbGVtZW50
LmgiCit0eXBlZGVmIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlIEJhc2VU
aW1lSW5wdXRUeXBlOworI2Vsc2UKK3R5cGVkZWYgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIEJh
c2VUaW1lSW5wdXRUeXBlOwogI2VuZGlmCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
VGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgeworY2xhc3Mg
VGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCopOwog
CkBAIC02MCw1MCArNjIsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVs
ZCgpIGNvbnN0IE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBM
RV9GSUVMRFMpCi0gICAgY2xhc3MgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCA6IHB1Ymxp
YyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIHsKLSAgICAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCk7Ci0KLSAgICBwdWJs
aWM6Ci0gICAgICAgIERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoVGltZUlucHV0VHlwZSYp
OwotICAgICAgICB2aXJ0dWFsIH5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCk7Ci0KLSAg
ICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1ckZyb21Db250cm9sKCkgT1ZF
UlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1c09uQ29udHJvbCgpIE9W
RVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xWYWx1ZUNoYW5n
ZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRp
bWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgT1ZFUlJJREUg
RklOQUw7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJEaXNhYmxlZCgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJv
bE93bmVyUmVhZE9ubHkoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLQotICAgICAgICBUaW1lSW5w
dXRUeXBlJiBtX3RpbWVJbnB1dFR5cGU7Ci0gICAgfTsKLQotICAgIGZyaWVuZCBjbGFzcyBEYXRl
VGltZUVkaXRDb250cm9sT3duZXJJbXBsOwotCi0gICAgLy8gSW5wdXRUeXBlIGZ1bmN0aW9ucwot
ICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25z
dCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgp
IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgp
IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5n
ZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3Jl
UHJldmlvdXNTZWxlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBmb3J3
YXJkRXZlbnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
S2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFs
IGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZp
cnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IE9W
RVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IE9WRVJS
SURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBtaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKSBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVhZG9ubHlBdHRyaWJ1dGVDaGFuZ2Vk
KCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0
YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFs
IEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBPVkVSUklERSBG
SU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1
ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFIEZJTkFMOwotICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwot
ICAgIHZpcnR1YWwgdm9pZCBzdGVwQXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFIEZJTkFMOwot
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbm5lclRleHRWYWx1ZSgpIE9WRVJSSURFIEZJTkFMOwot
Ci0gICAgRGF0ZVRpbWVFZGl0RWxlbWVudCogbV9kYXRlVGltZUVkaXRFbGVtZW50OwotICAgIERh
dGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwgbV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
OworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0
ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1l
dGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAjZW5k
aWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165916</attachid>
            <date>2012-09-26 19:21:05 -0700</date>
            <delta_ts>2012-09-26 21:06:38 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-97521-20120927112023.patch</filename>
            <type>text/plain</type>
            <size>36498</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWExZTYxN2UwM2U4MTA2
MGM0YmUzNTZlZDUwYjA5ZjEwNzNmN2JjMS4uM2UzYjUwYmNkOThmMTRjNzdjY2I2OTBmYTQxZWZj
NTI5MjZjNzJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcwIEBACiAyMDEyLTA5LTI2ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW0Zvcm1zXSBNb3Zl
IG11bHRpcGxlIGZpZWxkcyByZWxhdGVkIGZ1bmN0aW9ucyB0byBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUgZnJvbSBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzUyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBuZXcgY2xhc3MgQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUKKyAgICAgICAgIGZvciBzaGFyaW5nIGNvZGUg
YW1vbmcgbXVsdGlwbGUgZmllbGRzIGRhdGUvdGltZSBpbnB1dCBVSS4KKworICAgICAgICBNZW1i
ZXIgZnVuY3Rpb25zIGluIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlIGFy
ZSBtb3ZlZAorICAgICAgICBmcm9tIFRpbWVJbnB1dFR5cGUuIEJhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLntjcHAsaH0KKyAgICAgICAgd2VyZSBjb3BpZWQgZnJvbSBUaW1l
SW5wdXRUeXBlLntjcHAsaH0gYnkgcjEyOTcyMS4KKworICAgICAgICBUaGlzIHBhdGNoIGFmZmVj
dHMgcG9ydHMgd2hpY2ggZW5hYmxlIGJvdGggRU5BQkxFX0lOUFVUX1RZUEVfVElNRSBhbmQKKyAg
ICAgICAgRU5BQkxFX0lOUFVUX01VTFRJUExFX0ZJRUxEU19VSS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgYmVoYXZpb3IuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6IENoYW5nZWQgdG8gaGF2ZSBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlLntjcHAsaH0KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oOgorICAgICAgICAoQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKTogRXhwb3NlZCBz
ZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMgYXMgcHJvdGVjdGVkIGZvciBCYXNlTXVsdGlw
bGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKS4K
KyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpEYXRlVGltZUVkaXRDb250cm9sT3du
ZXJJbXBsKTogTW92ZWQgZnJvbSBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3du
ZXJJbXBsLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6On5EYXRlVGltZUVkaXRDb250
cm9sT3duZXJJbXBsKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVs
ZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZGlk
Qmx1ckZyb21Db250cm9sKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVG
aWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6
ZGlkRm9jdXNPbkNvbnRyb2wpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
OjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGw6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUpOiBNb3ZlZCBmcm9tIFRpbWVJbnB1
dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwgYW5kIGNoYW5nZWQgdG8gY2FsbCBm
b3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKCkgaW4gQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGVJbnB1dFR5cGUgY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlw
bGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFzQ3VzdG9tRm9jdXNMb2dpYyk6IE1vdmVk
IGZyb20gVGltZUlucHV0VHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0Vk
aXRDb250cm9sT3duZXJEaXNhYmxlZCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11
bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGw6OmlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KTogZGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6QmFzZU11bHRpcGxl
RmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpibHVyKTogZGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlUmVu
ZGVyZXIpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKTogZGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNo
YWRvd1N1YnRyZWUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKTogZGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlw
ZTo6Zm9jdXMpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlOjpmb3J3YXJkRXZlbnQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaXNhYmxlZEF0dHJp
YnV0ZUNoYW5nZWQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQpOiBkaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjppc0tl
eWJvYXJkRm9jdXNhYmxlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVG
aWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNNb3VzZUZvY3VzYWJsZSk6IGRpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6Om1p
bk9yTWF4QXR0cmlidXRlQ2hhbmdlZCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11
bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnJlYWRvbmx5QXR0cmlidXRlQ2hhbmdl
ZCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmlzVGV4dEZpZWxkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSk6IGRpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldHVwTGF5b3V0
UGFyYW1ldGVycyk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxkVXNlSW5wdXRN
ZXRob2QpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjpzdGVwQXR0cmlidXRlQ2hhbmdlZCk6IGRpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlu
bmVyVGV4dFZhbHVlKTogTW92ZWQgZnJvbSBUaW1lSW5wdXRUeXBlIGFuZCBjaGFuZ2VkIHRvIGNh
bGwgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKCkgdG8gc2V0IGRhdGUvdGltZSBmb3JtYXQgYnkgZWFj
aCBpbnB1dCB0eXBlLgorICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlKTogQWRkZWQuCisgICAgICAgIChEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKTog
TW92ZWQgZnJvbSBUaW1lSW5wdXRUeXBlLgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5j
cHA6IE1vdmVkIG11bHRpcGxlIGZpZWxkcyBVSSByZWxhdGVkIGZ1bmN0aW9ucyB0byBCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJ
bnB1dFR5cGU6OlRpbWVJbnB1dFR5cGUpOiBDaGFuZ2VkIGJhc2UgY2xhc3MgbmFtZSB0byBCYXNl
VGltZUlucHV0LgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRp
bWVGaWVsZHNTdGF0ZSk6IE1vdmVkIGZyb20gVGltZUlOcHV0OjpEYXRlVEltZUVkaXRDb250cm9s
T3duZXJJbXBsIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6c2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKTogQWRkZWQgZm9yIHNldCB0aW1lIGZvcm1hdC4KKyAgICAgICAgKiBo
dG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFRpbWVJbnB1dFR5cGUpOiBDaGFuZWQgYmFz
ZSBjbGFzcyB0byBCYXNlVGltZUlucHV0IHdoaWNoIGlzIGFsaWFzIG9mIEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZSBvciBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS4KKwor
MjAxMi0wOS0yNiAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIFtGb3Jtc10gQ29weSBUaW1lSW5wdXRUeXBlLntjcHAsaH0gdG8gQmFzZU11bHRpcGxlRmll
bGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUue2NwcCxofQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2NDkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJhNjJm
Mjc5M2NmODhiOTk5ZDY0ZjkwMTRjNjhmYWJjMDg2NTJkZGYuLjg0MDBjMzE1NTdiMTU4ODEyN2Vi
MTRhODY3NzEyMDViMzQzZWU1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQwMDQsNiArNDAwNCw4
IEBACiAgICAgICAgICAgICAnaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oJywK
ICAgICAgICAgICAgICdodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAnLAogICAgICAg
ICAgICAgJ2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgnLAorICAgICAgICAgICAgJ2h0
bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwJywKKyAgICAgICAg
ICAgICdodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1s
L0Jhc2VUZXh0SW5wdXRUeXBlLmgnLAogICAgICAgICAgICAgJ2h0bWwvQnV0dG9uSW5wdXRUeXBl
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
aAppbmRleCBhNDk5MTBmZGVjM2UyNGUxNDU3YTdhOGNjMDVmMzJkMWM3ZGJiYjJkLi5mMDU0NDZl
YzkwOTRhMTczODczMDM3MmQ2ZWUxYTkwODJkNjk4Y2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQ2LDEwICs0NiwxMCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50cyhjb25zdCBTdHJp
bmcmLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5n
IHNlcmlhbGl6ZShjb25zdCBEZWNpbWFsJikgY29uc3QgT1ZFUlJJREU7CiAgICAgU3RyaW5nIHNl
cmlhbGl6ZVdpdGhDb21wb25lbnRzKGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3Q7CisgICAg
dmlydHVhbCBib29sIHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUsIERhdGVD
b21wb25lbnRzKikgY29uc3QgPSAwOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBwYXJz
ZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChjb25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwg
RGF0ZUNvbXBvbmVudHMqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIHNldE1pbGxpc2Vj
b25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUsIERhdGVDb21wb25lbnRzKikgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoZG91YmxlLCBFeGNlcHRpb25Db2RlJikgY29uc3QgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGQyZDAxYThjZDEwYmVhNmIy
ZWFkNDliMzJjNDhkNzg2MTQyM2NmN2YuLmQ0NWUwY2FjODVhN2FkMTBjZTNlODFmYzhiZDM3Njk3
YzJlZWFkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmll
bGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0yOSwxOTMgKzI5LDEw
MiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJUaW1lSW5wdXRUeXBl
LmgiCisjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKKyNpbmNsdWRlICJCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNv
bXBvbmVudHMuaCIKLSNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCi0jaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKLSNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KLSNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLSNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9USU1FKQotI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCiAjaW5j
bHVkZSAiRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIK
ICNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVyLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgot
I2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKLQotc3RhdGljIGNvbnN0IGludCB0aW1lRGVmYXVsdFN0ZXAgPSA2MDsKLXN0YXRpYyBjb25z
dCBpbnQgdGltZURlZmF1bHRTdGVwQmFzZSA9IDA7Ci1zdGF0aWMgY29uc3QgaW50IHRpbWVTdGVw
U2NhbGVGYWN0b3IgPSAxMDAwOwotCi1QYXNzT3duUHRyPElucHV0VHlwZT4gVGltZUlucHV0VHlw
ZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsKLX0KLQotY29uc3QgQXRvbWljU3RyaW5n
JiBUaW1lSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAotewotICAgIHJldHVybiBJ
bnB1dFR5cGVOYW1lczo6dGltZSgpOwotfQotCi1EYXRlQ29tcG9uZW50czo6VHlwZSBUaW1lSW5w
dXRUeXBlOjpkYXRlVHlwZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjpU
aW1lOwotfQotCi1EZWNpbWFsIFRpbWVJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgp
IGNvbnN0Ci17Ci0gICAgZG91YmxlIGN1cnJlbnQgPSBjdXJyZW50VGltZU1TKCk7Ci0gICAgZG91
YmxlIHV0Y09mZnNldCA9IGNhbGN1bGF0ZVVUQ09mZnNldCgpOwotICAgIGRvdWJsZSBkc3RPZmZz
ZXQgPSBjYWxjdWxhdGVEU1RPZmZzZXQoY3VycmVudCwgdXRjT2Zmc2V0KTsKLSAgICBpbnQgb2Zm
c2V0ID0gc3RhdGljX2Nhc3Q8aW50PigodXRjT2Zmc2V0ICsgZHN0T2Zmc2V0KSAvIG1zUGVyTWlu
dXRlKTsKLSAgICBjdXJyZW50ICs9IG9mZnNldCAqIG1zUGVyTWludXRlOwotCi0gICAgRGF0ZUNv
bXBvbmVudHMgZGF0ZTsKLSAgICBkYXRlLnNldE1pbGxpc2Vjb25kc1NpbmNlTWlkbmlnaHQoY3Vy
cmVudCk7Ci0gICAgZG91YmxlIG1pbGxpc2Vjb25kcyA9IGRhdGUubWlsbGlzZWNvbmRzU2luY2VF
cG9jaCgpOwotICAgIEFTU0VSVChpc2Zpbml0ZShtaWxsaXNlY29uZHMpKTsKLSAgICByZXR1cm4g
RGVjaW1hbDo6ZnJvbURvdWJsZShtaWxsaXNlY29uZHMpOwotfQotCi1TdGVwUmFuZ2UgVGltZUlu
cHV0VHlwZTo6Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcp
IGNvbnN0Ci17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdGVwUmFuZ2U6OlN0ZXBE
ZXNjcmlwdGlvbiwgc3RlcERlc2NyaXB0aW9uLCAodGltZURlZmF1bHRTdGVwLCB0aW1lRGVmYXVs
dFN0ZXBCYXNlLCB0aW1lU3RlcFNjYWxlRmFjdG9yLCBTdGVwUmFuZ2U6OlNjYWxlZFN0ZXBWYWx1
ZVNob3VsZEJlSW50ZWdlcikpOwotCi0gICAgY29uc3QgRGVjaW1hbCBzdGVwQmFzZSA9IHBhcnNl
VG9OdW1iZXIoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCAwKTsKLSAgICBj
b25zdCBEZWNpbWFsIG1pbmltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFzdEdldEF0
dHJpYnV0ZShtaW5BdHRyKSwgRGVjaW1hbDo6ZnJvbURvdWJsZShEYXRlQ29tcG9uZW50czo6bWlu
aW11bVRpbWUoKSkpOwotICAgIGNvbnN0IERlY2ltYWwgbWF4aW11bSA9IHBhcnNlVG9OdW1iZXIo
ZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCBEZWNpbWFsOjpmcm9tRG91Ymxl
KERhdGVDb21wb25lbnRzOjptYXhpbXVtVGltZSgpKSk7Ci0gICAgY29uc3QgRGVjaW1hbCBzdGVw
ID0gU3RlcFJhbmdlOjpwYXJzZVN0ZXAoYW55U3RlcEhhbmRsaW5nLCBzdGVwRGVzY3JpcHRpb24s
IGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShzdGVwQXR0cikpOwotICAgIHJldHVybiBTdGVw
UmFuZ2Uoc3RlcEJhc2UsIG1pbmltdW0sIG1heGltdW0sIHN0ZXAsIHN0ZXBEZXNjcmlwdGlvbik7
Ci19Ci0KLWJvb2wgVGltZUlucHV0VHlwZTo6cGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwo
Y29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMq
IG91dCkgY29uc3QKK0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRl
VGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlJiBkYXRlQW5kVGltZUlucHV0VHlw
ZSkKKyAgICA6IG1fZGF0ZUFuZFRpbWVJbnB1dFR5cGUoZGF0ZUFuZFRpbWVJbnB1dFR5cGUpCiB7
Ci0gICAgQVNTRVJUKG91dCk7Ci0gICAgdW5zaWduZWQgZW5kOwotICAgIHJldHVybiBvdXQtPnBh
cnNlVGltZShjaGFyYWN0ZXJzLCBsZW5ndGgsIDAsIGVuZCkgJiYgZW5kID09IGxlbmd0aDsKIH0K
IAotYm9vbCBUaW1lSW5wdXRUeXBlOjpzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91
YmxlIHZhbHVlLCBEYXRlQ29tcG9uZW50cyogZGF0ZSkgY29uc3QKK0Jhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjp+RGF0
ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCgpCiB7Ci0gICAgQVNTRVJUKGRhdGUpOwotICAgIHJl
dHVybiBkYXRlLT5zZXRNaWxsaXNlY29uZHNTaW5jZU1pZG5pZ2h0KHZhbHVlKTsKIH0KIAotYm9v
bCBUaW1lSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLSNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQotCi1UaW1lSW5wdXRU
eXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpEYXRlVGltZUVkaXRDb250cm9sT3du
ZXJJbXBsKFRpbWVJbnB1dFR5cGUmIHRpbWVJbnB1dFR5cGUpCi0gICAgOiBtX3RpbWVJbnB1dFR5
cGUodGltZUlucHV0VHlwZSkKLXsKLX0KLQotVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29u
dHJvbE93bmVySW1wbDo6fkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKQotewotfQotCi12
b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRpZEJsdXJG
cm9tQ29udHJvbCgpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
OjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRCbHVyRnJvbUNvbnRyb2woKQogewog
ICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY2FsbCBibHVyKCkuIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIHdoZW4gY29udHJvbAogICAgIC8vIGxvc3QgZm9jdXMuCiAKICAgICAvLyBSZW1vdmUgZm9j
dXMgcmluZyBieSBDU1MgImZvY3VzIiBwc2V1ZG8gY2xhc3MuCi0gICAgbV90aW1lSW5wdXRUeXBl
LmVsZW1lbnQoKS0+c2V0Rm9jdXMoZmFsc2UpOworICAgIG1fZGF0ZUFuZFRpbWVJbnB1dFR5cGUu
ZWxlbWVudCgpLT5zZXRGb2N1cyhmYWxzZSk7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6RGF0
ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZGlkRm9jdXNPbkNvbnRyb2woKQordm9pZCBCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93
bmVySW1wbDo6ZGlkRm9jdXNPbkNvbnRyb2woKQogewogICAgIC8vIFdlIGRvbid0IG5lZWQgdG8g
Y2FsbCBmb2N1cygpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wKICAgICAv
LyBnb3QgZm9jdXMuCiAKICAgICAvLyBBZGQgZm9jdXMgcmluZyBieSBDU1MgImZvY3VzIiBwc2V1
ZG8gY2xhc3MuCi0gICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXModHJ1ZSk7
CisgICAgbV9kYXRlQW5kVGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKHRydWUpOwog
fQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVk
aXRDb250cm9sVmFsdWVDaGFuZ2VkKCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmVkaXRDb250cm9sVmFs
dWVDaGFuZ2VkKCkKIHsKLSAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQobV90aW1l
SW5wdXRUeXBlLmVsZW1lbnQoKSk7Ci0gICAgaW5wdXQtPnNldFZhbHVlSW50ZXJuYWwobV90aW1l
SW5wdXRUeXBlLm1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+dmFsdWUoKSwgRGlzcGF0Y2hOb0V2ZW50
KTsKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaW5wdXQobV9kYXRlQW5kVGltZUlucHV0
VHlwZS5lbGVtZW50KCkpOworICAgIGlucHV0LT5zZXRWYWx1ZUludGVybmFsKG1fZGF0ZUFuZFRp
bWVJbnB1dFR5cGUubV9kYXRlVGltZUVkaXRFbGVtZW50LT52YWx1ZSgpLCBEaXNwYXRjaE5vRXZl
bnQpOwogICAgIGlucHV0LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgaW5wdXQtPmRpc3Bh
dGNoRm9ybUNvbnRyb2xJbnB1dEV2ZW50KCk7CiAgICAgaW5wdXQtPmRpc3BhdGNoRm9ybUNvbnRy
b2xDaGFuZ2VFdmVudCgpOwogICAgIGlucHV0LT5ub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKCk7CiB9
CiAKLQotU3RyaW5nIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0
ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKK1N0cmluZyBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6Zm9ybWF0RGF0ZVRp
bWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkc1N0
YXRlKSBjb25zdAogewotICAgIGlmICghZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNIb3VyKCkgfHwg
IWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzTWludXRlKCkgfHwgIWRhdGVUaW1lRmllbGRzU3RhdGUu
aGFzQU1QTSgpKQotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICBpZiAoZGF0ZVRp
bWVGaWVsZHNTdGF0ZS5oYXNNaWxsaXNlY29uZCgpICYmIGRhdGVUaW1lRmllbGRzU3RhdGUubWls
bGlzZWNvbmQoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlMDJ1OiUwMnU6JTAy
dS4lMDN1IiwKLSAgICAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLmhvdXIyMygpLAot
ICAgICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubWludXRlKCksCi0gICAgICAgICAg
ICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNTZWNvbmQoKSA/IGRhdGVUaW1lRmllbGRzU3Rh
dGUuc2Vjb25kKCkgOiAwLAotICAgICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubWls
bGlzZWNvbmQoKSk7Ci0gICAgaWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzU2Vjb25kKCkgJiYg
ZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZWNvbmQoKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9y
bWF0KCIlMDJ1OiUwMnU6JTAydSIsCi0gICAgICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0
ZS5ob3VyMjMoKSwKLSAgICAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbnV0ZSgp
LAotICAgICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2Vjb25kKCkpOwotICAgIHJl
dHVybiBTdHJpbmc6OmZvcm1hdCgiJTAydTolMDJ1IiwgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3Vy
MjMoKSwgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taW51dGUoKSk7CisgICAgcmV0dXJuIG1fZGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShkYXRlVGltZUZpZWxkc1N0
YXRlKTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29u
c3QKK2Jvb2wgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omhhc0N1c3Rv
bUZvY3VzTG9naWMoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBUaW1l
SW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3du
ZXJEaXNhYmxlZCgpIGNvbnN0Citib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJE
aXNhYmxlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCkt
PnJlYWRPbmx5KCk7CisgICAgcmV0dXJuIG1fZGF0ZUFuZFRpbWVJbnB1dFR5cGUuZWxlbWVudCgp
LT5yZWFkT25seSgpOwogfQogCi1ib29sIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRy
b2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QKK2Jvb2wgQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+ZGlzYWJsZWQoKTsKKyAgICByZXR1cm4gbV9k
YXRlQW5kVGltZUlucHV0VHlwZS5lbGVtZW50KCktPmRpc2FibGVkKCk7CiB9CiAKLVRpbWVJbnB1
dFR5cGU6OlRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKK0Jhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAgIDogQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCiAgICAgLCBtX2RhdGVUaW1lRWRpdEVsZW1lbnQoMCkK
ICAgICAsIG1fZGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCgqdGhpcykKIHsKIH0KIAotVGlt
ZUlucHV0VHlwZTo6flRpbWVJbnB1dFR5cGUoKQorQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6On5CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSgpCiB7
CiAgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKICAgICAgICAgbV9kYXRlVGltZUVkaXRF
bGVtZW50LT5yZW1vdmVFZGl0Q29udHJvbE93bmVyKCk7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlw
ZTo6Ymx1cigpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpi
bHVyKCkKIHsKICAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQogICAgICAgICBtX2RhdGVU
aW1lRWRpdEVsZW1lbnQtPmJsdXJCeU93bmVyKCk7CiB9CiAKLVJlbmRlck9iamVjdCogVGltZUlu
cHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSog
c3R5bGUpIGNvbnN0CitSZW5kZXJPYmplY3QqIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxl
KiBzdHlsZSkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihh
cmVuYSwgc3R5bGUpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogCkBA
IC0yMjUsNyArMTM0LDcgQEAgdm9pZCBUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KCkKICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6
OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBpZiAobV9kYXRlVGlt
ZUVkaXRFbGVtZW50KSB7CiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3ZlRWRp
dENvbnRyb2xPd25lcigpOwpAQCAtMjM0LDU2ICsxNDMsNjEgQEAgdm9pZCBUaW1lSW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpk
ZXN0cm95U2hhZG93U3VidHJlZSgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmZvY3VzKGJv
b2wpCitTdHJpbmcgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmZvcm1h
dERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0Cit7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmZvY3VzKGJvb2wpCiB7CiAgICAgaWYgKG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudCkKICAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5mb2N1c0J5T3duZXIo
KTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQor
dm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Zm9yd2FyZEV2ZW50
KEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQogICAgICAg
ICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQog
Ci12b2lkIFRpbWVJbnB1dFR5cGU6OmRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpCit2b2lkIEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaXNhYmxlZEF0dHJpYnV0ZUNo
YW5nZWQoKQogewogICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCiAgICAgICAgIG1fZGF0
ZVRpbWVFZGl0RWxlbWVudC0+ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKIH0KIAotdm9pZCBUaW1l
SW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCit2b2lk
IEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZl
bnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgZm9yd2FyZEV2ZW50KGV2ZW50KTsKIH0K
IAotYm9vbCBUaW1lSW5wdXRUeXBlOjppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQq
KSBjb25zdAorYm9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNL
ZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QKIHsKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0Citi
b29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNh
YmxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlw
ZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGU6Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpCiB7CiAgICAgdXBk
YXRlSW5uZXJUZXh0VmFsdWUoKTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpyZWFkb25seUF0
dHJpYnV0ZUNoYW5nZWQoKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZTo6cmVhZG9ubHlBdHRyaWJ1dGVDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9kYXRlVGltZUVk
aXRFbGVtZW50KQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnJlYWRPbmx5U3RhdGVD
aGFuZ2VkKCk7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6aXNUZXh0RmllbGQoKSBjb25zdAor
Ym9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNUZXh0RmllbGQo
KSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpy
ZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKK3Zv
aWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlKQogewogICAgIGlmICghbV9k
YXRlVGltZUVkaXRFbGVtZW50KQogICAgICAgICByZXR1cm47CkBAIC0yOTQsNyArMjA4LDcgQEAg
dm9pZCBUaW1lSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29u
dHJvbFN0YXRlJiBzdGF0ZSkKICAgICBlbGVtZW50KCktPnNldFZhbHVlSW50ZXJuYWwobV9kYXRl
VGltZUVkaXRFbGVtZW50LT52YWx1ZSgpLCBEaXNwYXRjaE5vRXZlbnQpOwogfQogCi1Gb3JtQ29u
dHJvbFN0YXRlIFRpbWVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKK0Zv
cm1Db250cm9sU3RhdGUgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNh
dmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxl
bWVudCkKICAgICAgICAgcmV0dXJuIEZvcm1Db250cm9sU3RhdGUoKTsKQEAgLTMwMiwyNyArMjE2
LDM0IEBAIEZvcm1Db250cm9sU3RhdGUgVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3Rh
dGUoKSBjb25zdAogICAgIHJldHVybiBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlQXNEYXRl
VGltZUZpZWxkc1N0YXRlKCkuc2F2ZUZvcm1Db250cm9sU3RhdGUoKTsKIH0KIAotdm9pZCBUaW1l
SW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHZh
bHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQordm9pZCBC
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0
ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmLCBjb25zdCBEYXRlQ29t
cG9uZW50cyYpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQg
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0
cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJl
aGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgSW5wdXRUeXBlOjpzZXRWYWx1ZShzYW5pdGl6
ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKICAgICBpZiAodmFsdWVDaGFu
Z2VkKQogICAgICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwogfQogCi1ib29sIFRpbWVJbnB1
dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QKK2Jvb2wgQmFzZU11bHRpcGxlRmll
bGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6c3RlcEF0dHJpYnV0
ZUNoYW5nZWQoKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6
c3RlcEF0dHJpYnV0ZUNoYW5nZWQoKQogewogICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7CiB9
CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUoKQordm9pZCBCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUo
KQogewotICAgIGlmICghbV9kYXRlVGltZUVkaXRFbGVtZW50KQorICAgIGlmICghbV9kYXRlVGlt
ZUVkaXRFbGVtZW50KSB7CisgICAgICAgIFRleHRGaWVsZElucHV0VHlwZTo6dXBkYXRlSW5uZXJU
ZXh0VmFsdWUoKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIExvY2FsaXplciYgbG9j
YWxpemVyID0gZWxlbWVudCgpLT5kb2N1bWVudCgpLT5nZXRMb2NhbGl6ZXIoZWxlbWVudCgpLT5j
b21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSk7CiAgICAgRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5
b3V0UGFyYW1ldGVycyBsYXlvdXRQYXJhbWV0ZXJzKGxvY2FsaXplciwgY3JlYXRlU3RlcFJhbmdl
KEFueUlzRGVmYXVsdFN0ZXApKTsKQEAgLTMzMiwyNSArMjUzLDEzIEBAIHZvaWQgVGltZUlucHV0
VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUoKQogICAgIGlmICghaGFzVmFsdWUpCiAgICAgICAg
IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhsYXlvdXRQYXJhbWV0ZXJzLnN0ZXBSYW5n
ZS5taW5pbXVtKCkudG9Eb3VibGUoKSwgJmRhdGUpOwogCi0gICAgaWYgKGRhdGUuc2Vjb25kKCkg
fHwgbGF5b3V0UGFyYW1ldGVycy5zaG91bGRIYXZlU2Vjb25kRmllbGQoKSkgewotICAgICAgICBs
YXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbG9jYWxpemVyLnRpbWVGb3JtYXQoKTsK
LSAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0ID0gIkhIOm1t
OnNzIjsKLSAgICB9IGVsc2UgewotICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9y
bWF0ID0gbG9jYWxpemVyLnNob3J0VGltZUZvcm1hdCgpOwotICAgICAgICBsYXlvdXRQYXJhbWV0
ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQgPSAiSEg6bW0iOwotICAgIH0KKyAgICBzZXR1cExh
eW91dFBhcmFtZXRlcnMobGF5b3V0UGFyYW1ldGVycywgZGF0ZSk7CiAKICAgICBpZiAoaGFzVmFs
dWUpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0VmFsdWVBc0RhdGUobGF5b3V0
UGFyYW1ldGVycywgZGF0ZSk7CiAgICAgZWxzZQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1l
bnQtPnNldEVtcHR5VmFsdWUobGF5b3V0UGFyYW1ldGVycywgZGF0ZSk7CiB9Ci0jZWxzZQotVGlt
ZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQotICAg
IDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCi17Ci19Ci0jZW5kaWYKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggZjE4NTA1
NDExYzZiN2JjYTgxY2M0MTIwMWU2ZjNhZGRmMWI4YjIzZC4uMDc3NDM3OGQ4M2Y2YmUxYzFjZGMy
MGQ4MGM3NmE3N2MyY2UwOWVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAtMjgsNDMg
KzI4LDMyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgVGltZUlucHV0VHlwZV9o
Ci0jZGVmaW5lIFRpbWVJbnB1dFR5cGVfaAorI2lmbmRlZiBCYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZV9oCisjZGVmaW5lIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlX2gKIAogI2luY2x1ZGUgIkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIgogCi0j
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKLQogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9G
SUVMRFNfVUkpCiAjaW5jbHVkZSAiRGF0ZVRpbWVFZGl0RWxlbWVudC5oIgotI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0
VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqKTsKLQotI2lmIEVOQUJMRShJTlBVVF9NVUxU
SVBMRV9GSUVMRFNfVUkpCi0gICAgdmlydHVhbCB+VGltZUlucHV0VHlwZSgpOwotI2VuZGlmCitj
bGFzcyBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUgeworcHJvdGVjdGVkOgorICAgIEJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5C
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSgpOworICAgIHZpcnR1YWwgU3Ry
aW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYp
IGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29u
c3Q7CiAKIHByaXZhdGU6Ci0gICAgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7Ci0g
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIERlY2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFu
eVN0ZXBIYW5kbGluZykgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHBhcnNlVG9E
YXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRl
Q29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNl
Y29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVsZCgpIGNvbnN0IE9WRVJSSURFOwotCi0j
aWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKKyAgICAvLyBGSVhNRTogRGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVySW1wbCBzaG91bGQgYmUgcmVtb3ZlZCBieSBtb3ZpbmcKKyAgICAv
LyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIGludG8gYmFzZSBjbGFzcyBs
aXN0IG9mCisgICAgLy8gQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuCiAg
ICAgY2xhc3MgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCA6IHB1YmxpYyBEYXRlVGltZUVk
aXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCk7CiAKICAgICBwdWJsaWM6Ci0gICAgICAg
IERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoVGltZUlucHV0VHlwZSYpOworICAgICAgICBE
YXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlJik7CiAgICAgICAgIHZpcnR1YWwgfkRhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGwoKTsKIAogICAgIHByaXZhdGU6CkBAIC03NSw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJEaXNhYmxlZCgpIGNvbnN0IE9WRVJSSURF
IEZJTkFMOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHko
KSBjb25zdCBPVkVSUklERSBGSU5BTDsKIAotICAgICAgICBUaW1lSW5wdXRUeXBlJiBtX3RpbWVJ
bnB1dFR5cGU7CisgICAgICAgIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
JiBtX2RhdGVBbmRUaW1lSW5wdXRUeXBlOwogICAgIH07CiAKICAgICBmcmllbmQgY2xhc3MgRGF0
ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDsKQEAgLTEwNCw3ICs5Myw2IEBAIHByaXZhdGU6CiAK
ICAgICBEYXRlVGltZUVkaXRFbGVtZW50KiBtX2RhdGVUaW1lRWRpdEVsZW1lbnQ7CiAgICAgRGF0
ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCBtX2RhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw7
Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuY3BwCmluZGV4IGQyZDAxYThjZDEwYmVhNmIyZWFkNDliMzJjNDhkNzg2MTQy
M2NmN2YuLjQ4YTY4NGMzNWU2ZTU5YmVmNWFjY2E2ZWMwNzc0MThkMGEwMmRlZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtNDEsMTMgKzQxLDEwIEBACiAjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCisKICNp
ZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQogI2luY2x1ZGUgIkRhdGVUaW1lRmll
bGRzU3RhdGUuaCIKLSNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCi0jaW5jbHVkZSAiRm9ybUNv
bnRyb2xsZXIuaCIKLSNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxp
emVyLmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogI2VuZGlmCiAKQEAgLTU5LDYgKzU2LDExIEBAIHN0YXRpYyBjb25zdCBpbnQgdGlt
ZURlZmF1bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50IHRpbWVEZWZhdWx0U3RlcEJhc2Ug
PSAwOwogc3RhdGljIGNvbnN0IGludCB0aW1lU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAorVGlt
ZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiAgZWxlbWVudCkKKyAg
ICA6IEJhc2VUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCit7Cit9CisKIFBhc3NPd25QdHI8SW5wdXRU
eXBlPiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsK
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVJbnB1dFR5cGUoZWxlbWVudCkpOwpAQCAtMTIw
LDQ1ICsxMjIsNyBAQCBib29sIFRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxkKCkgY29uc3QKIAog
I2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCiAKLVRpbWVJbnB1dFR5cGU6OkRh
dGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwo
VGltZUlucHV0VHlwZSYgdGltZUlucHV0VHlwZSkKLSAgICA6IG1fdGltZUlucHV0VHlwZSh0aW1l
SW5wdXRUeXBlKQotewotfQotCi1UaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3du
ZXJJbXBsOjp+RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCgpCi17Ci19Ci0KLXZvaWQgVGlt
ZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZGlkQmx1ckZyb21Db250
cm9sKCkKLXsKLSAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgYmx1cigpLiBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wKLSAgICAvLyBsb3N0IGZvY3VzLgotCi0gICAgLy8g
UmVtb3ZlIGZvY3VzIHJpbmcgYnkgQ1NTICJmb2N1cyIgcHNldWRvIGNsYXNzLgotICAgIG1fdGlt
ZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKGZhbHNlKTsKLX0KLQotdm9pZCBUaW1lSW5w
dXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRGb2N1c09uQ29udHJvbCgp
Ci17Ci0gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjYWxsIGZvY3VzKCkuIFRoaXMgZnVuY3Rpb24g
aXMgY2FsbGVkIHdoZW4gY29udHJvbAotICAgIC8vIGdvdCBmb2N1cy4KLQotICAgIC8vIEFkZCBm
b2N1cyByaW5nIGJ5IENTUyAiZm9jdXMiIHBzZXVkbyBjbGFzcy4KLSAgICBtX3RpbWVJbnB1dFR5
cGUuZWxlbWVudCgpLT5zZXRGb2N1cyh0cnVlKTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpE
YXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpCi17
Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KG1fdGltZUlucHV0VHlwZS5lbGVt
ZW50KCkpOwotICAgIGlucHV0LT5zZXRWYWx1ZUludGVybmFsKG1fdGltZUlucHV0VHlwZS5tX2Rh
dGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCk7Ci0gICAgaW5wdXQt
PnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbElu
cHV0RXZlbnQoKTsKLSAgICBpbnB1dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7
Ci0gICAgaW5wdXQtPm5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQoKTsKLX0KLQotCi1TdHJpbmcgVGlt
ZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6Zm9ybWF0RGF0ZVRpbWVG
aWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRl
KSBjb25zdAorU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKIHsK
ICAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzSG91cigpIHx8ICFkYXRlVGltZUZpZWxk
c1N0YXRlLmhhc01pbnV0ZSgpIHx8ICFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc0FNUE0oKSkKICAg
ICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CkBAIC0xNzYsMTc5ICsxNDAsMTUgQEAgU3RyaW5n
IFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmZvcm1hdERhdGVU
aW1lRmllbGRzU3RhdGUoY28KICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiUwMnU6JTAydSIs
IGRhdGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksIGRhdGVUaW1lRmllbGRzU3RhdGUubWludXRl
KCkpOwogfQogCi1ib29sIFRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25z
dAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGlt
ZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJEaXNhYmxlZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnJlYWRPbmx5KCk7Ci19
Ci0KLWJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNF
ZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVJbnB1
dFR5cGUuZWxlbWVudCgpLT5kaXNhYmxlZCgpOwotfQotCi1UaW1lSW5wdXRUeXBlOjpUaW1lSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUoZWxlbWVudCkKLSAgICAsIG1fZGF0ZVRpbWVFZGl0RWxlbWVudCgwKQotICAgICwg
bV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCp0aGlzKQotewotfQotCi1UaW1lSW5wdXRU
eXBlOjp+VGltZUlucHV0VHlwZSgpCi17Ci0gICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkK
LSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5yZW1vdmVFZGl0Q29udHJvbE93bmVyKCk7
Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6Ymx1cigpCi17Ci0gICAgaWYgKG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5ibHVyQnlPd25lcigp
OwotfQotCi1SZW5kZXJPYmplY3QqIFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRl
ckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAotewotICAgIHJldHVybiBJ
bnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKGFyZW5hLCBzdHlsZSk7Ci19Ci0KLXZvaWQgVGltZUlu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCi17Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+
c2hhZG93KCkpOwotCi0gICAgUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGRhdGVUaW1lRWRp
dEVsZW1lbnQoRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQo
KSwgbV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKSk7Ci0gICAgbV9kYXRlVGltZUVkaXRF
bGVtZW50ID0gZGF0ZVRpbWVFZGl0RWxlbWVudC5nZXQoKTsKLSAgICBlbGVtZW50KCktPnVzZXJB
Z2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9kYXRlVGltZUVkaXRFbGVtZW50KTsKLSAg
ICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OmRlc3Ry
b3lTaGFkb3dTdWJ0cmVlKCkKLXsKLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KSB7Ci0g
ICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3ZlRWRpdENvbnRyb2xPd25lcigpOwot
ICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSAwOwotICAgIH0KLSAgICBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7Ci19Ci0KLXZvaWQgVGltZUlu
cHV0VHlwZTo6Zm9jdXMoYm9vbCkKK3ZvaWQgVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJh
bWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFt
ZXRlcnMsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAogewotICAgIGlmIChtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+Zm9jdXNC
eU93bmVyKCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBl
dmVudCkKLXsKLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQotICAgICAgICBtX2RhdGVU
aW1lRWRpdEVsZW1lbnQtPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwotfQotCi12b2lkIFRp
bWVJbnB1dFR5cGU6OmRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpCi17Ci0gICAgaWYgKG1fZGF0
ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5kaXNhYmxl
ZFN0YXRlQ2hhbmdlZCgpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25F
dmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKLXsKLSAgICBmb3J3YXJkRXZlbnQoZXZlbnQpOwot
fQotCi1ib29sIFRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVu
dCopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFRpbWVJbnB1dFR5cGU6
OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9p
ZCBUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKQotewotICAgIHVwZGF0
ZUlubmVyVGV4dFZhbHVlKCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6cmVhZG9ubHlBdHRy
aWJ1dGVDaGFuZ2VkKCkKLXsKLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQotICAgICAg
ICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnJlYWRPbmx5U3RhdGVDaGFuZ2VkKCk7Ci19Ci0KLWJv
b2wgVGltZUlucHV0VHlwZTo6aXNUZXh0RmllbGQoKSBjb25zdAotewotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25z
dCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKLXsKLSAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxl
bWVudCkKLSAgICAgICAgcmV0dXJuOwotICAgIERhdGVDb21wb25lbnRzIGRhdGU7Ci0gICAgc2V0
TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGNyZWF0ZVN0ZXBSYW5nZShBbnlJc0RlZmF1bHRT
dGVwKS5taW5pbXVtKCkudG9Eb3VibGUoKSwgJmRhdGUpOwotICAgIERhdGVUaW1lRmllbGRzU3Rh
dGUgZGF0ZVRpbWVGaWVsZHNTdGF0ZSA9IERhdGVUaW1lRmllbGRzU3RhdGU6OnJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKHN0YXRlKTsKLSAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVl
QXNEYXRlVGltZUZpZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRzU3RhdGUsIGRhdGUpOwotICAgIGVs
ZW1lbnQoKS0+c2V0VmFsdWVJbnRlcm5hbChtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCks
IERpc3BhdGNoTm9FdmVudCk7Ci19Ci0KLUZvcm1Db250cm9sU3RhdGUgVGltZUlucHV0VHlwZTo6
c2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAotewotICAgIGlmICghbV9kYXRlVGltZUVkaXRF
bGVtZW50KQotICAgICAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZSgpOwotCi0gICAgcmV0dXJu
IG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKS5zYXZl
Rm9ybUNvbnRyb2xTdGF0ZSgpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNv
bnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCi17Ci0gICAgSW5wdXRUeXBlOjpzZXRWYWx1ZShz
YW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKLSAgICBpZiAodmFs
dWVDaGFuZ2VkKQotICAgICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwotfQotCi1ib29sIFRp
bWVJbnB1dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6c3RlcEF0dHJpYnV0ZUNoYW5nZWQoKQot
ewotICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6
dXBkYXRlSW5uZXJUZXh0VmFsdWUoKQotewotICAgIGlmICghbV9kYXRlVGltZUVkaXRFbGVtZW50
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBMb2NhbGl6ZXImIGxvY2FsaXplciA9IGVsZW1lbnQo
KS0+ZG9jdW1lbnQoKS0+Z2V0TG9jYWxpemVyKGVsZW1lbnQoKS0+Y29tcHV0ZUluaGVyaXRlZExh
bmd1YWdlKCkpOwotICAgIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMgbGF5
b3V0UGFyYW1ldGVycyhsb2NhbGl6ZXIsIGNyZWF0ZVN0ZXBSYW5nZShBbnlJc0RlZmF1bHRTdGVw
KSk7Ci0KLSAgICBEYXRlQ29tcG9uZW50cyBkYXRlOwotICAgIGNvbnN0IGJvb2wgaGFzVmFsdWUg
PSBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoZWxlbWVudCgpLT52YWx1ZSgpLCAmZGF0ZSk7Ci0gICAg
aWYgKCFoYXNWYWx1ZSkKLSAgICAgICAgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGxh
eW91dFBhcmFtZXRlcnMuc3RlcFJhbmdlLm1pbmltdW0oKS50b0RvdWJsZSgpLCAmZGF0ZSk7Ci0K
ICAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVTZWNv
bmRGaWVsZCgpKSB7Ci0gICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQgPSBs
b2NhbGl6ZXIudGltZUZvcm1hdCgpOworICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1l
Rm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGl6ZXIudGltZUZvcm1hdCgpOwogICAgICAg
ICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQgPSAiSEg6bW06c3MiOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQgPSBs
b2NhbGl6ZXIuc2hvcnRUaW1lRm9ybWF0KCk7CisgICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0
ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5zaG9ydFRpbWVGb3JtYXQo
KTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0ID0gIkhI
Om1tIjsKICAgICB9Ci0KLSAgICBpZiAoaGFzVmFsdWUpCi0gICAgICAgIG1fZGF0ZVRpbWVFZGl0
RWxlbWVudC0+c2V0VmFsdWVBc0RhdGUobGF5b3V0UGFyYW1ldGVycywgZGF0ZSk7Ci0gICAgZWxz
ZQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldEVtcHR5VmFsdWUobGF5b3V0UGFy
YW1ldGVycywgZGF0ZSk7Ci19Ci0jZWxzZQotVGltZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQotICAgIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
KGVsZW1lbnQpCi17CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApp
bmRleCBmMTg1MDU0MTFjNmI3YmNhODFjYzQxMjAxZTZmM2FkZGYxYjhiMjNkLi40NDQyNTBlZTc4
NzM4NzllYTBlYWMxZjZjZmUxNGE1MTZlNDAyMWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuaApAQCAtMzEsMjQgKzMxLDI1IEBACiAjaWZuZGVmIFRpbWVJbnB1dFR5cGVfaAogI2Rl
ZmluZSBUaW1lSW5wdXRUeXBlX2gKIAotI2luY2x1ZGUgIkJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oIgotCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKLQogI2lmIEVOQUJMRShJTlBVVF9N
VUxUSVBMRV9GSUVMRFNfVUkpCi0jaW5jbHVkZSAiRGF0ZVRpbWVFZGl0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmgiCisjZWxzZQor
I2luY2x1ZGUgIkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIgogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0VHlwZT4g
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqKTsKLQogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9G
SUVMRFNfVUkpCi0gICAgdmlydHVhbCB+VGltZUlucHV0VHlwZSgpOwordHlwZWRlZiBCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSBCYXNlVGltZUlucHV0VHlwZTsKKyNlbHNl
Cit0eXBlZGVmIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSBCYXNlVGltZUlucHV0VHlwZTsKICNl
bmRpZgogCitjbGFzcyBUaW1lSW5wdXRUeXBlIDogcHVibGljIEJhc2VUaW1lSW5wdXRUeXBlIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50Kik7CisKIHByaXZhdGU6CiAgICAgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IE9WRVJSSURFOwpAQCAtNjAsNTAgKzYxLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdCBPVkVSUklERTsKIAogI2lmIEVOQUJMRShJTlBVVF9N
VUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgY2xhc3MgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1w
bCA6IHB1YmxpYyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIHsKLSAgICAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCk7Ci0K
LSAgICBwdWJsaWM6Ci0gICAgICAgIERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoVGltZUlu
cHV0VHlwZSYpOwotICAgICAgICB2aXJ0dWFsIH5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
KCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmx1ckZyb21Db250
cm9sKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGb2N1c09uQ29u
dHJvbCgpIE9WRVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZWRpdENvbnRyb2xW
YWx1ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgZm9y
bWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3Qg
T1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJE
aXNhYmxlZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNF
ZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLQotICAgICAg
ICBUaW1lSW5wdXRUeXBlJiBtX3RpbWVJbnB1dFR5cGU7Ci0gICAgfTsKLQotICAgIGZyaWVuZCBj
bGFzcyBEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOwotCi0gICAgLy8gSW5wdXRUeXBlIGZ1
bmN0aW9ucwotICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5
bGUqKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93
U3VidHJlZSgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95U2hhZG93
U3VidHJlZSgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlZEF0dHJp
YnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoYm9v
bCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwg
dm9pZCBmb3J3YXJkRXZlbnQoRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IE9WRVJSSURFIEZJTkFM
OwotICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBj
b25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNv
bnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBtaW5Pck1heEF0dHJpYnV0ZUNo
YW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVhZG9ubHlBdHRyaWJ1
dGVDaGFuZ2VkKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdCBP
VkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwg
Ym9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFIEZJTkFM
OwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0IE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBzdGVwQXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbm5lclRleHRWYWx1ZSgpIE9WRVJSSURF
IEZJTkFMOwotCi0gICAgRGF0ZVRpbWVFZGl0RWxlbWVudCogbV9kYXRlVGltZUVkaXRFbGVtZW50
OwotICAgIERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwgbV9kYXRlVGltZUVkaXRDb250cm9s
T3duZXJJbXBsOworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZp
cnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5
b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgT1ZFUlJJREUgRklO
QUw7CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165922</attachid>
            <date>2012-09-26 21:06:42 -0700</date>
            <delta_ts>2012-09-26 22:48:48 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-97521-20120927130600.patch</filename>
            <type>text/plain</type>
            <size>36063</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWExZTYxN2UwM2U4MTA2
MGM0YmUzNTZlZDUwYjA5ZjEwNzNmN2JjMS4uNDE2NWRlNTQ2OWFkMGE3YjFhY2UwYjBmMmM4MTY5
NTIwZDM3Y2E1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY4IEBACiAyMDEyLTA5LTI2ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW0Zvcm1zXSBNb3Zl
IG11bHRpcGxlIGZpZWxkcyByZWxhdGVkIGZ1bmN0aW9ucyB0byBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUgZnJvbSBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzUyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBuZXcgY2xhc3MgQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUKKyAgICAgICAgZm9yIHNoYXJpbmcgY29kZSBh
bW9uZyBtdWx0aXBsZSBmaWVsZHMgZGF0ZS90aW1lIGlucHV0IFVJLgorCisgICAgICAgIE1lbWJl
ciBmdW5jdGlvbnMgaW4gQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUgYXJl
IG1vdmVkCisgICAgICAgIGZyb20gVGltZUlucHV0VHlwZS4gQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGUue2NwcCxofQorICAgICAgICB3ZXJlIGNvcGllZCBmcm9tIFRpbWVJ
bnB1dFR5cGUue2NwcCxofSBieSByMTI5NzIxLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWZmZWN0
cyBwb3J0cyB3aGljaCBlbmFibGUgYm90aCBFTkFCTEVfSU5QVVRfVFlQRV9USU1FIGFuZAorICAg
ICAgICBFTkFCTEVfSU5QVVRfTVVMVElQTEVfRklFTERTX1VJLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gVGhpcyBwYXRjaCBkb2Vzbid0IGNoYW5nZSBiZWhhdmlvci4KKworICAgICAgICAqIFdl
YkNvcmUuZ3lwaTogQ2hhbmdlZCB0byBoYXZlIGh0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUue2NwcCxofQorICAgICAgICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmg6CisgICAgICAgIChCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUpOiBFeHBvc2VkIHNl
dE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyBhcyBwcm90ZWN0ZWQgZm9yIEJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpLgor
ICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGwpOiBNb3ZlZCBmcm9tIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGwuCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlu
cHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6fkRhdGVUaW1lRWRpdENvbnRy
b2xPd25lckltcGwpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRC
bHVyRnJvbUNvbnRyb2wpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZp
ZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpk
aWRGb2N1c09uQ29udHJvbCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxl
RmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93
bmVySW1wbDo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IE1vdmVkIGZyb20gVGltZUlucHV0
VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCBhbmQgY2hhbmdlZCB0byBjYWxsIGZv
cm1hdERhdGVUaW1lRmllbGRzU3RhdGUoKSBpbiBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZUlucHV0VHlwZSBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKTogTW92ZWQg
ZnJvbSBUaW1lSW5wdXRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRp
dENvbnRyb2xPd25lckRpc2FibGVkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkpOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpCYXNlTXVsdGlwbGVG
aWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6On5CYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmJsdXIpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVSZW5k
ZXJlcik6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hh
ZG93U3VidHJlZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmZvY3VzKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpC
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KTogZGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZTo6ZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2
ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZSk6IGRpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzTW91c2VGb2N1
c2FibGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQpOiBkaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpyZWFk
b25seUF0dHJpYnV0ZUNoYW5nZWQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1RleHRGaWVsZCk6IGRpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnJl
c3RvcmVGb3JtQ29udHJvbFN0YXRlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBk
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlOjpzZXRWYWx1ZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxl
RmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKTogZGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlw
ZTo6c3RlcEF0dHJpYnV0ZUNoYW5nZWQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSk6
IE1vdmVkIGZyb20gVGltZUlucHV0VHlwZSBhbmQgY2hhbmdlZCB0byBjYWxsIHNldHVwTGF5b3V0
UGFyYW1ldGVycygpIHRvIHNldCBkYXRlL3RpbWUgZm9ybWF0IGJ5IGVhY2ggaW5wdXQgdHlwZS4K
KyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmg6
CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6IEFkZGVk
LgorICAgICAgICAoRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCk6IE1vdmVkIGZyb20gVGlt
ZUlucHV0VHlwZS4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOiBNb3ZlZCBtdWx0
aXBsZSBmaWVsZHMgVUkgcmVsYXRlZCBmdW5jdGlvbnMgdG8gQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpUaW1l
SW5wdXRUeXBlKTogQ2hhbmdlZCBiYXNlIGNsYXNzIG5hbWUgdG8gQmFzZVRpbWVJbnB1dC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUp
OiBNb3ZlZCBmcm9tIFRpbWVJTnB1dDo6RGF0ZVRJbWVFZGl0Q29udHJvbE93bmVySW1wbCBjbGFz
cy4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVy
cyk6IEFkZGVkIGZvciBzZXQgdGltZSBmb3JtYXQuCisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKTogQ2hhbmVkIGJhc2UgY2xhc3MgdG8gQmFz
ZVRpbWVJbnB1dCB3aGljaCBpcyBhbGlhcyBvZiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgb3Ig
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuCisKKzIwMTItMDktMjYgIFlv
c2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbRm9ybXNdIENv
cHkgVGltZUlucHV0VHlwZS57Y3BwLGh9IHRvIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlLntjcHAsaH0KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk3NjQ5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiYTYyZjI3OTNjZjg4Yjk5OWQ2
NGY5MDE0YzY4ZmFiYzA4NjUyZGRmLi44NDAwYzMxNTU3YjE1ODgxMjdlYjE0YTg2NzcxMjA1YjM0
M2VlNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00MDA0LDYgKzQwMDQsOCBAQAogICAgICAgICAg
ICAgJ2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCcsCiAgICAgICAgICAgICAn
aHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1sL0Jh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oJywKKyAgICAgICAgICAgICdodG1sL0Jhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9CYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oJywKICAgICAgICAgICAgICdodG1s
L0Jhc2VUZXh0SW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9CYXNlVGV4dElucHV0
VHlwZS5oJywKICAgICAgICAgICAgICdodG1sL0J1dHRvbklucHV0VHlwZS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYTQ5OTEw
ZmRlYzNlMjRlMTQ1N2E3YThjYzA1ZjMyZDFjN2RiYmIyZC4uZjA1NDQ2ZWM5MDk0YTE3Mzg3MzAz
NzJkNmVlMWE5MDgyZDY5OGNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oCkBAIC00NiwxMCArNDYsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBv
bmVudHMqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoY29u
c3QgRGVjaW1hbCYpIGNvbnN0IE9WRVJSSURFOwogICAgIFN0cmluZyBzZXJpYWxpemVXaXRoQ29t
cG9uZW50cyhjb25zdCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBz
ZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNv
bnN0ID0gMDsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcGFyc2VUb0RhdGVDb21wb25l
bnRzSW50ZXJuYWwoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCBsZW5ndGgsIERhdGVDb21wb25lbnRz
KikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBv
bmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIERh
dGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZG91
YmxlIHZhbHVlQXNEYXRlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlQXNEYXRlKGRvdWJsZSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBkMmQwMWE4Y2QxMGJlYTZiMmVhZDQ5YjMyYzQ4ZDc4
NjE0MjNjZjdmLi5kODBjN2M1NjE1Y2M3YjQ0YTEwMmIzYmViNjEzZDNkZmZhZmJjNzE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtMjksMTkzICsyOSwxMDIgQEAKICAqLwogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVGltZUlucHV0VHlwZS5oIgorI2lmIEVOQUJM
RShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCisjaW5jbHVkZSAiQmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCi0j
aW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2lu
Y2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0j
aW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+Ci0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkK
LSNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQogI2luY2x1ZGUgIkRhdGVUaW1l
RmllbGRzU3RhdGUuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRm9y
bUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
S2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplci5oIgogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci0KLXN0YXRpYyBj
b25zdCBpbnQgdGltZURlZmF1bHRTdGVwID0gNjA7Ci1zdGF0aWMgY29uc3QgaW50IHRpbWVEZWZh
dWx0U3RlcEJhc2UgPSAwOwotc3RhdGljIGNvbnN0IGludCB0aW1lU3RlcFNjYWxlRmFjdG9yID0g
MTAwMDsKLQotUGFzc093blB0cjxJbnB1dFR5cGU+IFRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGltZUlu
cHV0VHlwZShlbGVtZW50KSk7Ci19Ci0KLWNvbnN0IEF0b21pY1N0cmluZyYgVGltZUlucHV0VHlw
ZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6
OnRpbWUoKTsKLX0KLQotRGF0ZUNvbXBvbmVudHM6OlR5cGUgVGltZUlucHV0VHlwZTo6ZGF0ZVR5
cGUoKSBjb25zdAotewotICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6VGltZTsKLX0KLQotRGVj
aW1hbCBUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAotewotICAg
IGRvdWJsZSBjdXJyZW50ID0gY3VycmVudFRpbWVNUygpOwotICAgIGRvdWJsZSB1dGNPZmZzZXQg
PSBjYWxjdWxhdGVVVENPZmZzZXQoKTsKLSAgICBkb3VibGUgZHN0T2Zmc2V0ID0gY2FsY3VsYXRl
RFNUT2Zmc2V0KGN1cnJlbnQsIHV0Y09mZnNldCk7Ci0gICAgaW50IG9mZnNldCA9IHN0YXRpY19j
YXN0PGludD4oKHV0Y09mZnNldCArIGRzdE9mZnNldCkgLyBtc1Blck1pbnV0ZSk7Ci0gICAgY3Vy
cmVudCArPSBvZmZzZXQgKiBtc1Blck1pbnV0ZTsKLQotICAgIERhdGVDb21wb25lbnRzIGRhdGU7
Ci0gICAgZGF0ZS5zZXRNaWxsaXNlY29uZHNTaW5jZU1pZG5pZ2h0KGN1cnJlbnQpOwotICAgIGRv
dWJsZSBtaWxsaXNlY29uZHMgPSBkYXRlLm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsKLSAgICBB
U1NFUlQoaXNmaW5pdGUobWlsbGlzZWNvbmRzKSk7Ci0gICAgcmV0dXJuIERlY2ltYWw6OmZyb21E
b3VibGUobWlsbGlzZWNvbmRzKTsKLX0KLQotU3RlcFJhbmdlIFRpbWVJbnB1dFR5cGU6OmNyZWF0
ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAotewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RlcFJhbmdlOjpTdGVwRGVzY3JpcHRpb24sIHN0
ZXBEZXNjcmlwdGlvbiwgKHRpbWVEZWZhdWx0U3RlcCwgdGltZURlZmF1bHRTdGVwQmFzZSwgdGlt
ZVN0ZXBTY2FsZUZhY3RvciwgU3RlcFJhbmdlOjpTY2FsZWRTdGVwVmFsdWVTaG91bGRCZUludGVn
ZXIpKTsKLQotICAgIGNvbnN0IERlY2ltYWwgc3RlcEJhc2UgPSBwYXJzZVRvTnVtYmVyKGVsZW1l
bnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgMCk7Ci0gICAgY29uc3QgRGVjaW1hbCBt
aW5pbXVtID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0
ciksIERlY2ltYWw6OmZyb21Eb3VibGUoRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1UaW1lKCkpKTsK
LSAgICBjb25zdCBEZWNpbWFsIG1heGltdW0gPSBwYXJzZVRvTnVtYmVyKGVsZW1lbnQoKS0+ZmFz
dEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgRGVjaW1hbDo6ZnJvbURvdWJsZShEYXRlQ29tcG9uZW50
czo6bWF4aW11bVRpbWUoKSkpOwotICAgIGNvbnN0IERlY2ltYWwgc3RlcCA9IFN0ZXBSYW5nZTo6
cGFyc2VTdGVwKGFueVN0ZXBIYW5kbGluZywgc3RlcERlc2NyaXB0aW9uLCBlbGVtZW50KCktPmZh
c3RHZXRBdHRyaWJ1dGUoc3RlcEF0dHIpKTsKLSAgICByZXR1cm4gU3RlcFJhbmdlKHN0ZXBCYXNl
LCBtaW5pbXVtLCBtYXhpbXVtLCBzdGVwLCBzdGVwRGVzY3JpcHRpb24pOwotfQotCi1ib29sIFRp
bWVJbnB1dFR5cGU6OnBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiBj
aGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKiBvdXQpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUKG91dCk7Ci0gICAgdW5zaWduZWQgZW5kOwotICAgIHJldHVybiBvdXQtPnBh
cnNlVGltZShjaGFyYWN0ZXJzLCBsZW5ndGgsIDAsIGVuZCkgJiYgZW5kID09IGxlbmd0aDsKLX0K
LQotYm9vbCBUaW1lSW5wdXRUeXBlOjpzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91
YmxlIHZhbHVlLCBEYXRlQ29tcG9uZW50cyogZGF0ZSkgY29uc3QKLXsKLSAgICBBU1NFUlQoZGF0
ZSk7Ci0gICAgcmV0dXJuIGRhdGUtPnNldE1pbGxpc2Vjb25kc1NpbmNlTWlkbmlnaHQodmFsdWUp
OwotfQotCi1ib29sIFRpbWVJbnB1dFR5cGU6OmlzVGltZUZpZWxkKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0K
LVRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OkRhdGVUaW1lRWRp
dENvbnRyb2xPd25lckltcGwoVGltZUlucHV0VHlwZSYgdGltZUlucHV0VHlwZSkKLSAgICA6IG1f
dGltZUlucHV0VHlwZSh0aW1lSW5wdXRUeXBlKQorQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OkRhdGVUaW1lRWRpdENv
bnRyb2xPd25lckltcGwoQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUmIGRh
dGVBbmRUaW1lSW5wdXRUeXBlKQorICAgIDogbV9kYXRlQW5kVGltZUlucHV0VHlwZShkYXRlQW5k
VGltZUlucHV0VHlwZSkKIHsKIH0KIAotVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJv
bE93bmVySW1wbDo6fkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKQorQmFzZU11bHRpcGxl
RmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
On5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCkKIHsKIH0KIAotdm9pZCBUaW1lSW5wdXRU
eXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRCbHVyRnJvbUNvbnRyb2woKQor
dm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0
Q29udHJvbE93bmVySW1wbDo6ZGlkQmx1ckZyb21Db250cm9sKCkKIHsKICAgICAvLyBXZSBkb24n
dCBuZWVkIHRvIGNhbGwgYmx1cigpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRy
b2wKICAgICAvLyBsb3N0IGZvY3VzLgogCiAgICAgLy8gUmVtb3ZlIGZvY3VzIHJpbmcgYnkgQ1NT
ICJmb2N1cyIgcHNldWRvIGNsYXNzLgotICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNl
dEZvY3VzKGZhbHNlKTsKKyAgICBtX2RhdGVBbmRUaW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0
Rm9jdXMoZmFsc2UpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRy
b2xPd25lckltcGw6OmRpZEZvY3VzT25Db250cm9sKCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRpZEZv
Y3VzT25Db250cm9sKCkKIHsKICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgZm9jdXMoKS4g
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBjb250cm9sCiAgICAgLy8gZ290IGZvY3VzLgog
CiAgICAgLy8gQWRkIGZvY3VzIHJpbmcgYnkgQ1NTICJmb2N1cyIgcHNldWRvIGNsYXNzLgotICAg
IG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKHRydWUpOworICAgIG1fZGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5zZXRGb2N1cyh0cnVlKTsKIH0KIAotdm9pZCBUaW1l
SW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVl
Q2hhbmdlZCgpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpE
YXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpCiB7
Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KG1fdGltZUlucHV0VHlwZS5lbGVt
ZW50KCkpOwotICAgIGlucHV0LT5zZXRWYWx1ZUludGVybmFsKG1fdGltZUlucHV0VHlwZS5tX2Rh
dGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCk7CisgICAgUmVmUHRy
PEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0KG1fZGF0ZUFuZFRpbWVJbnB1dFR5cGUuZWxlbWVudCgp
KTsKKyAgICBpbnB1dC0+c2V0VmFsdWVJbnRlcm5hbChtX2RhdGVBbmRUaW1lSW5wdXRUeXBlLm1f
ZGF0ZVRpbWVFZGl0RWxlbWVudC0+dmFsdWUoKSwgRGlzcGF0Y2hOb0V2ZW50KTsKICAgICBpbnB1
dC0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9s
SW5wdXRFdmVudCgpOwogICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQo
KTsKICAgICBpbnB1dC0+bm90aWZ5Rm9ybVN0YXRlQ2hhbmdlZCgpOwogfQogCi0KLVN0cmluZyBU
aW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpmb3JtYXREYXRlVGlt
ZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRzU3Rh
dGUpIGNvbnN0CitTdHJpbmcgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKIHsK
LSAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzSG91cigpIHx8ICFkYXRlVGltZUZpZWxk
c1N0YXRlLmhhc01pbnV0ZSgpIHx8ICFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc0FNUE0oKSkKLSAg
ICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci0gICAgaWYgKGRhdGVUaW1lRmllbGRzU3RhdGUu
aGFzTWlsbGlzZWNvbmQoKSAmJiBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbGxpc2Vjb25kKCkpCi0g
ICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTAydTolMDJ1OiUwMnUuJTAzdSIsCi0gICAg
ICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3VyMjMoKSwKLSAgICAgICAgICAgICAg
ICBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbnV0ZSgpLAotICAgICAgICAgICAgICAgIGRhdGVUaW1l
RmllbGRzU3RhdGUuaGFzU2Vjb25kKCkgPyBkYXRlVGltZUZpZWxkc1N0YXRlLnNlY29uZCgpIDog
MCwKLSAgICAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbGxpc2Vjb25kKCkpOwot
ICAgIGlmIChkYXRlVGltZUZpZWxkc1N0YXRlLmhhc1NlY29uZCgpICYmIGRhdGVUaW1lRmllbGRz
U3RhdGUuc2Vjb25kKCkpCi0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTAydTolMDJ1
OiUwMnUiLAotICAgICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksCi0g
ICAgICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taW51dGUoKSwKLSAgICAgICAgICAg
ICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLnNlY29uZCgpKTsKLSAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIiUwMnU6JTAydSIsIGRhdGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksIGRhdGVUaW1l
RmllbGRzU3RhdGUubWludXRlKCkpOworICAgIHJldHVybiBtX2RhdGVBbmRUaW1lSW5wdXRUeXBl
LmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoZGF0ZVRpbWVGaWVsZHNTdGF0ZSk7CiB9CiAKLWJv
b2wgVGltZUlucHV0VHlwZTo6aGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0Citib29sIEJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6RGF0
ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBj
b25zdAorYm9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25z
dAogewotICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5yZWFkT25seSgpOwor
ICAgIHJldHVybiBtX2RhdGVBbmRUaW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+cmVhZE9ubHkoKTsK
IH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpp
c0VkaXRDb250cm9sT3duZXJSZWFkT25seSgpIGNvbnN0Citib29sIEJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0Vk
aXRDb250cm9sT3duZXJSZWFkT25seSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdGltZUlucHV0
VHlwZS5lbGVtZW50KCktPmRpc2FibGVkKCk7CisgICAgcmV0dXJuIG1fZGF0ZUFuZFRpbWVJbnB1
dFR5cGUuZWxlbWVudCgpLT5kaXNhYmxlZCgpOwogfQogCi1UaW1lSW5wdXRUeXBlOjpUaW1lSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCitCYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKICAgICA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZShlbGVtZW50KQogICAgICwgbV9kYXRlVGltZUVkaXRFbGVtZW50KDApCiAgICAgLCBtX2RhdGVU
aW1lRWRpdENvbnRyb2xPd25lckltcGwoKnRoaXMpCiB7CiB9CiAKLVRpbWVJbnB1dFR5cGU6On5U
aW1lSW5wdXRUeXBlKCkKK0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjp+
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUoKQogewogICAgIGlmIChtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3Zl
RWRpdENvbnRyb2xPd25lcigpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmJsdXIoKQordm9p
ZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Ymx1cigpCiB7CiAgICAg
aWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKICAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50
LT5ibHVyQnlPd25lcigpOwogfQogCi1SZW5kZXJPYmplY3QqIFRpbWVJbnB1dFR5cGU6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAor
UmVuZGVyT2JqZWN0KiBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoYXJlbmEsIHN0eWxlKTsK
IH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKK3ZvaWQgQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogewogICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvdygpKTsKIApAQCAtMjI1LDcgKzEzNCw3
IEBAIHZvaWQgVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgdXBkYXRl
SW5uZXJUZXh0VmFsdWUoKTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93
U3VidHJlZSgpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpk
ZXN0cm95U2hhZG93U3VidHJlZSgpCiB7CiAgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkg
ewogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnJlbW92ZUVkaXRDb250cm9sT3duZXIo
KTsKQEAgLTIzNCw1NiArMTQzLDU2IEBAIHZvaWQgVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRv
d1N1YnRyZWUoKQogICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1
YnRyZWUoKTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpmb2N1cyhib29sKQordm9pZCBCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCkKIHsKICAgICBp
ZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQt
PmZvY3VzQnlPd25lcigpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmZvcndhcmRFdmVudChF
dmVudCogZXZlbnQpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
Ojpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQogewogICAgIGlmIChtX2RhdGVUaW1lRWRpdEVs
ZW1lbnQpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+ZGVmYXVsdEV2ZW50SGFuZGxl
cihldmVudCk7CiB9CiAKLXZvaWQgVGltZUlucHV0VHlwZTo6ZGlzYWJsZWRBdHRyaWJ1dGVDaGFu
Z2VkKCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRpc2Fi
bGVkQXR0cmlidXRlQ2hhbmdlZCgpCiB7CiAgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkK
ICAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5kaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOwog
fQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50
KiBldmVudCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omhh
bmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBmb3J3YXJkRXZl
bnQoZXZlbnQpOwogfQogCi1ib29sIFRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUo
S2V5Ym9hcmRFdmVudCopIGNvbnN0Citib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlOjppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNh
YmxlKCkgY29uc3QKK2Jvb2wgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKQordm9pZCBCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2Vk
KCkKIHsKICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5
cGU6OnJlYWRvbmx5QXR0cmlidXRlQ2hhbmdlZCgpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlOjpyZWFkb25seUF0dHJpYnV0ZUNoYW5nZWQoKQogewogICAgIGlm
IChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+
cmVhZE9ubHlTdGF0ZUNoYW5nZWQoKTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjppc1RleHRG
aWVsZCgpIGNvbnN0Citib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
Ojppc1RleHRGaWVsZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFRp
bWVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3Rh
dGUmIHN0YXRlKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUpCiB7
CiAgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKQEAgLTI5
NCw3ICsyMDMsNyBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRl
KGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlKQogICAgIGVsZW1lbnQoKS0+c2V0VmFsdWVJ
bnRlcm5hbChtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCk7
CiB9CiAKLUZvcm1Db250cm9sU3RhdGUgVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3Rh
dGUoKSBjb25zdAorRm9ybUNvbnRyb2xTdGF0ZSBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAogewogICAgIGlmICghbV9k
YXRlVGltZUVkaXRFbGVtZW50KQogICAgICAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZSgpOwpA
QCAtMzAyLDI3ICsyMTEsMjkgQEAgRm9ybUNvbnRyb2xTdGF0ZSBUaW1lSW5wdXRUeXBlOjpzYXZl
Rm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGF0ZVRpbWVFZGl0RWxlbWVu
dC0+dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKS5zYXZlRm9ybUNvbnRyb2xTdGF0ZSgpOwog
fQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVk
VmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVo
YXZpb3IpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIElucHV0VHlwZTo6c2V0
VmFsdWUoc2FuaXRpemVkVmFsdWUsIHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CiAgICAg
aWYgKHZhbHVlQ2hhbmdlZCkKICAgICAgICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKIH0KIAot
Ym9vbCBUaW1lSW5wdXRUeXBlOjpzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0Citib29sIEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpzaG91bGRVc2VJbnB1dE1ldGhv
ZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6
OnN0ZXBBdHRyaWJ1dGVDaGFuZ2VkKCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OnN0ZXBBdHRyaWJ1dGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVJbm5lclRl
eHRWYWx1ZSgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVl
KCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlu
bmVyVGV4dFZhbHVlKCkKIHsKLSAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICBp
ZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkgeworICAgICAgICBUZXh0RmllbGRJbnB1dFR5cGU6
OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBM
b2NhbGl6ZXImIGxvY2FsaXplciA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+Z2V0TG9jYWxpemVy
KGVsZW1lbnQoKS0+Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkpOwogICAgIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMgbGF5b3V0UGFyYW1ldGVycyhsb2NhbGl6ZXIsIGNy
ZWF0ZVN0ZXBSYW5nZShBbnlJc0RlZmF1bHRTdGVwKSk7CkBAIC0zMzIsMjUgKzI0MywxMyBAQCB2
b2lkIFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkKICAgICBpZiAoIWhhc1Zh
bHVlKQogICAgICAgICBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMobGF5b3V0UGFyYW1l
dGVycy5zdGVwUmFuZ2UubWluaW11bSgpLnRvRG91YmxlKCksICZkYXRlKTsKIAotICAgIGlmIChk
YXRlLnNlY29uZCgpIHx8IGxheW91dFBhcmFtZXRlcnMuc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkp
IHsKLSAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCA9IGxvY2FsaXplci50
aW1lRm9ybWF0KCk7Ci0gICAgICAgIGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZv
cm1hdCA9ICJISDptbTpzcyI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbGF5b3V0UGFyYW1ldGVy
cy5kYXRlVGltZUZvcm1hdCA9IGxvY2FsaXplci5zaG9ydFRpbWVGb3JtYXQoKTsKLSAgICAgICAg
bGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0ID0gIkhIOm1tIjsKLSAgICB9
CisgICAgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKGxheW91dFBhcmFtZXRlcnMsIGRhdGUpOwogCiAg
ICAgaWYgKGhhc1ZhbHVlKQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVl
QXNEYXRlKGxheW91dFBhcmFtZXRlcnMsIGRhdGUpOwogICAgIGVsc2UKICAgICAgICAgbV9kYXRl
VGltZUVkaXRFbGVtZW50LT5zZXRFbXB0eVZhbHVlKGxheW91dFBhcmFtZXRlcnMsIGRhdGUpOwog
fQotI2Vsc2UKLVRpbWVJbnB1dFR5cGU6OlRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCog
ZWxlbWVudCkKLSAgICA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KQotewotfQot
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5o
CmluZGV4IGYxODUwNTQxMWM2YjdiY2E4MWNjNDEyMDFlNmYzYWRkZjFiOGIyM2QuLjc2MTRlNGU2
NmM0MWMxMTI4YzI2Njg3ZWFmYjgwZDgwYzEwOTExZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
LmgKQEAgLTI4LDQzICsyOCwzMiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFRp
bWVJbnB1dFR5cGVfaAotI2RlZmluZSBUaW1lSW5wdXRUeXBlX2gKKyNpZm5kZWYgQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGVfaAorI2RlZmluZSBCYXNlTXVsdGlwbGVGaWVs
ZHNEYXRlQW5kVGltZUlucHV0VHlwZV9oCiAKICNpbmNsdWRlICJCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuaCIKIAotI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCi0KICNpZiBFTkFCTEUoSU5Q
VVRfTVVMVElQTEVfRklFTERTX1VJKQogI2luY2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQuaCIK
LSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRpbWVJbnB1dFR5cGUgOiBw
dWJsaWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Kik7Ci0KLSNpZiBFTkFC
TEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQotICAgIHZpcnR1YWwgflRpbWVJbnB1dFR5cGUo
KTsKLSNlbmRpZgorY2xhc3MgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUg
OiBwdWJsaWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKK3Byb3RlY3RlZDoKKyAgICBCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7Cisg
ICAgdmlydHVhbCB+QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUoKTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1l
RmllbGRzU3RhdGUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldHVwTGF5b3V0UGFy
YW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiwgY29uc3QgRGF0
ZUNvbXBvbmVudHMmKSBjb25zdCA9IDA7CiAKIHByaXZhdGU6Ci0gICAgVGltZUlucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50Kik7Ci0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6
OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIERlY2ltYWwgZGVm
YXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdGVwUmFu
Z2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwg
dW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29t
cG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVsZCgp
IGNvbnN0IE9WRVJSSURFOwotCi0jaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkK
KyAgICAvLyBGSVhNRTogRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCBzaG91bGQgYmUgcmVt
b3ZlZCBieSBtb3ZpbmcKKyAgICAvLyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93
bmVyIGludG8gYmFzZSBjbGFzcyBsaXN0IG9mCisgICAgLy8gQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuCiAgICAgY2xhc3MgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1w
bCA6IHB1YmxpYyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIHsKICAgICAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCk7CiAK
ICAgICBwdWJsaWM6Ci0gICAgICAgIERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoVGltZUlu
cHV0VHlwZSYpOworICAgICAgICBEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKEJhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlJik7CiAgICAgICAgIHZpcnR1YWwgfkRhdGVU
aW1lRWRpdENvbnRyb2xPd25lckltcGwoKTsKIAogICAgIHByaXZhdGU6CkBAIC03NSw3ICs2NCw3
IEBAIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0VkaXRDb250cm9sT3duZXJEaXNh
YmxlZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0
Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKIAotICAgICAgICBU
aW1lSW5wdXRUeXBlJiBtX3RpbWVJbnB1dFR5cGU7CisgICAgICAgIEJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlJiBtX2RhdGVBbmRUaW1lSW5wdXRUeXBlOwogICAgIH07CiAK
ICAgICBmcmllbmQgY2xhc3MgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDsKQEAgLTEwNCw3
ICs5Myw2IEBAIHByaXZhdGU6CiAKICAgICBEYXRlVGltZUVkaXRFbGVtZW50KiBtX2RhdGVUaW1l
RWRpdEVsZW1lbnQ7CiAgICAgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCBtX2RhdGVUaW1l
RWRpdENvbnRyb2xPd25lckltcGw7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGQyZDAxYThjZDEwYmVh
NmIyZWFkNDliMzJjNDhkNzg2MTQyM2NmN2YuLjQ4YTY4NGMzNWU2ZTU5YmVmNWFjY2E2ZWMwNzc0
MThkMGEwMmRlZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtNDEs
MTMgKzQxLDEwIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX1RJTUUpCisKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQog
I2luY2x1ZGUgIkRhdGVUaW1lRmllbGRzU3RhdGUuaCIKLSNpbmNsdWRlICJFbGVtZW50U2hhZG93
LmgiCi0jaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJLZXlib2FyZEV2ZW50
LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVyLmgiCi0jaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2VuZGlmCiAKQEAgLTU5LDYgKzU2LDExIEBA
IHN0YXRpYyBjb25zdCBpbnQgdGltZURlZmF1bHRTdGVwID0gNjA7CiBzdGF0aWMgY29uc3QgaW50
IHRpbWVEZWZhdWx0U3RlcEJhc2UgPSAwOwogc3RhdGljIGNvbnN0IGludCB0aW1lU3RlcFNjYWxl
RmFjdG9yID0gMTAwMDsKIAorVGltZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50KiAgZWxlbWVudCkKKyAgICA6IEJhc2VUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCit7Cit9
CisKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVJbnB1dFR5
cGUoZWxlbWVudCkpOwpAQCAtMTIwLDQ1ICsxMjIsNyBAQCBib29sIFRpbWVJbnB1dFR5cGU6Omlz
VGltZUZpZWxkKCkgY29uc3QKIAogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkp
CiAKLVRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OkRhdGVUaW1l
RWRpdENvbnRyb2xPd25lckltcGwoVGltZUlucHV0VHlwZSYgdGltZUlucHV0VHlwZSkKLSAgICA6
IG1fdGltZUlucHV0VHlwZSh0aW1lSW5wdXRUeXBlKQotewotfQotCi1UaW1lSW5wdXRUeXBlOjpE
YXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjp+RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1w
bCgpCi17Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6ZGlkQmx1ckZyb21Db250cm9sKCkKLXsKLSAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNh
bGwgYmx1cigpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wKLSAgICAvLyBs
b3N0IGZvY3VzLgotCi0gICAgLy8gUmVtb3ZlIGZvY3VzIHJpbmcgYnkgQ1NTICJmb2N1cyIgcHNl
dWRvIGNsYXNzLgotICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKGZhbHNl
KTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBs
OjpkaWRGb2N1c09uQ29udHJvbCgpCi17Ci0gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBjYWxsIGZv
Y3VzKCkuIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gY29udHJvbAotICAgIC8vIGdvdCBm
b2N1cy4KLQotICAgIC8vIEFkZCBmb2N1cyByaW5nIGJ5IENTUyAiZm9jdXMiIHBzZXVkbyBjbGFz
cy4KLSAgICBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5zZXRGb2N1cyh0cnVlKTsKLX0KLQot
dm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29u
dHJvbFZhbHVlQ2hhbmdlZCgpCi17Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0
KG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCkpOwotICAgIGlucHV0LT5zZXRWYWx1ZUludGVybmFs
KG1fdGltZUlucHV0VHlwZS5tX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCksIERpc3BhdGNo
Tm9FdmVudCk7Ci0gICAgaW5wdXQtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICBpbnB1dC0+
ZGlzcGF0Y2hGb3JtQ29udHJvbElucHV0RXZlbnQoKTsKLSAgICBpbnB1dC0+ZGlzcGF0Y2hGb3Jt
Q29udHJvbENoYW5nZUV2ZW50KCk7Ci0gICAgaW5wdXQtPm5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQo
KTsKLX0KLQotCi1TdHJpbmcgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRl
JiBkYXRlVGltZUZpZWxkc1N0YXRlKSBjb25zdAorU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1h
dERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVG
aWVsZHNTdGF0ZSkgY29uc3QKIHsKICAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzSG91
cigpIHx8ICFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc01pbnV0ZSgpIHx8ICFkYXRlVGltZUZpZWxk
c1N0YXRlLmhhc0FNUE0oKSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CkBAIC0xNzYs
MTc5ICsxNDAsMTUgQEAgU3RyaW5nIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGw6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY28KICAgICByZXR1cm4gU3RyaW5n
Ojpmb3JtYXQoIiUwMnU6JTAydSIsIGRhdGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksIGRhdGVU
aW1lRmllbGRzU3RhdGUubWludXRlKCkpOwogfQogCi1ib29sIFRpbWVJbnB1dFR5cGU6Omhhc0N1
c3RvbUZvY3VzTG9naWMoKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBU
aW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9s
T3duZXJEaXNhYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZUlucHV0VHlwZS5lbGVt
ZW50KCktPnJlYWRPbmx5KCk7Ci19Ci0KLWJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0
Q29udHJvbE93bmVySW1wbDo6aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5kaXNhYmxlZCgpOwotfQotCi1U
aW1lSW5wdXRUeXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCi0g
ICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKLSAgICAsIG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudCgwKQotICAgICwgbV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCp0aGlz
KQotewotfQotCi1UaW1lSW5wdXRUeXBlOjp+VGltZUlucHV0VHlwZSgpCi17Ci0gICAgaWYgKG1f
ZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5yZW1v
dmVFZGl0Q29udHJvbE93bmVyKCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6Ymx1cigpCi17
Ci0gICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRF
bGVtZW50LT5ibHVyQnlPd25lcigpOwotfQotCi1SZW5kZXJPYmplY3QqIFRpbWVJbnB1dFR5cGU6
OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKSBj
b25zdAotewotICAgIHJldHVybiBJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKGFyZW5hLCBzdHls
ZSk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCi17Ci0g
ICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwotCi0gICAgUmVmUHRyPERhdGVUaW1lRWRp
dEVsZW1lbnQ+IGRhdGVUaW1lRWRpdEVsZW1lbnQoRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRl
KGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSwgbV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKSk7
Ci0gICAgbV9kYXRlVGltZUVkaXRFbGVtZW50ID0gZGF0ZVRpbWVFZGl0RWxlbWVudC5nZXQoKTsK
LSAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9kYXRl
VGltZUVkaXRFbGVtZW50KTsKLSAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwotfQotCi12b2lk
IFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCkKLXsKLSAgICBpZiAobV9kYXRl
VGltZUVkaXRFbGVtZW50KSB7Ci0gICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3Zl
RWRpdENvbnRyb2xPd25lcigpOwotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQgPSAwOwot
ICAgIH0KLSAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCkKK3ZvaWQgVGltZUlucHV0
VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBh
cmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBj
b25zdAogewotICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIG1fZGF0ZVRp
bWVFZGl0RWxlbWVudC0+Zm9jdXNCeU93bmVyKCk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6
Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKLXsKLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVt
ZW50KQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmRlZmF1bHRFdmVudEhhbmRsZXIo
ZXZlbnQpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OmRpc2FibGVkQXR0cmlidXRlQ2hhbmdl
ZCgpCi17Ci0gICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGlt
ZUVkaXRFbGVtZW50LT5kaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOwotfQotCi12b2lkIFRpbWVJbnB1
dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKLXsKLSAgICBm
b3J3YXJkRXZlbnQoZXZlbnQpOwotfQotCi1ib29sIFRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci1ib29sIFRpbWVJbnB1dFR5cGU6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAotewotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNo
YW5nZWQoKQotewotICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7Ci19Ci0KLXZvaWQgVGltZUlu
cHV0VHlwZTo6cmVhZG9ubHlBdHRyaWJ1dGVDaGFuZ2VkKCkKLXsKLSAgICBpZiAobV9kYXRlVGlt
ZUVkaXRFbGVtZW50KQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnJlYWRPbmx5U3Rh
dGVDaGFuZ2VkKCk7Ci19Ci0KLWJvb2wgVGltZUlucHV0VHlwZTo6aXNUZXh0RmllbGQoKSBjb25z
dAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJiBzdGF0ZSkKLXsKLSAgICBp
ZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgcmV0dXJuOwotICAgIERhdGVDb21w
b25lbnRzIGRhdGU7Ci0gICAgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGNyZWF0ZVN0
ZXBSYW5nZShBbnlJc0RlZmF1bHRTdGVwKS5taW5pbXVtKCkudG9Eb3VibGUoKSwgJmRhdGUpOwot
ICAgIERhdGVUaW1lRmllbGRzU3RhdGUgZGF0ZVRpbWVGaWVsZHNTdGF0ZSA9IERhdGVUaW1lRmll
bGRzU3RhdGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKHN0YXRlKTsKLSAgICBtX2RhdGVUaW1l
RWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRz
U3RhdGUsIGRhdGUpOwotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWVJbnRlcm5hbChtX2RhdGVUaW1l
RWRpdEVsZW1lbnQtPnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCk7Ci19Ci0KLUZvcm1Db250cm9s
U3RhdGUgVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAotewotICAg
IGlmICghbV9kYXRlVGltZUVkaXRFbGVtZW50KQotICAgICAgICByZXR1cm4gRm9ybUNvbnRyb2xT
dGF0ZSgpOwotCi0gICAgcmV0dXJuIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+dmFsdWVBc0RhdGVU
aW1lRmllbGRzU3RhdGUoKS5zYXZlRm9ybUNvbnRyb2xTdGF0ZSgpOwotfQotCi12b2lkIFRpbWVJ
bnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFs
dWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCi17Ci0gICAg
SW5wdXRUeXBlOjpzZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJl
aGF2aW9yKTsKLSAgICBpZiAodmFsdWVDaGFuZ2VkKQotICAgICAgICB1cGRhdGVJbm5lclRleHRW
YWx1ZSgpOwotfQotCi1ib29sIFRpbWVJbnB1dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6c3Rl
cEF0dHJpYnV0ZUNoYW5nZWQoKQotewotICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7Ci19Ci0K
LXZvaWQgVGltZUlucHV0VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUoKQotewotICAgIGlmICgh
bV9kYXRlVGltZUVkaXRFbGVtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBMb2NhbGl6ZXIm
IGxvY2FsaXplciA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS0+Z2V0TG9jYWxpemVyKGVsZW1lbnQo
KS0+Y29tcHV0ZUluaGVyaXRlZExhbmd1YWdlKCkpOwotICAgIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OkxheW91dFBhcmFtZXRlcnMgbGF5b3V0UGFyYW1ldGVycyhsb2NhbGl6ZXIsIGNyZWF0ZVN0ZXBS
YW5nZShBbnlJc0RlZmF1bHRTdGVwKSk7Ci0KLSAgICBEYXRlQ29tcG9uZW50cyBkYXRlOwotICAg
IGNvbnN0IGJvb2wgaGFzVmFsdWUgPSBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoZWxlbWVudCgpLT52
YWx1ZSgpLCAmZGF0ZSk7Ci0gICAgaWYgKCFoYXNWYWx1ZSkKLSAgICAgICAgc2V0TWlsbGlzZWNv
bmRUb0RhdGVDb21wb25lbnRzKGxheW91dFBhcmFtZXRlcnMuc3RlcFJhbmdlLm1pbmltdW0oKS50
b0RvdWJsZSgpLCAmZGF0ZSk7Ci0KICAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJh
bWV0ZXJzLnNob3VsZEhhdmVTZWNvbmRGaWVsZCgpKSB7Ci0gICAgICAgIGxheW91dFBhcmFtZXRl
cnMuZGF0ZVRpbWVGb3JtYXQgPSBsb2NhbGl6ZXIudGltZUZvcm1hdCgpOworICAgICAgICBsYXlv
dXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGl6ZXIu
dGltZUZvcm1hdCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVG
b3JtYXQgPSAiSEg6bW06c3MiOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGxheW91dFBhcmFtZXRl
cnMuZGF0ZVRpbWVGb3JtYXQgPSBsb2NhbGl6ZXIuc2hvcnRUaW1lRm9ybWF0KCk7CisgICAgICAg
IGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2Fs
aXplci5zaG9ydFRpbWVGb3JtYXQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFj
a0RhdGVUaW1lRm9ybWF0ID0gIkhIOm1tIjsKICAgICB9Ci0KLSAgICBpZiAoaGFzVmFsdWUpCi0g
ICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0VmFsdWVBc0RhdGUobGF5b3V0UGFyYW1l
dGVycywgZGF0ZSk7Ci0gICAgZWxzZQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNl
dEVtcHR5VmFsdWUobGF5b3V0UGFyYW1ldGVycywgZGF0ZSk7Ci19Ci0jZWxzZQotVGltZUlucHV0
VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQotICAgIDogQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCi17CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCBmMTg1MDU0MTFjNmI3YmNhODFjYzQxMjAxZTZmM2Fk
ZGYxYjhiMjNkLi5hNjA1ZWUyYTI1ODAxYzU4NDFmY2Q3M2Y0ODI1NmViMzdjYzVmNjUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtMzEsMjQgKzMxLDI1IEBACiAjaWZuZGVm
IFRpbWVJbnB1dFR5cGVfaAogI2RlZmluZSBUaW1lSW5wdXRUeXBlX2gKIAotI2luY2x1ZGUgIkJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIgotCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkK
LQogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0jaW5jbHVkZSAiRGF0ZVRp
bWVFZGl0RWxlbWVudC5oIgorI2luY2x1ZGUgIkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlLmgiCisjZWxzZQorI2luY2x1ZGUgIkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
IgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVGltZUlucHV0VHlwZSA6
IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgewotcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqKTsKLQogI2lmIEVO
QUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgdmlydHVhbCB+VGltZUlucHV0VHlw
ZSgpOwordHlwZWRlZiBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSBCYXNl
VGltZUlucHV0VHlwZTsKKyNlbHNlCit0eXBlZGVmIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSBC
YXNlVGltZUlucHV0VHlwZTsKICNlbmRpZgogCitjbGFzcyBUaW1lSW5wdXRUeXBlIDogcHVibGlj
IEJhc2VUaW1lSW5wdXRUeXBlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1
dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Kik7CisKIHByaXZhdGU6CiAgICAgVGltZUlu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwpAQCAtNjAsNTAgKzYxLDkgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNUaW1lRmllbGQoKSBjb25zdCBPVkVSUklERTsK
IAogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCi0gICAgY2xhc3MgRGF0ZVRp
bWVFZGl0Q29udHJvbE93bmVySW1wbCA6IHB1YmxpYyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0
Q29udHJvbE93bmVyIHsKLSAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVFZGl0
Q29udHJvbE93bmVySW1wbCk7Ci0KLSAgICBwdWJsaWM6Ci0gICAgICAgIERhdGVUaW1lRWRpdENv
bnRyb2xPd25lckltcGwoVGltZUlucHV0VHlwZSYpOwotICAgICAgICB2aXJ0dWFsIH5EYXRlVGlt
ZUVkaXRDb250cm9sT3duZXJJbXBsKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkQmx1ckZyb21Db250cm9sKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRGb2N1c09uQ29udHJvbCgpIE9WRVJSSURFIEZJTkFMOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICAg
ICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGlt
ZUZpZWxkc1N0YXRlJikgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBpc0VkaXRDb250cm9sT3duZXJEaXNhYmxlZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKLQotICAgICAgICBUaW1lSW5wdXRUeXBlJiBtX3RpbWVJbnB1dFR5cGU7Ci0g
ICAgfTsKLQotICAgIGZyaWVuZCBjbGFzcyBEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOwot
Ci0gICAgLy8gSW5wdXRUeXBlIGZ1bmN0aW9ucwotICAgIHZpcnR1YWwgdm9pZCBibHVyKCkgT1ZF
UlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1
YWwgdm9pZCBkZXN0cm95U2hhZG93U3VidHJlZSgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1
YWwgdm9pZCBkaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2
aXJ0dWFsIHZvaWQgZm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24pIE9WRVJSSURF
IEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBmb3J3YXJkRXZlbnQoRXZlbnQqKSBPVkVSUklERSBG
SU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQq
KSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygp
IGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNh
YmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwg
Ym9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9p
ZCBtaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVhZG9ubHlBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUm
KSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1D
b250cm9sU3RhdGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVo
YXZpb3IpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1l
dGhvZCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBzdGVwQXR0cmli
dXRlQ2hhbmdlZCgpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbm5l
clRleHRWYWx1ZSgpIE9WRVJSSURFIEZJTkFMOwotCi0gICAgRGF0ZVRpbWVFZGl0RWxlbWVudCog
bV9kYXRlVGltZUVkaXRFbGVtZW50OwotICAgIERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwg
bV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOworICAgIC8vIEJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlIGZ1bmN0aW9ucworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1h
dERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IE9W
RVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0
ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRz
JikgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165931</attachid>
            <date>2012-09-26 22:48:52 -0700</date>
            <delta_ts>2012-09-26 23:42:57 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-97521-20120927144810.patch</filename>
            <type>text/plain</type>
            <size>35677</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M4OTJlM2RiNDU0MTRl
YjMzYWEwYmJiOTk0NGE5YjljMGM2MGU5My4uMGMyOWZjN2I1MjdhMzNhOWE2MTU5ZjJkNWI4ODQz
ZGI0ZWZiMzAyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTA5LTI2ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Zvcm1zXSBNb3Zl
IG11bHRpcGxlIGZpZWxkcyByZWxhdGVkIGZ1bmN0aW9ucyB0byBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUgZnJvbSBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NzUyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBuZXcgY2xhc3MgQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUKKyAgICAgICAgZm9yIHNoYXJpbmcgY29kZSBh
bW9uZyBtdWx0aXBsZSBmaWVsZHMgZGF0ZS90aW1lIGlucHV0IFVJLgorCisgICAgICAgIE1lbWJl
ciBmdW5jdGlvbnMgaW4gQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUgYXJl
IG1vdmVkCisgICAgICAgIGZyb20gVGltZUlucHV0VHlwZS4gQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGUue2NwcCxofQorICAgICAgICB3ZXJlIGNvcGllZCBmcm9tIFRpbWVJ
bnB1dFR5cGUue2NwcCxofSBieSByMTI5NzIxLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWZmZWN0
cyBwb3J0cyB3aGljaCBlbmFibGUgYm90aCBFTkFCTEVfSU5QVVRfVFlQRV9USU1FIGFuZAorICAg
ICAgICBFTkFCTEVfSU5QVVRfTVVMVElQTEVfRklFTERTX1VJLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gVGhpcyBwYXRjaCBkb2Vzbid0IGNoYW5nZSBiZWhhdmlvci4KKworICAgICAgICAqIFdl
YkNvcmUuZ3lwaTogQ2hhbmdlZCB0byBoYXZlIGh0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUue2NwcCxofQorICAgICAgICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmg6CisgICAgICAgIChCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUpOiBFeHBvc2VkIHNl
dE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyBhcyBwcm90ZWN0ZWQgZm9yIEJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpLgor
ICAgICAgICAqIGh0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGwpOiBNb3ZlZCBmcm9tIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25l
ckltcGwuCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlu
cHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6fkRhdGVUaW1lRWRpdENvbnRy
b2xPd25lckltcGwpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpkaWRC
bHVyRnJvbUNvbnRyb2wpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZp
ZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjpk
aWRGb2N1c09uQ29udHJvbCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxl
RmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6
OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93
bmVySW1wbDo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSk6IE1vdmVkIGZyb20gVGltZUlucHV0
VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCBhbmQgY2hhbmdlZCB0byBjYWxsIGZv
cm1hdERhdGVUaW1lRmllbGRzU3RhdGUoKSBpbiBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZUlucHV0VHlwZSBjbGFzcy4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKTogTW92ZWQg
ZnJvbSBUaW1lSW5wdXRUeXBlLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRp
dENvbnRyb2xPd25lckRpc2FibGVkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkpOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpCYXNlTXVsdGlwbGVG
aWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6On5CYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmJsdXIpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVSZW5k
ZXJlcik6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBkaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hh
ZG93U3VidHJlZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRz
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmZvY3VzKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpC
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KTogZGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZTo6ZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2
ZW50KTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZSk6IGRpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzTW91c2VGb2N1
c2FibGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQpOiBkaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpyZWFk
b25seUF0dHJpYnV0ZUNoYW5nZWQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1RleHRGaWVsZCk6IGRpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnJl
c3RvcmVGb3JtQ29udHJvbFN0YXRlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBk
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlOjpzZXRWYWx1ZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxl
RmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNob3VsZFVzZUlucHV0TWV0aG9kKTogZGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlw
ZTo6c3RlcEF0dHJpYnV0ZUNoYW5nZWQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSk6
IE1vdmVkIGZyb20gVGltZUlucHV0VHlwZSBhbmQgY2hhbmdlZCB0byBjYWxsIHNldHVwTGF5b3V0
UGFyYW1ldGVycygpIHRvIHNldCBkYXRlL3RpbWUgZm9ybWF0IGJ5IGVhY2ggaW5wdXQgdHlwZS4K
KyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmg6
CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6IEFkZGVk
LgorICAgICAgICAoRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCk6IE1vdmVkIGZyb20gVGlt
ZUlucHV0VHlwZS4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOiBNb3ZlZCBtdWx0
aXBsZSBmaWVsZHMgVUkgcmVsYXRlZCBmdW5jdGlvbnMgdG8gQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuCisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpUaW1l
SW5wdXRUeXBlKTogQ2hhbmdlZCBiYXNlIGNsYXNzIG5hbWUgdG8gQmFzZVRpbWVJbnB1dC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUp
OiBNb3ZlZCBmcm9tIFRpbWVJTnB1dDo6RGF0ZVRJbWVFZGl0Q29udHJvbE93bmVySW1wbCBjbGFz
cy4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVy
cyk6IEFkZGVkIGZvciBzZXQgdGltZSBmb3JtYXQuCisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKTogQ2hhbmVkIGJhc2UgY2xhc3MgdG8gQmFz
ZVRpbWVJbnB1dCB3aGljaCBpcyBhbGlhcyBvZiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgb3Ig
QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuCisKIDIwMTItMDgtMDkgIFRh
a2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1vdmUgSURMIGV4
dGVuZGVkIGF0dHJpYnV0ZXMgdG8gdGhlIGxvY2F0aW9uIHNwZWNpZmllZCBpbiBXZWJJREwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBiYTYyZjI3OTNjZjg4Yjk5OWQ2NGY5MDE0YzY4ZmFiYzA4NjUyZGRm
Li44NDAwYzMxNTU3YjE1ODgxMjdlYjE0YTg2NzcxMjA1YjM0M2VlNTk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC00MDA0LDYgKzQwMDQsOCBAQAogICAgICAgICAgICAgJ2h0bWwvQmFzZUNsaWNrYWJs
ZVdpdGhLZXlJbnB1dFR5cGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oJywKKyAgICAgICAgICAgICdodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZS5oJywKICAgICAgICAgICAgICdodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNw
cCcsCiAgICAgICAgICAgICAnaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oJywKICAgICAgICAgICAg
ICdodG1sL0J1dHRvbklucHV0VHlwZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYTQ5OTEwZmRlYzNlMjRlMTQ1N2E3YThjYzA1
ZjMyZDFjN2RiYmIyZC4uZjA1NDQ2ZWM5MDk0YTE3Mzg3MzAzNzJkNmVlMWE5MDgyZDY5OGNlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBA
IC00NiwxMCArNDYsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0
ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoY29uc3QgRGVjaW1hbCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIFN0cmluZyBzZXJpYWxpemVXaXRoQ29tcG9uZW50cyhjb25zdCBEYXRlQ29t
cG9uZW50cyYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNv
bXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0ID0gMDsKIAogcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgcGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNo
YXIqLCB1bnNpZ25lZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKikgY29uc3QgPSAwOwotICAgIHZp
cnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29t
cG9uZW50cyopIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRh
dGVUeXBlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGRvdWJsZSwgRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApp
bmRleCBkMmQwMWE4Y2QxMGJlYTZiMmVhZDQ5YjMyYzQ4ZDc4NjE0MjNjZjdmLi4xZjU4MGNhNGI3
Mzc1YjU5MzJhYTg1MmZjOTE4YzNhZTkyN2YwMDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
LmNwcApAQCAtMjksMTkzICsyOSwxMDIgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiVGltZUlucHV0VHlwZS5oIgorI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVM
RFNfVUkpCisjaW5jbHVkZSAiQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
aCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIklucHV0VHlwZU5hbWVz
LmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0RhdGVNYXRo
Lmg+Ci0jaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgotCi0jaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKLSNpZiBFTkFCTEUoSU5QVVRfTVVM
VElQTEVfRklFTERTX1VJKQogI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRzU3RhdGUuaCIKICNpbmNs
dWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKKyNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIkxvY2FsaXplci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci0KLXN0YXRpYyBjb25zdCBpbnQgdGltZURlZmF1bHRT
dGVwID0gNjA7Ci1zdGF0aWMgY29uc3QgaW50IHRpbWVEZWZhdWx0U3RlcEJhc2UgPSAwOwotc3Rh
dGljIGNvbnN0IGludCB0aW1lU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKLQotUGFzc093blB0cjxJ
bnB1dFR5cGU+IFRpbWVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50
KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGltZUlucHV0VHlwZShlbGVtZW50KSk7Ci19
Ci0KLWNvbnN0IEF0b21pY1N0cmluZyYgVGltZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OnRpbWUoKTsKLX0KLQotRGF0ZUNv
bXBvbmVudHM6OlR5cGUgVGltZUlucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAotewotICAgIHJl
dHVybiBEYXRlQ29tcG9uZW50czo6VGltZTsKLX0KLQotRGVjaW1hbCBUaW1lSW5wdXRUeXBlOjpk
ZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAotewotICAgIGRvdWJsZSBjdXJyZW50ID0gY3Vy
cmVudFRpbWVNUygpOwotICAgIGRvdWJsZSB1dGNPZmZzZXQgPSBjYWxjdWxhdGVVVENPZmZzZXQo
KTsKLSAgICBkb3VibGUgZHN0T2Zmc2V0ID0gY2FsY3VsYXRlRFNUT2Zmc2V0KGN1cnJlbnQsIHV0
Y09mZnNldCk7Ci0gICAgaW50IG9mZnNldCA9IHN0YXRpY19jYXN0PGludD4oKHV0Y09mZnNldCAr
IGRzdE9mZnNldCkgLyBtc1Blck1pbnV0ZSk7Ci0gICAgY3VycmVudCArPSBvZmZzZXQgKiBtc1Bl
ck1pbnV0ZTsKLQotICAgIERhdGVDb21wb25lbnRzIGRhdGU7Ci0gICAgZGF0ZS5zZXRNaWxsaXNl
Y29uZHNTaW5jZU1pZG5pZ2h0KGN1cnJlbnQpOwotICAgIGRvdWJsZSBtaWxsaXNlY29uZHMgPSBk
YXRlLm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsKLSAgICBBU1NFUlQoaXNmaW5pdGUobWlsbGlz
ZWNvbmRzKSk7Ci0gICAgcmV0dXJuIERlY2ltYWw6OmZyb21Eb3VibGUobWlsbGlzZWNvbmRzKTsK
LX0KLQotU3RlcFJhbmdlIFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFu
ZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdAorQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OkRhdGVUaW1lRWRpdENv
bnRyb2xPd25lckltcGwoQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUmIGRh
dGVBbmRUaW1lSW5wdXRUeXBlKQorICAgIDogbV9kYXRlQW5kVGltZUlucHV0VHlwZShkYXRlQW5k
VGltZUlucHV0VHlwZSkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0ZXBSYW5n
ZTo6U3RlcERlc2NyaXB0aW9uLCBzdGVwRGVzY3JpcHRpb24sICh0aW1lRGVmYXVsdFN0ZXAsIHRp
bWVEZWZhdWx0U3RlcEJhc2UsIHRpbWVTdGVwU2NhbGVGYWN0b3IsIFN0ZXBSYW5nZTo6U2NhbGVk
U3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKSk7Ci0KLSAgICBjb25zdCBEZWNpbWFsIHN0ZXBCYXNl
ID0gcGFyc2VUb051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIDAp
OwotICAgIGNvbnN0IERlY2ltYWwgbWluaW11bSA9IHBhcnNlVG9OdW1iZXIoZWxlbWVudCgpLT5m
YXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEZWNpbWFsOjpmcm9tRG91YmxlKERhdGVDb21wb25l
bnRzOjptaW5pbXVtVGltZSgpKSk7Ci0gICAgY29uc3QgRGVjaW1hbCBtYXhpbXVtID0gcGFyc2VU
b051bWJlcihlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWF4QXR0ciksIERlY2ltYWw6OmZy
b21Eb3VibGUoRGF0ZUNvbXBvbmVudHM6Om1heGltdW1UaW1lKCkpKTsKLSAgICBjb25zdCBEZWNp
bWFsIHN0ZXAgPSBTdGVwUmFuZ2U6OnBhcnNlU3RlcChhbnlTdGVwSGFuZGxpbmcsIHN0ZXBEZXNj
cmlwdGlvbiwgZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKHN0ZXBBdHRyKSk7Ci0gICAgcmV0
dXJuIFN0ZXBSYW5nZShzdGVwQmFzZSwgbWluaW11bSwgbWF4aW11bSwgc3RlcCwgc3RlcERlc2Ny
aXB0aW9uKTsKLX0KLQotYm9vbCBUaW1lSW5wdXRUeXBlOjpwYXJzZVRvRGF0ZUNvbXBvbmVudHNJ
bnRlcm5hbChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29t
cG9uZW50cyogb3V0KSBjb25zdAotewotICAgIEFTU0VSVChvdXQpOwotICAgIHVuc2lnbmVkIGVu
ZDsKLSAgICByZXR1cm4gb3V0LT5wYXJzZVRpbWUoY2hhcmFjdGVycywgbGVuZ3RoLCAwLCBlbmQp
ICYmIGVuZCA9PSBsZW5ndGg7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6c2V0TWlsbGlzZWNv
bmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSB2YWx1ZSwgRGF0ZUNvbXBvbmVudHMqIGRhdGUpIGNv
bnN0CitCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0
Q29udHJvbE93bmVySW1wbDo6fkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwoKQogewotICAg
IEFTU0VSVChkYXRlKTsKLSAgICByZXR1cm4gZGF0ZS0+c2V0TWlsbGlzZWNvbmRzU2luY2VNaWRu
aWdodCh2YWx1ZSk7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6aXNUaW1lRmllbGQoKSBjb25z
dAotewotICAgIHJldHVybiB0cnVlOwotfQotCi0jaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJ
RUxEU19VSSkKLQotVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6
RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbChUaW1lSW5wdXRUeXBlJiB0aW1lSW5wdXRUeXBl
KQotICAgIDogbV90aW1lSW5wdXRUeXBlKHRpbWVJbnB1dFR5cGUpCi17Ci19Ci0KLVRpbWVJbnB1
dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6On5EYXRlVGltZUVkaXRDb250cm9s
T3duZXJJbXBsKCkKLXsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250
cm9sT3duZXJJbXBsOjpkaWRCbHVyRnJvbUNvbnRyb2woKQordm9pZCBCYXNlTXVsdGlwbGVGaWVs
ZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6ZGlk
Qmx1ckZyb21Db250cm9sKCkKIHsKICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgYmx1cigp
LiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wKICAgICAvLyBsb3N0IGZvY3Vz
LgogCiAgICAgLy8gUmVtb3ZlIGZvY3VzIHJpbmcgYnkgQ1NTICJmb2N1cyIgcHNldWRvIGNsYXNz
LgotICAgIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPnNldEZvY3VzKGZhbHNlKTsKKyAgICBt
X2RhdGVBbmRUaW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXMoZmFsc2UpOwogfQogCi12
b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRpZEZvY3Vz
T25Db250cm9sKCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmRpZEZvY3VzT25Db250cm9sKCkKIHsKICAg
ICAvLyBXZSBkb24ndCBuZWVkIHRvIGNhbGwgZm9jdXMoKS4gVGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQgd2hlbiBjb250cm9sCiAgICAgLy8gZ290IGZvY3VzLgogCiAgICAgLy8gQWRkIGZvY3VzIHJp
bmcgYnkgQ1NTICJmb2N1cyIgcHNldWRvIGNsYXNzLgotICAgIG1fdGltZUlucHV0VHlwZS5lbGVt
ZW50KCktPnNldEZvY3VzKHRydWUpOworICAgIG1fZGF0ZUFuZFRpbWVJbnB1dFR5cGUuZWxlbWVu
dCgpLT5zZXRGb2N1cyh0cnVlKTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVk
aXRDb250cm9sT3duZXJJbXBsOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpCit2b2lkIEJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3du
ZXJJbXBsOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpCiB7Ci0gICAgUmVmUHRyPEhUTUxJbnB1
dEVsZW1lbnQ+IGlucHV0KG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCkpOwotICAgIGlucHV0LT5z
ZXRWYWx1ZUludGVybmFsKG1fdGltZUlucHV0VHlwZS5tX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZh
bHVlKCksIERpc3BhdGNoTm9FdmVudCk7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlu
cHV0KG1fZGF0ZUFuZFRpbWVJbnB1dFR5cGUuZWxlbWVudCgpKTsKKyAgICBpbnB1dC0+c2V0VmFs
dWVJbnRlcm5hbChtX2RhdGVBbmRUaW1lSW5wdXRUeXBlLm1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+
dmFsdWUoKSwgRGlzcGF0Y2hOb0V2ZW50KTsKICAgICBpbnB1dC0+c2V0TmVlZHNTdHlsZVJlY2Fs
YygpOwogICAgIGlucHV0LT5kaXNwYXRjaEZvcm1Db250cm9sSW5wdXRFdmVudCgpOwogICAgIGlu
cHV0LT5kaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKICAgICBpbnB1dC0+bm90aWZ5
Rm9ybVN0YXRlQ2hhbmdlZCgpOwogfQogCi0KLVN0cmluZyBUaW1lSW5wdXRUeXBlOjpEYXRlVGlt
ZUVkaXRDb250cm9sT3duZXJJbXBsOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERh
dGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRzU3RhdGUpIGNvbnN0CitTdHJpbmcgQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGw6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKIHsKLSAgICBpZiAoIWRhdGVUaW1lRmll
bGRzU3RhdGUuaGFzSG91cigpIHx8ICFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc01pbnV0ZSgpIHx8
ICFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc0FNUE0oKSkKLSAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Ci0gICAgaWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzTWlsbGlzZWNvbmQoKSAmJiBk
YXRlVGltZUZpZWxkc1N0YXRlLm1pbGxpc2Vjb25kKCkpCi0gICAgICAgIHJldHVybiBTdHJpbmc6
OmZvcm1hdCgiJTAydTolMDJ1OiUwMnUuJTAzdSIsCi0gICAgICAgICAgICAgICAgZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5ob3VyMjMoKSwKLSAgICAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRl
Lm1pbnV0ZSgpLAotICAgICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzU2Vjb25k
KCkgPyBkYXRlVGltZUZpZWxkc1N0YXRlLnNlY29uZCgpIDogMCwKLSAgICAgICAgICAgICAgICBk
YXRlVGltZUZpZWxkc1N0YXRlLm1pbGxpc2Vjb25kKCkpOwotICAgIGlmIChkYXRlVGltZUZpZWxk
c1N0YXRlLmhhc1NlY29uZCgpICYmIGRhdGVUaW1lRmllbGRzU3RhdGUuc2Vjb25kKCkpCi0gICAg
ICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTAydTolMDJ1OiUwMnUiLAotICAgICAgICAgICAg
ICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksCi0gICAgICAgICAgICAgICAgZGF0ZVRp
bWVGaWVsZHNTdGF0ZS5taW51dGUoKSwKLSAgICAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0
YXRlLnNlY29uZCgpKTsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiUwMnU6JTAydSIsIGRh
dGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksIGRhdGVUaW1lRmllbGRzU3RhdGUubWludXRlKCkp
OworICAgIHJldHVybiBtX2RhdGVBbmRUaW1lSW5wdXRUeXBlLmZvcm1hdERhdGVUaW1lRmllbGRz
U3RhdGUoZGF0ZVRpbWVGaWVsZHNTdGF0ZSk7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6aGFz
Q3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0Citib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QKIHsKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLWJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6aXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdAorYm9vbCBCYXNlTXVsdGlw
bGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1w
bDo6aXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdAogewotICAgIHJldHVybiBtX3Rp
bWVJbnB1dFR5cGUuZWxlbWVudCgpLT5yZWFkT25seSgpOworICAgIHJldHVybiBtX2RhdGVBbmRU
aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+cmVhZE9ubHkoKTsKIH0KIAotYm9vbCBUaW1lSW5wdXRU
eXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJSZWFk
T25seSgpIGNvbnN0Citib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
OjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOjppc0VkaXRDb250cm9sT3duZXJSZWFkT25s
eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdGltZUlucHV0VHlwZS5lbGVtZW50KCktPmRpc2Fi
bGVkKCk7CisgICAgcmV0dXJuIG1fZGF0ZUFuZFRpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5kaXNh
YmxlZCgpOwogfQogCi1UaW1lSW5wdXRUeXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQpCitCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6QmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxl
bWVudCkKICAgICA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KQogICAgICwgbV9k
YXRlVGltZUVkaXRFbGVtZW50KDApCiAgICAgLCBtX2RhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGwoKnRoaXMpCiB7CiB9CiAKLVRpbWVJbnB1dFR5cGU6On5UaW1lSW5wdXRUeXBlKCkKK0Jhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGUoKQogewogICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCiAg
ICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVtb3ZlRWRpdENvbnRyb2xPd25lcigpOwog
fQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OmJsdXIoKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZTo6Ymx1cigpCiB7CiAgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxl
bWVudCkKICAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5ibHVyQnlPd25lcigpOwogfQog
Ci1SZW5kZXJPYmplY3QqIFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAorUmVuZGVyT2JqZWN0KiBCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0
VHlwZTo6Y3JlYXRlUmVuZGVyZXIoYXJlbmEsIHN0eWxlKTsKIH0KIAotdm9pZCBUaW1lSW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewogICAgIEFTU0VSVChlbGVt
ZW50KCktPnNoYWRvdygpKTsKIApAQCAtMjI1LDcgKzEzNCw3IEBAIHZvaWQgVGltZUlucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKIH0K
IAotdm9pZCBUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCit2b2lkIEJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgp
CiB7CiAgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkgewogICAgICAgICBtX2RhdGVUaW1l
RWRpdEVsZW1lbnQtPnJlbW92ZUVkaXRDb250cm9sT3duZXIoKTsKQEAgLTIzNCw1NiArMTQzLDU2
IEBAIHZvaWQgVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQogICAgIEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKTsKIH0KIAotdm9pZCBU
aW1lSW5wdXRUeXBlOjpmb2N1cyhib29sKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZTo6Zm9jdXMoYm9vbCkKIHsKICAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVt
ZW50KQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmZvY3VzQnlPd25lcigpOwogfQog
Ci12b2lkIFRpbWVJbnB1dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCit2b2lkIEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpmb3J3YXJkRXZlbnQoRXZlbnQq
IGV2ZW50KQogewogICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCiAgICAgICAgIG1fZGF0
ZVRpbWVFZGl0RWxlbWVudC0+ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKLXZvaWQg
VGltZUlucHV0VHlwZTo6ZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkKK3ZvaWQgQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgp
CiB7CiAgICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKICAgICAgICAgbV9kYXRlVGltZUVk
aXRFbGVtZW50LT5kaXNhYmxlZFN0YXRlQ2hhbmdlZCgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5
cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKK3ZvaWQgQmFzZU11
bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXli
b2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBmb3J3YXJkRXZlbnQoZXZlbnQpOwogfQogCi1ib29s
IFRpbWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0
Citib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjppc0tleWJvYXJk
Rm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotYm9vbCBUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QKK2Jvb2wgQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzTW91c2VGb2N1c2FibGUoKSBj
b25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBUaW1lSW5wdXRUeXBlOjptaW5P
ck1heEF0dHJpYnV0ZUNoYW5nZWQoKQordm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVJbm5l
clRleHRWYWx1ZSgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OnJlYWRvbmx5QXR0cmlidXRl
Q2hhbmdlZCgpCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpy
ZWFkb25seUF0dHJpYnV0ZUNoYW5nZWQoKQogewogICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1l
bnQpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+cmVhZE9ubHlTdGF0ZUNoYW5nZWQo
KTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjppc1RleHRGaWVsZCgpIGNvbnN0Citib29sIEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1RleHRGaWVsZCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OnJlc3RvcmVG
b3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlKQordm9pZCBCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUpCiB7CiAgICAgaWYgKCFtX2RhdGVUaW1l
RWRpdEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKQEAgLTI5NCw3ICsyMDMsNyBAQCB2b2lkIFRp
bWVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3Rh
dGUmIHN0YXRlKQogICAgIGVsZW1lbnQoKS0+c2V0VmFsdWVJbnRlcm5hbChtX2RhdGVUaW1lRWRp
dEVsZW1lbnQtPnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCk7CiB9CiAKLUZvcm1Db250cm9sU3Rh
dGUgVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAorRm9ybUNvbnRy
b2xTdGF0ZSBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2F2ZUZvcm1D
b250cm9sU3RhdGUoKSBjb25zdAogewogICAgIGlmICghbV9kYXRlVGltZUVkaXRFbGVtZW50KQog
ICAgICAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZSgpOwpAQCAtMzAyLDI0ICsyMTEsMjQgQEAg
Rm9ybUNvbnRyb2xTdGF0ZSBUaW1lSW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+dmFsdWVBc0RhdGVUaW1lRmll
bGRzU3RhdGUoKS5zYXZlRm9ybUNvbnRyb2xTdGF0ZSgpOwogfQogCi12b2lkIFRpbWVJbnB1dFR5
cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFu
Z2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCit2b2lkIEJhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNh
bml0aXplZFZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBl
dmVudEJlaGF2aW9yKQogewogICAgIElucHV0VHlwZTo6c2V0VmFsdWUoc2FuaXRpemVkVmFsdWUs
IHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CiAgICAgaWYgKHZhbHVlQ2hhbmdlZCkKICAg
ICAgICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKIH0KIAotYm9vbCBUaW1lSW5wdXRUeXBlOjpz
aG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0Citib29sIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjpzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi12b2lkIFRpbWVJbnB1dFR5cGU6OnN0ZXBBdHRyaWJ1dGVDaGFuZ2Vk
KCkKK3ZvaWQgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnN0ZXBBdHRy
aWJ1dGVDaGFuZ2VkKCkKIHsKICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwogfQogCi12b2lk
IFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkKK3ZvaWQgQmFzZU11bHRpcGxl
RmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkKIHsKICAg
ICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtMzMyLDI1
ICsyNDEsMTMgQEAgdm9pZCBUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAg
ICAgaWYgKCFoYXNWYWx1ZSkKICAgICAgICAgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRz
KGxheW91dFBhcmFtZXRlcnMuc3RlcFJhbmdlLm1pbmltdW0oKS50b0RvdWJsZSgpLCAmZGF0ZSk7
CiAKLSAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpKSB7Ci0gICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQg
PSBsb2NhbGl6ZXIudGltZUZvcm1hdCgpOwotICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxi
YWNrRGF0ZVRpbWVGb3JtYXQgPSAiSEg6bW06c3MiOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGxh
eW91dFBhcmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQgPSBsb2NhbGl6ZXIuc2hvcnRUaW1lRm9ybWF0
KCk7Ci0gICAgICAgIGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1hdCA9ICJI
SDptbSI7Ci0gICAgfQorICAgIHNldHVwTGF5b3V0UGFyYW1ldGVycyhsYXlvdXRQYXJhbWV0ZXJz
LCBkYXRlKTsKIAogICAgIGlmIChoYXNWYWx1ZSkKICAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVt
ZW50LT5zZXRWYWx1ZUFzRGF0ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKICAgICBlbHNlCiAg
ICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0
ZXJzLCBkYXRlKTsKIH0KLSNlbHNlCi1UaW1lSW5wdXRUeXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJ
bnB1dEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxl
bWVudCkKLXsKLX0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaAppbmRleCBmMTg1MDU0MTFjNmI3YmNhODFjYzQxMjAxZTZmM2FkZGYxYjhi
MjNkLi43NjE0ZTRlNjZjNDFjMTEyOGMyNjY4N2VhZmI4MGQ4MGMxMDkxMWZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZS5oCkBAIC0yOCw0MyArMjgsMzIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotI2lmbmRlZiBUaW1lSW5wdXRUeXBlX2gKLSNkZWZpbmUgVGltZUlucHV0VHlwZV9oCisjaWZu
ZGVmIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlX2gKKyNkZWZpbmUgQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGVfaAogCiAjaW5jbHVkZSAiQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmgiCiAKLSNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQotCiAj
aWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKICNpbmNsdWRlICJEYXRlVGltZUVk
aXRFbGVtZW50LmgiCi0jZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUaW1l
SW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCop
OwotCi0jaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKLSAgICB2aXJ0dWFsIH5U
aW1lSW5wdXRUeXBlKCk7Ci0jZW5kaWYKK2NsYXNzIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7Citwcm90ZWN0
ZWQ6CisgICAgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCopOworICAgIHZpcnR1YWwgfkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5w
dXRUeXBlKCk7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShj
b25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
ZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVy
cyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgPSAwOwogCiBwcml2YXRlOgotICAgIFRp
bWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCopOwotICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIERh
dGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChj
b25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIGJvb2wgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRv
dWJsZSwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wg
aXNUaW1lRmllbGQoKSBjb25zdCBPVkVSUklERTsKLQotI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBM
RV9GSUVMRFNfVUkpCisgICAgLy8gRklYTUU6IERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwg
c2hvdWxkIGJlIHJlbW92ZWQgYnkgbW92aW5nCisgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6
RWRpdENvbnRyb2xPd25lciBpbnRvIGJhc2UgY2xhc3MgbGlzdCBvZgorICAgIC8vIEJhc2VNdWx0
aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLgogICAgIGNsYXNzIERhdGVUaW1lRWRpdENv
bnRyb2xPd25lckltcGwgOiBwdWJsaWMgRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xP
d25lciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lRWRpdENvbnRyb2xP
d25lckltcGwpOwogCiAgICAgcHVibGljOgotICAgICAgICBEYXRlVGltZUVkaXRDb250cm9sT3du
ZXJJbXBsKFRpbWVJbnB1dFR5cGUmKTsKKyAgICAgICAgRGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSYpOwogICAgICAgICB2
aXJ0dWFsIH5EYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKCk7CiAKICAgICBwcml2YXRlOgpA
QCAtNzUsNyArNjQsNyBAQCBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29u
dHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKICAgICAgICAgdmlydHVh
bCBib29sIGlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
CiAKLSAgICAgICAgVGltZUlucHV0VHlwZSYgbV90aW1lSW5wdXRUeXBlOworICAgICAgICBCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSYgbV9kYXRlQW5kVGltZUlucHV0VHlw
ZTsKICAgICB9OwogCiAgICAgZnJpZW5kIGNsYXNzIERhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGw7CkBAIC0xMDQsNyArOTMsNiBAQCBwcml2YXRlOgogCiAgICAgRGF0ZVRpbWVFZGl0RWxlbWVu
dCogbV9kYXRlVGltZUVkaXRFbGVtZW50OwogICAgIERhdGVUaW1lRWRpdENvbnRyb2xPd25lcklt
cGwgbV9kYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsOwotI2VuZGlmCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCBk
MmQwMWE4Y2QxMGJlYTZiMmVhZDQ5YjMyYzQ4ZDc4NjE0MjNjZjdmLi40OGE2ODRjMzVlNmU1OWJl
ZjVhY2NhNmVjMDc3NDE4ZDBhMDJkZWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAKQEAgLTQxLDEzICs0MSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
ICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQorCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExF
X0ZJRUxEU19VSSkKICNpbmNsdWRlICJEYXRlVGltZUZpZWxkc1N0YXRlLmgiCi0jaW5jbHVkZSAi
RWxlbWVudFNoYWRvdy5oIgotI2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAi
S2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplci5oIgotI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogCkBAIC01
OSw2ICs1NiwxMSBAQCBzdGF0aWMgY29uc3QgaW50IHRpbWVEZWZhdWx0U3RlcCA9IDYwOwogc3Rh
dGljIGNvbnN0IGludCB0aW1lRGVmYXVsdFN0ZXBCYXNlID0gMDsKIHN0YXRpYyBjb25zdCBpbnQg
dGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKK1RpbWVJbnB1dFR5cGU6OlRpbWVJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCogIGVsZW1lbnQpCisgICAgOiBCYXNlVGltZUlucHV0VHlwZShl
bGVtZW50KQoreworfQorCiBQYXNzT3duUHRyPElucHV0VHlwZT4gVGltZUlucHV0VHlwZTo6Y3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAgLTEyMCw0NSArMTIyLDcgQEAgYm9vbCBUaW1l
SW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQ
TEVfRklFTERTX1VJKQogCi1UaW1lSW5wdXRUeXBlOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJ
bXBsOjpEYXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKFRpbWVJbnB1dFR5cGUmIHRpbWVJbnB1
dFR5cGUpCi0gICAgOiBtX3RpbWVJbnB1dFR5cGUodGltZUlucHV0VHlwZSkKLXsKLX0KLQotVGlt
ZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6fkRhdGVUaW1lRWRpdENv
bnRyb2xPd25lckltcGwoKQotewotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRp
dENvbnRyb2xPd25lckltcGw6OmRpZEJsdXJGcm9tQ29udHJvbCgpCi17Ci0gICAgLy8gV2UgZG9u
J3QgbmVlZCB0byBjYWxsIGJsdXIoKS4gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBjb250
cm9sCi0gICAgLy8gbG9zdCBmb2N1cy4KLQotICAgIC8vIFJlbW92ZSBmb2N1cyByaW5nIGJ5IENT
UyAiZm9jdXMiIHBzZXVkbyBjbGFzcy4KLSAgICBtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpLT5z
ZXRGb2N1cyhmYWxzZSk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29u
dHJvbE93bmVySW1wbDo6ZGlkRm9jdXNPbkNvbnRyb2woKQotewotICAgIC8vIFdlIGRvbid0IG5l
ZWQgdG8gY2FsbCBmb2N1cygpLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGNvbnRyb2wK
LSAgICAvLyBnb3QgZm9jdXMuCi0KLSAgICAvLyBBZGQgZm9jdXMgcmluZyBieSBDU1MgImZvY3Vz
IiBwc2V1ZG8gY2xhc3MuCi0gICAgbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+c2V0Rm9jdXMo
dHJ1ZSk7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVy
SW1wbDo6ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKQotewotICAgIFJlZlB0cjxIVE1MSW5wdXRF
bGVtZW50PiBpbnB1dChtX3RpbWVJbnB1dFR5cGUuZWxlbWVudCgpKTsKLSAgICBpbnB1dC0+c2V0
VmFsdWVJbnRlcm5hbChtX3RpbWVJbnB1dFR5cGUubV9kYXRlVGltZUVkaXRFbGVtZW50LT52YWx1
ZSgpLCBEaXNwYXRjaE5vRXZlbnQpOwotICAgIGlucHV0LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7
Ci0gICAgaW5wdXQtPmRpc3BhdGNoRm9ybUNvbnRyb2xJbnB1dEV2ZW50KCk7Ci0gICAgaW5wdXQt
PmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwotICAgIGlucHV0LT5ub3RpZnlGb3Jt
U3RhdGVDaGFuZ2VkKCk7Ci19Ci0KLQotU3RyaW5nIFRpbWVJbnB1dFR5cGU6OkRhdGVUaW1lRWRp
dENvbnRyb2xPd25lckltcGw6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRp
bWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKK1N0cmluZyBUaW1lSW5w
dXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3Rh
dGUmIGRhdGVUaW1lRmllbGRzU3RhdGUpIGNvbnN0CiB7CiAgICAgaWYgKCFkYXRlVGltZUZpZWxk
c1N0YXRlLmhhc0hvdXIoKSB8fCAhZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNNaW51dGUoKSB8fCAh
ZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNBTVBNKCkpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwpAQCAtMTc2LDE3OSArMTQwLDE1IEBAIFN0cmluZyBUaW1lSW5wdXRUeXBlOjpEYXRlVGlt
ZUVkaXRDb250cm9sT3duZXJJbXBsOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvCiAgICAg
cmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlMDJ1OiUwMnUiLCBkYXRlVGltZUZpZWxkc1N0YXRlLmhv
dXIyMygpLCBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbnV0ZSgpKTsKIH0KIAotYm9vbCBUaW1lSW5w
dXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7
Ci19Ci0KLWJvb2wgVGltZUlucHV0VHlwZTo6RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDo6
aXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVJ
bnB1dFR5cGUuZWxlbWVudCgpLT5yZWFkT25seSgpOwotfQotCi1ib29sIFRpbWVJbnB1dFR5cGU6
OkRhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGw6OmlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1lSW5wdXRUeXBlLmVsZW1lbnQoKS0+ZGlzYWJs
ZWQoKTsKLX0KLQotVGltZUlucHV0VHlwZTo6VGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
KiBlbGVtZW50KQotICAgIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpCi0gICAg
LCBtX2RhdGVUaW1lRWRpdEVsZW1lbnQoMCkKLSAgICAsIG1fZGF0ZVRpbWVFZGl0Q29udHJvbE93
bmVySW1wbCgqdGhpcykKLXsKLX0KLQotVGltZUlucHV0VHlwZTo6flRpbWVJbnB1dFR5cGUoKQot
ewotICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIG1fZGF0ZVRpbWVFZGl0
RWxlbWVudC0+cmVtb3ZlRWRpdENvbnRyb2xPd25lcigpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5
cGU6OmJsdXIoKQotewotICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIG1f
ZGF0ZVRpbWVFZGl0RWxlbWVudC0+Ymx1ckJ5T3duZXIoKTsKLX0KLQotUmVuZGVyT2JqZWN0KiBU
aW1lSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0
eWxlKiBzdHlsZSkgY29uc3QKLXsKLSAgICByZXR1cm4gSW5wdXRUeXBlOjpjcmVhdGVSZW5kZXJl
cihhcmVuYSwgc3R5bGUpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQotewotICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvdygpKTsKLQotICAgIFJlZlB0
cjxEYXRlVGltZUVkaXRFbGVtZW50PiBkYXRlVGltZUVkaXRFbGVtZW50KERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCksIG1fZGF0ZVRpbWVFZGl0Q29udHJv
bE93bmVySW1wbCkpOwotICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudCA9IGRhdGVUaW1lRWRpdEVs
ZW1lbnQuZ2V0KCk7Ci0gICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmFwcGVu
ZENoaWxkKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCk7Ci0gICAgdXBkYXRlSW5uZXJUZXh0VmFsdWUo
KTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCi17Ci0g
ICAgaWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkgewotICAgICAgICBtX2RhdGVUaW1lRWRpdEVs
ZW1lbnQtPnJlbW92ZUVkaXRDb250cm9sT3duZXIoKTsKLSAgICAgICAgbV9kYXRlVGltZUVkaXRF
bGVtZW50ID0gMDsKLSAgICB9Ci0gICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95
U2hhZG93U3VidHJlZSgpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OmZvY3VzKGJvb2wpCit2
b2lkIFRpbWVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVt
ZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZSkgY29uc3QKIHsKLSAgICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQotICAg
ICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPmZvY3VzQnlPd25lcigpOwotfQotCi12b2lkIFRp
bWVJbnB1dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQpCi17Ci0gICAgaWYgKG1fZGF0
ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5kZWZhdWx0
RXZlbnRIYW5kbGVyKGV2ZW50KTsKLX0KLQotdm9pZCBUaW1lSW5wdXRUeXBlOjpkaXNhYmxlZEF0
dHJpYnV0ZUNoYW5nZWQoKQotewotICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAg
ICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKTsKLX0KLQot
dm9pZCBUaW1lSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZl
bnQpCi17Ci0gICAgZm9yd2FyZEV2ZW50KGV2ZW50KTsKLX0KLQotYm9vbCBUaW1lSW5wdXRUeXBl
Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAotewotICAgIHJldHVy
biBmYWxzZTsKLX0KLQotYm9vbCBUaW1lSW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgVGltZUlucHV0VHlwZTo6bWluT3JN
YXhBdHRyaWJ1dGVDaGFuZ2VkKCkKLXsKLSAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwotfQot
Ci12b2lkIFRpbWVJbnB1dFR5cGU6OnJlYWRvbmx5QXR0cmlidXRlQ2hhbmdlZCgpCi17Ci0gICAg
aWYgKG1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50
LT5yZWFkT25seVN0YXRlQ2hhbmdlZCgpOwotfQotCi1ib29sIFRpbWVJbnB1dFR5cGU6OmlzVGV4
dEZpZWxkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgVGltZUlucHV0
VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3Rh
dGUpCi17Ci0gICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCi0gICAgICAgIHJldHVybjsK
LSAgICBEYXRlQ29tcG9uZW50cyBkYXRlOwotICAgIHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9u
ZW50cyhjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCkubWluaW11bSgpLnRvRG91Ymxl
KCksICZkYXRlKTsKLSAgICBEYXRlVGltZUZpZWxkc1N0YXRlIGRhdGVUaW1lRmllbGRzU3RhdGUg
PSBEYXRlVGltZUZpZWxkc1N0YXRlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSk7Ci0g
ICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShk
YXRlVGltZUZpZWxkc1N0YXRlLCBkYXRlKTsKLSAgICBlbGVtZW50KCktPnNldFZhbHVlSW50ZXJu
YWwobV9kYXRlVGltZUVkaXRFbGVtZW50LT52YWx1ZSgpLCBEaXNwYXRjaE5vRXZlbnQpOwotfQot
Ci1Gb3JtQ29udHJvbFN0YXRlIFRpbWVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKCkg
Y29uc3QKLXsKLSAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgcmV0dXJu
IEZvcm1Db250cm9sU3RhdGUoKTsKLQotICAgIHJldHVybiBtX2RhdGVUaW1lRWRpdEVsZW1lbnQt
PnZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKCkuc2F2ZUZvcm1Db250cm9sU3RhdGUoKTsKLX0K
LQotdm9pZCBUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZh
bHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2
aW9yKQotewotICAgIElucHV0VHlwZTo6c2V0VmFsdWUoc2FuaXRpemVkVmFsdWUsIHZhbHVlQ2hh
bmdlZCwgZXZlbnRCZWhhdmlvcik7Ci0gICAgaWYgKHZhbHVlQ2hhbmdlZCkKLSAgICAgICAgdXBk
YXRlSW5uZXJUZXh0VmFsdWUoKTsKLX0KLQotYm9vbCBUaW1lSW5wdXRUeXBlOjpzaG91bGRVc2VJ
bnB1dE1ldGhvZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFRpbWVJ
bnB1dFR5cGU6OnN0ZXBBdHRyaWJ1dGVDaGFuZ2VkKCkKLXsKLSAgICB1cGRhdGVJbm5lclRleHRW
YWx1ZSgpOwotfQotCi12b2lkIFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkK
LXsKLSAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgTG9jYWxpemVyJiBsb2NhbGl6ZXIgPSBlbGVtZW50KCktPmRvY3VtZW50KCktPmdldExvY2Fs
aXplcihlbGVtZW50KCktPmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpKTsKLSAgICBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzIGxheW91dFBhcmFtZXRlcnMobG9jYWxpemVy
LCBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCkpOwotCi0gICAgRGF0ZUNvbXBvbmVu
dHMgZGF0ZTsKLSAgICBjb25zdCBib29sIGhhc1ZhbHVlID0gcGFyc2VUb0RhdGVDb21wb25lbnRz
KGVsZW1lbnQoKS0+dmFsdWUoKSwgJmRhdGUpOwotICAgIGlmICghaGFzVmFsdWUpCi0gICAgICAg
IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhsYXlvdXRQYXJhbWV0ZXJzLnN0ZXBSYW5n
ZS5taW5pbXVtKCkudG9Eb3VibGUoKSwgJmRhdGUpOwotCiAgICAgaWYgKGRhdGUuc2Vjb25kKCkg
fHwgbGF5b3V0UGFyYW1ldGVycy5zaG91bGRIYXZlU2Vjb25kRmllbGQoKSkgewotICAgICAgICBs
YXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbG9jYWxpemVyLnRpbWVGb3JtYXQoKTsK
KyAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFtZXRl
cnMubG9jYWxpemVyLnRpbWVGb3JtYXQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxs
YmFja0RhdGVUaW1lRm9ybWF0ID0gIkhIOm1tOnNzIjsKICAgICB9IGVsc2UgewotICAgICAgICBs
YXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbG9jYWxpemVyLnNob3J0VGltZUZvcm1h
dCgpOworICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFy
YW1ldGVycy5sb2NhbGl6ZXIuc2hvcnRUaW1lRm9ybWF0KCk7CiAgICAgICAgIGxheW91dFBhcmFt
ZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1hdCA9ICJISDptbSI7CiAgICAgfQotCi0gICAgaWYg
KGhhc1ZhbHVlKQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRl
KGxheW91dFBhcmFtZXRlcnMsIGRhdGUpOwotICAgIGVsc2UKLSAgICAgICAgbV9kYXRlVGltZUVk
aXRFbGVtZW50LT5zZXRFbXB0eVZhbHVlKGxheW91dFBhcmFtZXRlcnMsIGRhdGUpOwotfQotI2Vs
c2UKLVRpbWVJbnB1dFR5cGU6OlRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVu
dCkKLSAgICA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KQotewogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKaW5kZXggZjE4NTA1NDExYzZiN2JjYTgx
Y2M0MTIwMWU2ZjNhZGRmMWI4YjIzZC4uYTYwNWVlMmEyNTgwMWM1ODQxZmNkNzNmNDgyNTZlYjM3
Y2M1ZjY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgKQEAgLTMxLDI0ICszMSwy
NSBAQAogI2lmbmRlZiBUaW1lSW5wdXRUeXBlX2gKICNkZWZpbmUgVGltZUlucHV0VHlwZV9oCiAK
LSNpbmNsdWRlICJCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCIKLQogI2lmIEVOQUJMRShJTlBV
VF9UWVBFX1RJTUUpCi0KICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQotI2lu
Y2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJCYXNlTXVsdGlwbGVGaWVs
ZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRp
bWVJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
Kik7Ci0KICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQotICAgIHZpcnR1YWwg
flRpbWVJbnB1dFR5cGUoKTsKK3R5cGVkZWYgQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUgQmFzZVRpbWVJbnB1dFR5cGU7CisjZWxzZQordHlwZWRlZiBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUgQmFzZVRpbWVJbnB1dFR5cGU7CiAjZW5kaWYKIAorY2xhc3MgVGltZUlucHV0
VHlwZSA6IHB1YmxpYyBCYXNlVGltZUlucHV0VHlwZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCopOworCiBwcml2YXRl
OgogICAgIFRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCopOwogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKQEAgLTYw
LDUwICs2MSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzVGltZUZpZWxkKCkgY29u
c3QgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQotICAg
IGNsYXNzIERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwgOiBwdWJsaWMgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6RWRpdENvbnRyb2xPd25lciB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KERhdGVUaW1lRWRpdENvbnRyb2xPd25lckltcGwpOwotCi0gICAgcHVibGljOgotICAgICAgICBE
YXRlVGltZUVkaXRDb250cm9sT3duZXJJbXBsKFRpbWVJbnB1dFR5cGUmKTsKLSAgICAgICAgdmly
dHVhbCB+RGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbCgpOwotCi0gICAgcHJpdmF0ZToKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tQ29udHJvbCgpIE9WRVJSSURFIEZJTkFMOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRm9jdXNPbkNvbnRyb2woKSBPVkVSUklERSBGSU5BTDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkgT1ZFUlJJREUg
RklOQUw7Ci0gICAgICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNFZGl0Q29udHJvbE93bmVyRGlzYWJsZWQoKSBjb25zdCBPVkVSUklE
RSBGSU5BTDsKLSAgICAgICAgdmlydHVhbCBib29sIGlzRWRpdENvbnRyb2xPd25lclJlYWRPbmx5
KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0KLSAgICAgICAgVGltZUlucHV0VHlwZSYgbV90aW1l
SW5wdXRUeXBlOwotICAgIH07Ci0KLSAgICBmcmllbmQgY2xhc3MgRGF0ZVRpbWVFZGl0Q29udHJv
bE93bmVySW1wbDsKLQotICAgIC8vIElucHV0VHlwZSBmdW5jdGlvbnMKLSAgICB2aXJ0dWFsIHZv
aWQgYmx1cigpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVh
dGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREUgRklO
QUw7Ci0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKSBPVkVSUklERSBGSU5B
TDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKSBPVkVSUklERSBGSU5B
TDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREUg
RklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0
aW9uKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9yd2FyZEV2ZW50KEV2ZW50
KikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWRvd25FdmVudChL
ZXlib2FyZEV2ZW50KikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBib29sIGhhc0N1c3Rv
bUZvY3VzTG9naWMoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNL
ZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0g
ICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIHZvaWQgbWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkgT1ZFUlJJREUgRklOQUw7
Ci0gICAgdmlydHVhbCB2b2lkIHJlYWRvbmx5QXR0cmlidXRlQ2hhbmdlZCgpIE9WRVJSSURFIEZJ
TkFMOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3Jt
Q29udHJvbFN0YXRlJikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBGb3JtQ29udHJvbFN0
YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZv
aWQgc3RlcEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlSW5uZXJUZXh0VmFsdWUoKSBPVkVSUklERSBGSU5BTDsKLQotICAgIERhdGVUaW1l
RWRpdEVsZW1lbnQqIG1fZGF0ZVRpbWVFZGl0RWxlbWVudDsKLSAgICBEYXRlVGltZUVkaXRDb250
cm9sT3duZXJJbXBsIG1fZGF0ZVRpbWVFZGl0Q29udHJvbE93bmVySW1wbDsKKyAgICAvLyBCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSBmdW5jdGlvbnMKKyAgICB2aXJ0dWFs
IFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3Rh
dGUmKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmLCBjb25zdCBE
YXRlQ29tcG9uZW50cyYpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogI2VuZGlmCiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>