<?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>88026</bug_id>
          
          <creation_ts>2012-05-31 17:05:49 -0700</creation_ts>
          <short_desc>[Wk2] Support input element time</short_desc>
          <delta_ts>2019-12-16 10:57:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>86990</dependson>
          <blocked>88933</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dinu Jacob">dinu.jacob</reporter>
          <assigned_to name="Dinu Jacob">dinu.jacob</assigned_to>
          <cc>andymark449</cc>
    
    <cc>anisimran166</cc>
    
    <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>digitaltrendstech1</cc>
    
    <cc>irfaan4a</cc>
    
    <cc>jackace334</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>mcraedavid382</cc>
    
    <cc>menard</cc>
    
    <cc>m.goleb+bugzilla</cc>
    
    <cc>mkhatib727</cc>
    
    <cc>rajsnh200</cc>
    
    <cc>ravic9107</cc>
    
    <cc>shaniyadav929</cc>
    
    <cc>technipak45</cc>
    
    <cc>vihaanchauhan8443</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yosin</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>638822</commentid>
    <comment_count>0</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-05-31 17:05:49 -0700</bug_when>
    <thetext>Add suuport for &lt;input type=&quot;time&quot;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647454</commentid>
    <comment_count>1</comment_count>
      <attachid>147186</attachid>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-06-12 16:24:43 -0700</bug_when>
    <thetext>Created attachment 147186
First patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647488</commentid>
    <comment_count>2</comment_count>
      <attachid>147186</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-12 16:54:34 -0700</bug_when>
    <thetext>Comment on attachment 147186
First patch

Attachment 147186 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12939855</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647761</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-13 00:21:37 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=147186) [details]
&gt; First patch

What do you think about UI in a page? How does a user invoke TimeChooser?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647766</commentid>
    <comment_count>4</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-13 00:25:24 -0700</bug_when>
    <thetext>Please use ENABLE_TIME_CHOOSER for enabling this feature.
Some port, e.g. Android, enables ENABLE_TIME_INPUT but they may not want to use time chooser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647767</commentid>
    <comment_count>5</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-13 00:26:40 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Please use ENABLE_TIME_CHOOSER for enabling this feature.
&gt; Some port, e.g. Android, enables ENABLE_TIME_INPUT but they may not want to use time chooser.

There is an ENABLE_CALENDAR_PICKER used in WebCore/html/DateInputType.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647978</commentid>
    <comment_count>6</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-06-13 06:57:43 -0700</bug_when>
    <thetext>I was thinking of modeling it on color chooser implementation (haven&apos;t uploaded a patch but have it on my branch). But when I saw the bug that Yosin was working, wanted to wait for that before proceeding with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647979</commentid>
    <comment_count>7</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-06-13 06:57:58 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #1)
&gt; &gt; Created an attachment (id=147186) [details] [details]
&gt; &gt; First patch
&gt; 
&gt; What do you think about UI in a page? How does a user invoke TimeChooser?

I was thinking of modeling it on color chooser implementation (haven&apos;t uploaded a patch but have it on my branch). But when I saw the bug that Yosin was working, wanted to wait for that before proceeding with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648592</commentid>
    <comment_count>8</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-06-13 17:00:24 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Please use ENABLE_TIME_CHOOSER for enabling this feature.
&gt; &gt; Some port, e.g. Android, enables ENABLE_TIME_INPUT but they may not want to use time chooser.
&gt; 
&gt; There is an ENABLE_CALENDAR_PICKER used in WebCore/html/DateInputType.cpp

If I am understanding it correctly, you are suggesting that this feature that delegates the UI to the client in another flag similar to CALENDAR_PICKER?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648639</commentid>
    <comment_count>9</comment_count>
    <who name="Dinu Jacob">dinu.jacob</who>
    <bug_when>2012-06-13 18:01:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; Please use ENABLE_TIME_CHOOSER for enabling this feature.
&gt; &gt; &gt; Some port, e.g. Android, enables ENABLE_TIME_INPUT but they may not want to use time chooser.
&gt; &gt; 
&gt; &gt; There is an ENABLE_CALENDAR_PICKER used in WebCore/html/DateInputType.cpp
&gt; 
&gt; If I am understanding it correctly, you are suggesting that this feature that delegates the UI to the client in another flag similar to CALENDAR_PICKER?

I meant be * be wrapped * in another flag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648649</commentid>
    <comment_count>10</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-13 18:14:08 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; &gt; Please use ENABLE_TIME_CHOOSER for enabling this feature.
&gt; &gt; &gt; &gt; Some port, e.g. Android, enables ENABLE_TIME_INPUT but they may not want to use time chooser.
&gt; &gt; &gt; 
&gt; &gt; &gt; There is an ENABLE_CALENDAR_PICKER used in WebCore/html/DateInputType.cpp
&gt; &gt; 
&gt; &gt; If I am understanding it correctly, you are suggesting that this feature that delegates the UI to the client in another flag similar to CALENDAR_PICKER?
&gt; 
&gt; I meant be * be wrapped * in another flag

Yes, please use another flag something like ENABLE_TIME_PICKER, or another appropriate one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648772</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-13 21:11:10 -0700</bug_when>
    <thetext>For desktop browsers, inline editing UI which yosin is working on is enough and picker dialog UI would be unnecessary (or optional).  On the other hand, we want picker dialog UI for mobile browsers, and no inline editing UI.  iOS and Chromium/Android have picker dialog UI for date/time types.
So, both of inline editing UI and picker dialog UI should have their own ENABLE flags.

I think we can make generic API of picker dialog UI for all of date/time types.

We currently have PAGE_POPUP API in ChromeClient for CALENDAR_PICKER, however we might able to change CALENDAR_PICKER so that it uses the generic API and PAGE_POPUP API is one of implementations of the generic API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762656</commentid>
    <comment_count>12</comment_count>
      <attachid>147186</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-09 00:29:46 -0800</bug_when>
    <thetext>Comment on attachment 147186
First patch

Please apply
 * ENABLE_INPUT_MULTIPLE_FIELDS_UI or 
 * No ENABLE_INPUT_MULTIPLE_FIELDS, and support ChromeClient::openDateTimeChooser</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147186</attachid>
            <date>2012-06-12 16:24:43 -0700</date>
            <delta_ts>2012-11-09 00:29:46 -0800</delta_ts>
            <desc>First patch</desc>
            <filename>88026.patch</filename>
            <type>text/plain</type>
            <size>39182</size>
            <attacher name="Dinu Jacob">dinu.jacob</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyN2M2ZjNiLi4xZDgyYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTItMDYtMTIgIERpbnUgSmFjb2IgIDxkaW51LmphY29iQG5va2lhLmNvbT4KKworICAg
ICAgICBbV2syXSBTdXBwb3J0IGlucHV0IGVsZW1lbnQgdGltZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgwMjYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBpbnB1dCBlbGVt
ZW50IHRpbWUuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUNocm9tZUNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlVGltZUNob29zZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNldFNlbGVjdGVkVGltZUluVGlt
ZUNob29zZXIpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVUaW1lQ2hvb3Nlcik6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWU6OnNldFNlbGVjdGVkVGltZUluVGltZUNob29zZXIpOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENocm9tZSk6
CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoQ2hyb21lQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5o
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHM6OkRhdGVDb21wb25lbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVDb21wb25lbnRzOjpvcGVyYXRvcj09KToKKyAgICAgICAgKERh
dGVDb21wb25lbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9UaW1lQ2hvb3Nlci5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVGltZUNob29zZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VGltZUNob29zZXI6OlRpbWVDaG9vc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVD
aG9vc2VyOjplbmRDaG9vc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVDaG9vc2VyOjpzZXRT
ZWxlY3RlZFRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL1RpbWVDaG9vc2VyQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChUaW1lQ2hvb3NlckNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpUaW1lQ2hvb3NlckNsaWVudDo6flRpbWVDaG9vc2VyQ2xpZW50KToK
KwogMjAxMi0wNi0xMiAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIERvbid0IGNyYXNoIGluIENDTGF5ZXJJdGVyYXRvciBpZiB0aGUg
cm9vdCBsYXllciBkb2Vzbid0IGhhdmUgYSByZW5kZXIgc3VyZmFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBlYmJjMjE0Li43YzY0OTYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMzksNiArMzksMTAgQEAKICNpbmNsdWRlICJD
b2xvckNob29zZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKKyNp
bmNsdWRlICJUaW1lQ2hvb3Nlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMp
IAogI2luY2x1ZGUgIkludGVudFJlcXVlc3QuaCIgCiAjZW5kaWYgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKaW5kZXggYmVjY2Y4OC4uODM1YWE1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaApAQCAtMTc5LDYgKzE3OSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ckNsaWVudCosIGNvbnN0IENvbG9yJikgT1ZFUlJJREU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX1RJTUUpCisgICAgdmlydHVhbCBQYXNzT3duUHRyPFRpbWVDaG9vc2VyPiBjcmVh
dGVUaW1lQ2hvb3NlcihUaW1lQ2hvb3NlckNsaWVudCosIGNvbnN0IERhdGVDb21wb25lbnRzJiwg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYpIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRUaW1lSW5UaW1lQ2hvb3Nlcihj
b25zdCBEYXRlQ29tcG9uZW50cyYpIHsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgcnVu
T3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmls
ZUljb25Mb2FkZXIqKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IGY5ZmExOTQuLjJi
OGI5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTU1LDYgKzU1LDExIEBACiAjaW5jbHVk
ZSAiQ29sb3JDaG9vc2VyLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUp
CisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJUaW1lQ2hvb3Nlci5oIgor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKQEAgLTQ1Myw2ICs0NTgsMTkgQEAgUGFzc093blB0cjxDb2xvckNob29zZXI+IENocm9tZTo6
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LAogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQorUGFzc093blB0cjxUaW1lQ2hvb3Nlcj4g
Q2hyb21lOjpjcmVhdGVUaW1lQ2hvb3NlcihUaW1lQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25z
dCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYgaW5pdGlhbFRpbWUsIGNvbnN0IFdlYkNvcmU6OkRh
dGVDb21wb25lbnRzJiBtaW5UaW1lLCBjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYgbWF4
VGltZSkKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmNyZWF0ZVRpbWVDaG9vc2VyKGNsaWVudCwg
aW5pdGlhbFRpbWUsIG1pblRpbWUsIG1heFRpbWUpOworfQorCit2b2lkIENocm9tZTo6c2V0U2Vs
ZWN0ZWRUaW1lSW5UaW1lQ2hvb3Nlcihjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZXRpbWUpCit7
CisgICAgbV9jbGllbnQtPnNldFNlbGVjdGVkVGltZUluVGltZUNob29zZXIoZGF0ZXRpbWUpOwor
fQorCisjZW5kaWYKKwogdm9pZCBDaHJvbWU6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBh
c3NSZWZQdHI8RmlsZUNob29zZXI+IGZpbGVDaG9vc2VyKQogewogICAgIG1fY2xpZW50LT5ydW5P
cGVuUGFuZWwoZnJhbWUsIGZpbGVDaG9vc2VyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDU2Mzhm
M2EuLjQzZmNiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtNTQsNiArNTQsMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBvcHVwTWVudTsKICAgICBjbGFzcyBQb3B1cE1lbnVD
bGllbnQ7CiAgICAgY2xhc3MgU2VhcmNoUG9wdXBNZW51OworI2lmIEVOQUJMRShJTlBVVF9UWVBF
X1RJTUUpCisgICAgY2xhc3MgRGF0ZUNvbXBvbmVudHM7CisgICAgY2xhc3MgVGltZUNob29zZXI7
CisgICAgY2xhc3MgVGltZUNob29zZXJDbGllbnQ7CisjZW5kaWYKIAogICAgIHN0cnVjdCBGcmFt
ZUxvYWRSZXF1ZXN0OwogICAgIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKQEAgLTE0OSw3ICsx
NTQsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQogICAgICAgICBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENv
bG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOwogI2VuZGlmCi0K
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQorICAgICAgICBQYXNzT3duUHRyPFRpbWVDaG9v
c2VyPiBjcmVhdGVUaW1lQ2hvb3NlcihUaW1lQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6
OkRhdGVDb21wb25lbnRzJiwgY29uc3QgV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHMmLCBjb25zdCBX
ZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYpOworICAgICAgICB2b2lkIHNldFNlbGVjdGVkVGltZUlu
VGltZUNob29zZXIoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGV0aW1lKTsKKyNlbmRpZgogICAg
ICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsK
ICAgICAgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmls
ZUljb25Mb2FkZXIqKTsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IDkxYzA0YmYuLmI1M2E5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaApAQCAtODEsNiArODEsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIENvbG9yQ2hvb3NlckNsaWVudDsKICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfVElNRSkKKyAgICBjbGFzcyBEYXRlQ29tcG9uZW50czsKKyAgICBjbGFzcyBUaW1lQ2hvb3Nl
cjsKKyAgICBjbGFzcyBUaW1lQ2hvb3NlckNsaWVudDsKKyNlbmRpZgorCiAgICAgY2xhc3MgQ2hy
b21lQ2xpZW50IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0
cm95ZWQoKSA9IDA7CkBAIC0yMzIsNiArMjM4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2Vy
KENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikgPSAwOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9USU1FKQorICAgICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8VGltZUNo
b29zZXI+IGNyZWF0ZVRpbWVDaG9vc2VyKFRpbWVDaG9vc2VyQ2xpZW50KiwgY29uc3QgRGF0ZUNv
bXBvbmVudHMmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRUaW1lSW5UaW1lQ2hvb3Nlcihj
b25zdCBEYXRlQ29tcG9uZW50cyYpID0gMDsKKyNlbmRpZgogICAgICAgICB2aXJ0dWFsIHZvaWQg
cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pID0gMDsKICAgICAg
ICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVjaWZpZWQg
ZmlsZW5hbWVzLgogICAgICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RhdGVDb21wb25lbnRzLmgKaW5kZXggZmRiMjY4Mi4uNWMwMThjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oCkBAIC00NSw2ICs0NSwxNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAvLyAqIERhdGVUaW1lIG9yIERhdGVUaW1lTG9jYWwgdHlwZTogeWVhci1t
b250aC1kYXkgaG91ci1taW51dGUtc2Vjb25kLW1pbGxpc2Vjb25kCiBjbGFzcyBEYXRlQ29tcG9u
ZW50cyB7CiBwdWJsaWM6CisgICAgZW51bSBUeXBlIHsKKyAgICAgICAgSW52YWxpZCwKKyAgICAg
ICAgRGF0ZSwKKyAgICAgICAgRGF0ZVRpbWUsCisgICAgICAgIERhdGVUaW1lTG9jYWwsCisgICAg
ICAgIE1vbnRoLAorICAgICAgICBUaW1lLAorICAgICAgICBXZWVrLAorICAgIH07CisKICAgICBE
YXRlQ29tcG9uZW50cygpCiAgICAgICAgIDogbV9taWxsaXNlY29uZCgwKQogICAgICAgICAsIG1f
c2Vjb25kKDApCkBAIC01OCwxNSArNjgsMTggQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAg
ICBlbnVtIFR5cGUgewotICAgICAgICBJbnZhbGlkLAotICAgICAgICBEYXRlLAotICAgICAgICBE
YXRlVGltZSwKLSAgICAgICAgRGF0ZVRpbWVMb2NhbCwKLSAgICAgICAgTW9udGgsCi0gICAgICAg
IFRpbWUsCi0gICAgICAgIFdlZWssCi0gICAgfTsKKyAgICBEYXRlQ29tcG9uZW50cyhUeXBlIHR5
cGUsIGludCBtaWxsaXNlY29uZCwgaW50IHNlY29uZCwgaW50IG1pbnV0ZSwgaW50IGhvdXIsIGlu
dCBtb250aERheSwgaW50IG1vbnRoLCBpbnQgeWVhciwgaW50IHdlZWspCisgICAgICAgIDogbV9t
aWxsaXNlY29uZChtaWxsaXNlY29uZCkKKyAgICAgICAgLCBtX3NlY29uZChzZWNvbmQpCisgICAg
ICAgICwgbV9taW51dGUobWludXRlKQorICAgICAgICAsIG1faG91cihob3VyKQorICAgICAgICAs
IG1fbW9udGhEYXkobW9udGhEYXkpCisgICAgICAgICwgbV9tb250aChtb250aCkKKyAgICAgICAg
LCBtX3llYXIoeWVhcikKKyAgICAgICAgLCBtX3dlZWsod2VlaykKKyAgICAgICAgLCBtX3R5cGUo
dHlwZSkKKyAgICB7CisgICAgfQogCiAgICAgaW50IG1pbGxpc2Vjb25kKCkgY29uc3QgeyByZXR1
cm4gbV9taWxsaXNlY29uZDsgfQogICAgIGludCBzZWNvbmQoKSBjb25zdCB7IHJldHVybiBtX3Nl
Y29uZDsgfQpAQCAtMTU5LDYgKzE3MiwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGlubGluZSBk
b3VibGUgbWF4aW11bVRpbWUoKSB7IHJldHVybiA4NjM5OTk5OTsgfSAvLyAyMzo1OTo1OS45OTkK
ICAgICBzdGF0aWMgaW5saW5lIGRvdWJsZSBtYXhpbXVtV2VlaygpIHsgcmV0dXJuIDg2Mzk5OTk1
NjgwMDAwMDAuMDsgfSAvLyAyNzU3NjAtMDktMDgsIHRoZSBNb25kYXkgb2YgdGhlIHdlZWsgaW5j
bHVkaW5nIDI3NTc2MC0wOS0xMy4KIAorICAgIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3Qg
RGF0ZUNvbXBvbmVudHMmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdHlw
ZSA9PSBvdGhlci5tX3R5cGUgJiYgbV93ZWVrID09IG90aGVyLm1fd2VlayAmJiBtX3llYXIgPT0g
b3RoZXIubV95ZWFyICYmIG1fbW9udGggPT0gb3RoZXIubV9tb250aCAmJiBtX21vbnRoRGF5ID09
IG90aGVyLm1fbW9udGhEYXkgJiYgbV9ob3VyID09IG90aGVyLm1faG91ciAmJiBtX21pbnV0ZSA9
PSBvdGhlci5tX21pbnV0ZSAmJiBtX3NlY29uZCA9PSBvdGhlci5tX3NlY29uZCAmJiBtX21pbGxp
c2Vjb25kID09IG90aGVyLm1fbWlsbGlzZWNvbmQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIC8v
IFJldHVybnMgdGhlIG1heGltdW0gd2VlayBudW1iZXIgaW4gdGhpcyBEYXRlQ29tcG9uZW50cydz
IHllYXIuCiAgICAgLy8gVGhlIHJlc3VsdCBpcyBlaXRoZXIgb2YgNTIgYW5kIDUzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZUNob29zZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1RpbWVDaG9vc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWI2NjgzZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RpbWVDaG9vc2VyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaW1lQ2hvb3Nlcl9oCisjZGVmaW5lIFRpbWVDaG9v
c2VyX2gKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCisjaW5jbHVkZSAiRGF0ZUNvbXBv
bmVudHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBUaW1lQ2hvb3NlciB7Citw
dWJsaWM6CisKKyAgICBUaW1lQ2hvb3NlcigpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9v
c2VyKCkgeyB9CisgICAgdm9pZCBzZXRTZWxlY3RlZFRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMm
KSB7IH0KKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KElOUFVUX1RZUEVfVElNRSkKKworI2VuZGlmIC8vIFRpbWVDaG9vc2VyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVDaG9vc2VyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaW1lQ2hvb3NlckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjQ5ZTczZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9UaW1lQ2hvb3NlckNsaWVudC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGltZUNob29zZXJDbGllbnRf
aAorI2RlZmluZSBUaW1lQ2hvb3NlckNsaWVudF9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9U
SU1FKQorCisjaW5jbHVkZSAiVGltZUNob29zZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEYXRlQ29tcG9uZW50OworCitjbGFzcyBUaW1lQ2hvb3NlckNsaWVudCB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+VGltZUNob29zZXJDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2hvb3NlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRW5kQ2hvb3NlcigpID0gMDsKK307CisKK30KKyNlbmRpZiAvLyBFTkFCTEUoSU5Q
VVRfVFlQRV9USU1FKQorCisjZW5kaWYgLy8gVGltZUNob29zZXJDbGllbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDk0MWEwZDUuLjFmNDkwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxMi0w
Ni0xMiAgRGludSBKYWNvYiAgPGRpbnUuamFjb2JAbm9raWEuY29tPgorCisgICAgICAgIFtXazJd
IFN1cHBvcnQgaW5wdXQgZWxlbWVudCB0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04ODAyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIEFQSSB0byBjcmVhdGUgYSBjdXN0b20gY2xpZW50IHRp
bWUgcGlja2VyIGRpYWxvZy4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQyk6
CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogVGFyZ2V0LnBy
aToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoUGFnZUNsaWVu
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaG9vc2VUaW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRFbmRUaW1lQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6c2hvd1RpbWVDaG9vc2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpl
bmRUaW1lQ2hvb3Nlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0VGltZUNo
b29zZXJUaW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJQYWdlUHJveHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlRpbWVQaWNrZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVGltZVBpY2tlclByb3h5OjpXZWJUaW1lUGlja2VyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJUaW1lUGlja2VyUHJveHk6On5XZWJUaW1lUGlja2Vy
UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJUaW1lUGlja2VyUHJveHkuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJUaW1l
UGlja2VyUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlVGltZUNob29zZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OnNldFNlbGVjdGVkVGltZUluVGltZUNob29zZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVGltZVBp
Y2tlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VGltZVBpY2tlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVGltZVBpY2tlcjo6V2Vi
VGltZVBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlRpbWVQaWNrZXI6On5XZWJUaW1lUGlj
a2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVGltZVBpY2tlcjo6ZGlkQ2hvb3NlVGltZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlRpbWVQaWNrZXI6OmRpZEVuZENob29zZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJUaW1lUGlja2VyOjpkaXNjb25uZWN0RnJvbVBhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJUaW1lUGlja2VyOjplbmRDaG9vc2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVGlt
ZVBpY2tlcjo6c2V0U2VsZWN0ZWRUaW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlRpbWVQaWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJUaW1lUGlja2VyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsb3Nl
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEFjdGl2
ZVRpbWVQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRFbmRUaW1lQ2hvb3Nl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENob29zZVRpbWUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxMi0wNi0xMiAgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCmluZGV4IDNjYjU3YjAuLjg4MTdiZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlRGV0YWlscy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGF0
ZUNvbXBvbmVudHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CkBA
IC01MjUsNiArNTI2LDYwIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxEYXRhYmFzZURldGFpbHM+Ojpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhYmFzZURlCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxEYXRlQ29tcG9uZW50cz46OmVuY29kZShBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRldGltZSkKK3sK
KyAgICBlbmNvZGVyLT5lbmNvZGUoKGludClkYXRldGltZS50eXBlKCkpOworICAgIGVuY29kZXIt
PmVuY29kZShkYXRldGltZS5taWxsaXNlY29uZCgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoZGF0
ZXRpbWUuc2Vjb25kKCkpOworICAgIGVuY29kZXItPmVuY29kZShkYXRldGltZS5taW51dGUoKSk7
CisgICAgZW5jb2Rlci0+ZW5jb2RlKGRhdGV0aW1lLmhvdXIoKSk7CisgICAgZW5jb2Rlci0+ZW5j
b2RlKGRhdGV0aW1lLm1vbnRoRGF5KCkpOworICAgIGVuY29kZXItPmVuY29kZShkYXRldGltZS5t
b250aCgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoZGF0ZXRpbWUuZnVsbFllYXIoKSk7CisgICAg
ZW5jb2Rlci0+ZW5jb2RlKGRhdGV0aW1lLndlZWsoKSk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2Rl
cjxEYXRlQ29tcG9uZW50cz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERhdGVD
b21wb25lbnRzJiBkYXRldGltZSkKK3sKKyAgICBpbnQgdHlwZTsKKyAgICBpZiAoIWRlY29kZXIt
PmRlY29kZSh0eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IG1pbGxpc2Vj
b25kOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKG1pbGxpc2Vjb25kKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaW50IHNlY29uZDsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShz
ZWNvbmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQgbWludXRlOworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKG1pbnV0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGludCBob3VyOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGhvdXIpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpbnQgbW9udGhEYXk7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
bW9udGhEYXkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQgbW9udGg7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUobW9udGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpbnQgZnVsbFllYXI7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoZnVsbFllYXIpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQgd2VlazsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZSh3ZWVrKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZGF0ZXRpbWUgPSBEYXRl
Q29tcG9uZW50cygoRGF0ZUNvbXBvbmVudHM6OlR5cGUpdHlwZSwgbWlsbGlzZWNvbmQsIHNlY29u
ZCwgbWludXRlLCBob3VyLCBtb250aERheSwgbW9udGgsIGZ1bGxZZWFyLCB3ZWVrKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVudENvZGVyPEZpbGVDaG9vc2VyU2V0dGluZ3M+
OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBGaWxlQ2hvb3NlclNldHRp
bmdzJiBzZXR0aW5ncykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCAyNjk3NDA4Li5mNDU2YWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBDcmVkZW50aWFsOwogICAgIGNsYXNzIEN1cnNvcjsKICAg
ICBjbGFzcyBEYXRhYmFzZURldGFpbHM7CisgICAgY2xhc3MgRGF0ZUNvbXBvbmVudHM7CiAgICAg
Y2xhc3MgRmxvYXRQb2ludDsKICAgICBjbGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xhc3MgRmxvYXRT
aXplOwpAQCAtMjA5LDYgKzIxMCwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscz4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXIqLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMmKTsKIH07CiAKK3RlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RGF0ZUNvbXBvbmVudHM+IHsKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6RGF0ZUNv
bXBvbmVudHMmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2Vi
Q29yZTo6RGF0ZUNvbXBvbmVudHMmKTsKK307CisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncz4gewogICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdz
Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkZp
bGVDaG9vc2VyU2V0dGluZ3MmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IDNjYmU5MWYuLjc5YTczMmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaQpAQCAtNzk4LDYgKzc5OCwxNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
VE9VQ0hfRVZFTlRTPTEpIHsKIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FUSU9O
PTEpOiBRVCArPSBsb2NhdGlvbgogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FPTEpIHsKKyAgICBIRUFERVJTICs9IFwKKyAgICAgICAgVUlQcm9jZXNzL1dlYlRpbWVQ
aWNrZXJQcm94eS5oIFwKKyAgICAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJUaW1l
UGlja2VyLmgKKworICAgIFNPVVJDRVMgKz0gXAorICAgICAgICBVSVByb2Nlc3MvV2ViVGltZVBp
Y2tlclByb3h5LmNwcCBcCisgICAgICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVGlt
ZVBpY2tlci5jcHAKK30KKwogcGx1Z2luX2JhY2tlbmRfeGxpYiB7CiAgICAgREVGSU5FUyArPSBY
UF9VTklYCiAgICAgUEtHQ09ORklHICs9IHgxMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKaW5kZXggNjIwNThmZC4uNmFhODU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCkBAIC0yMTUsNiArMjE1LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Zmxhc2hCYWNraW5nU3RvcmVVcGRhdGVzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYg
dXBkYXRlUmVjdHMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmluZFN0cmluZ0luQ3VzdG9tUmVw
cmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgRmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNo
Q291bnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY291bnRTdHJpbmdNYXRjaGVzSW5DdXN0b21S
ZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucywgdW5zaWduZWQgbWF4TWF0
Y2hDb3VudCkgPSAwOworCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2ViVGltZVBpY2tlclByb3h5PiBjcmVhdGVUaW1lUGlja2VyUHJveHkoV2Vi
UGFnZVByb3h5KikgPSAwOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTg0YzQ2Ny4uZDQy
YWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc1
LDYgKzc1LDEwIEBACiAjaW5jbHVkZSAiV2ViUHJvdGVjdGlvblNwYWNlLmgiCiAjaW5jbHVkZSAi
V2ViU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCisjaWYgRU5B
QkxFKElOUFVUX1RZUEVfVElNRSkKKyNpbmNsdWRlICJXZWJUaW1lUGlja2VyUHJveHkuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0RhdGVDb21wb25lbnRzLmg+CisjZW5kaWYKICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KQEAgLTQzNyw2ICs0NDEsMTAgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmNsb3NlKCkKIAogICAgIG1fZHJhd2luZ0FyZWEgPSBudWxscHRyOwogCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKKyAgICBtX2FjdGl2ZVRpbWVQaWNrZXIgPSAwOwor
I2VuZGlmCisKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsb3NlKCks
IG1fcGFnZUlEKTsKICAgICBwcm9jZXNzKCktPnJlbW92ZVdlYlBhZ2UobV9wYWdlSUQpOwogfQpA
QCAtMjc5MCw2ICsyNzk4LDQ4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoaWRlUG9wdXBNZW51KCkK
ICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IDA7CiB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9U
SU1FKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENob29zZVRpbWUoY29uc3QgV2ViQ29yZTo6RGF0
ZUNvbXBvbmVudHMmIHNlbGVjdGVkVGltZSkKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRD
aG9vc2VUaW1lKHNlbGVjdGVkVGltZSksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEVuZFRpbWVDaG9vc2VyKCkKK3sKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgIG1fYWN0aXZlVGltZVBpY2tlciA9IDA7CisgICAgIHByb2Nlc3MoKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkRW5kVGltZUNob29zZXIoKSwgbV9wYWdlSUQpOwor
fQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1RpbWVDaG9vc2VyKGNvbnN0IFdlYkNvcmU6OkRh
dGVDb21wb25lbnRzJiBpbml0aWFsVGltZSwgY29uc3QgV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHMm
IG1pblRpbWUsIGNvbnN0IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJiBtYXhUaW1lKQoreworICAg
IGVuZFRpbWVDaG9vc2VyKCk7CisKKyAgICBtX2FjdGl2ZVRpbWVQaWNrZXIgPSBtX3BhZ2VDbGll
bnQtPmNyZWF0ZVRpbWVQaWNrZXJQcm94eSh0aGlzKTsKKyAgICBtX2FjdGl2ZVRpbWVQaWNrZXIt
PnNob3coaW5pdGlhbFRpbWUsIG1pblRpbWUsIG1heFRpbWUpOworfQorCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZW5kVGltZUNob29zZXIoKQoreworICAgIGlmICghbV9hY3RpdmVUaW1lUGlja2VyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2FjdGl2ZVRpbWVQaWNrZXItPmhpZGUoKTsKKyAgICBt
X2FjdGl2ZVRpbWVQaWNrZXIgPSAwOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VGltZUNo
b29zZXJUaW1lKGNvbnN0IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJikKK3sKKworfQorCisjZW5k
aWYKKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dD
b250ZXh0TWVudShjb25zdCBJbnRQb2ludCYgbWVudUxvY2F0aW9uLCBjb25zdCBXZWJIaXRUZXN0
UmVzdWx0OjpEYXRhJiBoaXRUZXN0UmVzdWx0RGF0YSwgY29uc3QgVmVjdG9yPFdlYkNvbnRleHRN
ZW51SXRlbURhdGE+JiBwcm9wb3NlZEl0ZW1zLCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFy
Z3VtZW50cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2
ZDk4NTk4Li42MGVhNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC05MCw2ICs5MCw5IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKICAgICBjbGFzcyBDdXJzb3I7
CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKKyAgICBjbGFzcyBEYXRlQ29tcG9uZW50czsK
KyNlbmRpZgogICAgIGNsYXNzIERyYWdEYXRhOwogICAgIGNsYXNzIEZsb2F0UmVjdDsKICAgICBj
bGFzcyBJbnRTaXplOwpAQCAtMTM3LDYgKzE0MCw5IEBAIGNsYXNzIFdlYk1vdXNlRXZlbnQ7CiBj
bGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3Vw
OwogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCitj
bGFzcyBXZWJUaW1lUGlja2VyUHJveHk7CisjZW5kaWYKIGNsYXNzIFdlYlVSTFJlcXVlc3Q7CiBj
bGFzcyBXZWJXaGVlbEV2ZW50Owogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CkBAIC02NjgsNiAr
Njc0LDExIEBAIHB1YmxpYzoKICAgICAvLyBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50CiAgICAg
dmlydHVhbCBOYXRpdmVXZWJNb3VzZUV2ZW50KiBjdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25F
dmVudCgpOwogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKKyAgICB2b2lkIGRpZENob29z
ZVRpbWUoY29uc3QgV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHMmKTsKKyAgICB2b2lkIGRpZEVuZFRp
bWVDaG9vc2VyKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNs
aWVudCosIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgV2ViUGFnZUdyb3VwKiwgdWludDY0
X3QgcGFnZUlEKTsKIApAQCAtNzgyLDYgKzc5MywxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiAgICAgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCk7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQorICAgIHZvaWQgc2hvd1RpbWVDaG9vc2VyKGNvbnN0
IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJiBpbml0aWFsVGltZSwgY29uc3QgV2ViQ29yZTo6RGF0
ZUNvbXBvbmVudHMmIG1pblRpbWUsIGNvbnN0IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJiBtYXhU
aW1lKTsKKyAgICB2b2lkIGVuZFRpbWVDaG9vc2VyKCk7CisgICAgdm9pZCBzZXRUaW1lQ2hvb3Nl
clRpbWUoY29uc3QgV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHMmKTsKKyNlbmRpZgogCiAgICAgdm9p
ZCBlZGl0b3JTdGF0ZUNoYW5nZWQoY29uc3QgRWRpdG9yU3RhdGUmKTsKIApAQCAtOTczLDYgKzk4
OSw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFJlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4g
bV9hY3RpdmVQb3B1cE1lbnU7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKKyAgICBSZWZQ
dHI8V2ViVGltZVBpY2tlclByb3h5PiBtX2FjdGl2ZVRpbWVQaWNrZXI7CisjZW5kaWYKICAgICBS
ZWZQdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gbV9hY3RpdmVDb250ZXh0TWVudTsKICAgICBXZWJI
aXRUZXN0UmVzdWx0OjpEYXRhIG1fYWN0aXZlQ29udGV4dE1lbnVIaXRUZXN0UmVzdWx0RGF0YTsK
ICAgICBSZWZQdHI8V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4gbV9vcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IGRlNjBhNzEuLjBlODMwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtODMsNiArODMs
MTMgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBOZWVkVG91Y2hFdmVudHMoYm9v
bCBuZWVkVG91Y2hFdmVudHMpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUp
CisgICAgIyBUaW1lSW5wdXQgbWVzc2FnZXMKKyAgICBTaG93VGltZUNob29zZXIoV2ViQ29yZTo6
RGF0ZUNvbXBvbmVudHMgaW5pdGlhbFRpbWUsIFdlYkNvcmU6OkRhdGVDb21wb25lbnRzIG1pblRp
bWUsIFdlYkNvcmU6OkRhdGVDb21wb25lbnRzIG1heFRpbWUpCisgICAgRW5kVGltZUNob29zZXIo
KQorICAgIFNldFRpbWVDaG9vc2VyVGltZShXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyB0aW1lKQor
I2VuZGlmCisKICAgICAjIFBvbGljeSBtZXNzYWdlcwogICAgIERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Us
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSAtPiAoYm9v
bCByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QgcG9saWN5QWN0aW9uLCB1aW50NjRfdCBk
b3dubG9hZElEKQogICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3Qg
ZnJhbWVJRCwgdWludDMyX3QgbmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG1vZGlmaWVycywgaW50
MzJfdCBtb3VzZUJ1dHRvbiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIg
dXNlckRhdGEpIC0+IChib29sIHJlY2VpdmVkUG9saWN5QWN0aW9uLCB1aW50NjRfdCBwb2xpY3lB
Y3Rpb24sIHVpbnQ2NF90IGRvd25sb2FkSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViVGltZVBpY2tlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJUaW1lUGlja2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA0MDAyODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViVGltZVBpY2tlclByb3h5LmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJUaW1lUGlja2VyUHJveHkuaCIK
KworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVGltZVBpY2tlclByb3h5OjpXZWJUaW1lUGlj
a2VyUHJveHkoKQoreworfQorCitXZWJUaW1lUGlja2VyUHJveHk6On5XZWJUaW1lUGlja2VyUHJv
eHkoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJUaW1lUGlja2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJUaW1lUGlja2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kODZlNjA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlRpbWVQaWNrZXJQcm94eS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBXZWJUaW1lUGlja2VyUHJveHlfaAorI2RlZmluZSBXZWJUaW1lUGlja2Vy
UHJveHlfaAorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgRGF0ZUNvbXBvbmVudHM7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJUaW1lUGlja2VyUHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJUaW1lUGlja2Vy
UHJveHk+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJUaW1lUGlja2VyUHJveHkoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzaG93KGNvbnN0IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJiwgY29u
c3QgV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHMmLCBjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50
cyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpID0gMDsKKworcHJvdGVjdGVkOgorICAg
IFdlYlRpbWVQaWNrZXJQcm94eSgpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBXZWJUaW1lUGlja2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IGMwNmYxMWIuLmEwMDJhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQ0LDkgKzQ0
LDE1IEBACiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKICNpbmNsdWRlICJXZWJTZWFyY2hQb3B1cE1lbnUuaCIKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9USU1FKQorI2luY2x1ZGUgIldlYlRpbWVQaWNrZXIuaCIKKyNlbmRpZgogI2luY2x1
ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3JDaG9v
c2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRyYWNrZXIuaD4KKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9USU1FKQorI2luY2x1ZGUgPFdlYkNvcmUvRGF0ZUNvbXBvbmVudHMuaD4KKyNl
bmRpZgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZpbGVJY29uTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtNzYxLDQg
Kzc2NywxNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCh1bnNpZ25lZCBjb3VudCkKICAgICBtX3BhZ2UtPm51bVdoZWVsRXZlbnRIYW5kbGVyc0No
YW5nZWQoY291bnQpOwogfQogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKK1Bhc3NPd25Q
dHI8V2ViQ29yZTo6VGltZUNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlVGltZUNob29z
ZXIoV2ViQ29yZTo6VGltZUNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6RGF0
ZUNvbXBvbmVudHMmIGluaXRpYWxUaW1lLCBjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYg
bWluVGltZSwgY29uc3QgV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHMmIG1heFRpbWUpCit7CisgICAg
cmV0dXJuIFdlYlRpbWVQaWNrZXI6OmNyZWF0ZShtX3BhZ2UsIGNsaWVudCwgaW5pdGlhbFRpbWUs
IG1pblRpbWUsIG1heFRpbWUpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0U2VsZWN0
ZWRUaW1lSW5UaW1lQ2hvb3Nlcihjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDE4ZTA0ZGIuLjU3Y2MxOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtMjA2LDcgKzIwNiwxMiBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICB2aXJ0dWFsIHZvaWQgbWFrZUZpcnN0UmVzcG9uZGVyKCkgT1ZFUlJJREU7CiAjZW5kaWYK
LSAgICAKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCisgICAgdmlydHVhbCBQYXNzT3du
UHRyPFdlYkNvcmU6OlRpbWVDaG9vc2VyPiBjcmVhdGVUaW1lQ2hvb3NlcihXZWJDb3JlOjpUaW1l
Q2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJiwgY29uc3QgV2Vi
Q29yZTo6RGF0ZUNvbXBvbmVudHMmLCBjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZFRpbWVJblRpbWVDaG9vc2VyKGNv
bnN0IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJik7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBXZWJDb3JlOjpWaWV3
cG9ydEFyZ3VtZW50cyYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9W
RVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJUaW1lUGlja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViVGltZVBpY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uODQ3ODg5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViVGltZVBpY2tlci5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVGltZVBp
Y2tlci5oIgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKKworI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0RhdGVDb21wb25lbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UaW1lQ2hvb3NlckNs
aWVudC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1Bhc3NPd25QdHI8V2ViVGltZVBpY2tlcj4gV2ViVGltZVBpY2tlcjo6Y3JlYXRlKFdlYlBh
Z2UqIHBhZ2UsIFRpbWVDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IERhdGVDb21wb25lbnRz
JiBpbml0aWFsVGltZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIG1pblRpbWUsIGNvbnN0IERhdGVD
b21wb25lbnRzJiBtYXhUaW1lKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViVGltZVBp
Y2tlcihwYWdlLCBjbGllbnQsIGluaXRpYWxUaW1lLCBtaW5UaW1lLCBtYXhUaW1lKSk7Cit9CisK
K1dlYlRpbWVQaWNrZXI6OldlYlRpbWVQaWNrZXIoV2ViUGFnZSogcGFnZSwgVGltZUNob29zZXJD
bGllbnQqIGNsaWVudCwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGluaXRpYWxUaW1lLCBjb25zdCBE
YXRlQ29tcG9uZW50cyYgbWluVGltZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIG1heFRpbWUpCisg
ICAgOiBtX3RpbWVQaWNrZXJDbGllbnQoY2xpZW50KQorICAgICwgbV9wYWdlKHBhZ2UpCit7CisK
KyAgICBtX3BhZ2UtPnNldEFjdGl2ZVRpbWVQaWNrZXIodGhpcyk7CisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dU
aW1lQ2hvb3Nlcihpbml0aWFsVGltZSwgbWluVGltZSwgbWF4VGltZSksIG1fcGFnZS0+cGFnZUlE
KCkpOworfQorCitXZWJUaW1lUGlja2VyOjp+V2ViVGltZVBpY2tlcigpCit7CisgICAgaWYgKCFt
X3BhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS0+c2V0QWN0aXZlVGltZVBpY2tl
cigwKTsKK30KKwordm9pZCBXZWJUaW1lUGlja2VyOjpkaWRDaG9vc2VUaW1lKGNvbnN0IERhdGVD
b21wb25lbnRzJiB0aW1lKQoreworICAgIGlmICghbV90aW1lUGlja2VyQ2xpZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3RpbWVQaWNrZXJDbGllbnQtPmRpZENob29zZVRpbWUodGltZSk7
Cit9CisKK3ZvaWQgV2ViVGltZVBpY2tlcjo6ZGlkRW5kQ2hvb3NlcigpCit7CisgICAgaWYgKCFt
X3RpbWVQaWNrZXJDbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdGltZVBpY2tlckNs
aWVudC0+ZGlkRW5kQ2hvb3NlcigpOworfQorCit2b2lkIFdlYlRpbWVQaWNrZXI6OmRpc2Nvbm5l
Y3RGcm9tUGFnZSgpCit7CisgICAgbV9wYWdlID0gMDsKK30KKwordm9pZCBXZWJUaW1lUGlja2Vy
OjplbmRDaG9vc2VyKCkKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkVuZFRpbWVDaG9vc2VyKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorCit2b2lk
IFdlYlRpbWVQaWNrZXI6OnNldFNlbGVjdGVkVGltZShjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9u
ZW50cyYgdGltZSkKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlNldFRpbWVDaG9vc2VyVGltZSh0aW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVGltZVBpY2tlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJUaW1lUGlja2VyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzliNDIwOAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViVGltZVBpY2tlci5oCkBA
IC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBXZWJUaW1lUGlja2Vy
X2gKKyNkZWZpbmUgV2ViVGltZVBpY2tlcl9oCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1F
KQorI2luY2x1ZGUgPFdlYkNvcmUvVGltZUNob29zZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgRGF0ZUNvbXBvbmVudHM7CitjbGFzcyBUaW1lQ2hvb3NlckNsaWVudDsKK30KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlRpbWVQaWNr
ZXIgOiBwdWJsaWMgV2ViQ29yZTo6VGltZUNob29zZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFdlYlRpbWVQaWNrZXI+IGNyZWF0ZShXZWJQYWdlKiwgV2ViQ29yZTo6VGltZUNo
b29zZXJDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYgaW5pdGlhbFRpbWUs
IGNvbnN0IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJiBtaW5UaW1lLCBjb25zdCBXZWJDb3JlOjpE
YXRlQ29tcG9uZW50cyYgbWF4VGltZSk7CisKKyAgICB+V2ViVGltZVBpY2tlcigpOworCisgICAg
dm9pZCBkaWRDaG9vc2VUaW1lKGNvbnN0IFdlYkNvcmU6OkRhdGVDb21wb25lbnRzJik7CisgICAg
dm9pZCBkaWRFbmRDaG9vc2VyKCk7CisgICAgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBlbmRDaG9vc2VyKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNldFNlbGVjdGVkVGltZShjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYpIE9WRVJSSURF
OworCitwcml2YXRlOgorICAgIFdlYlRpbWVQaWNrZXIoV2ViUGFnZSosIFdlYkNvcmU6OlRpbWVD
aG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHMmIGluaXRpYWxUaW1l
LCBjb25zdCBXZWJDb3JlOjpEYXRlQ29tcG9uZW50cyYgbWluVGltZSwgY29uc3QgV2ViQ29yZTo6
RGF0ZUNvbXBvbmVudHMmIG1heFRpbWUpOworCisgICAgV2ViQ29yZTo6VGltZUNob29zZXJDbGll
bnQqIG1fdGltZVBpY2tlckNsaWVudDsKKyAgICBXZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCisK
KyNlbmRpZiAvLyBXZWJUaW1lUGlja2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ZTM2MjNjLi5kMGVlOTY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03MSw2ICs3MSw5IEBA
CiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2lmIEVOQUJMRShJTlBV
VF9UWVBFX1RJTUUpCisjaW5jbHVkZSAiV2ViVGltZVBpY2tlci5oIgorI2VuZGlmCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQWJzdHJhY3RE
YXRhYmFzZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CkBAIC02MzEs
NiArNjM0LDEzIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgICAgICBtX2FjdGl2ZU9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyID0gMDsKICAgICB9CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9U
SU1FKQorICAgIGlmIChtX2FjdGl2ZVRpbWVQaWNrZXIpIHsKKyAgICAgICAgbV9hY3RpdmVUaW1l
UGlja2VyLT5kaXNjb25uZWN0RnJvbVBhZ2UoKTsKKyAgICAgICAgbV9hY3RpdmVUaW1lUGlja2Vy
ID0gMDsKKyAgICB9CisjZW5kaWYKKwogICAgIG1fc2FuZGJveEV4dGVuc2lvblRyYWNrZXIuaW52
YWxpZGF0ZSgpOwogCiAgICAgbV91bmRlcmxheVBhZ2UgPSBudWxscHRyOwpAQCAtMjMxNCw2ICsy
MzI0LDMxIEBAIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlUG9wdXBNZW51KFdlYlBvcHVwTWVudSog
bWVudSkKICAgICBtX2FjdGl2ZVBvcHVwTWVudSA9IG1lbnU7CiB9CiAKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9USU1FKQordm9pZCBXZWJQYWdlOjpzZXRBY3RpdmVUaW1lUGlja2VyKFdlYlRpbWVQ
aWNrZXIqIHRpbWVQaWNrZXIpCit7CisgICAgbV9hY3RpdmVUaW1lUGlja2VyID0gdGltZVBpY2tl
cjsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRFbmRUaW1lQ2hvb3NlcigpCit7CisgICAgaWYgKCFt
X2FjdGl2ZVRpbWVQaWNrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fYWN0aXZlVGltZVBp
Y2tlci0+ZGlkRW5kQ2hvb3NlcigpOworICAgIG1fYWN0aXZlVGltZVBpY2tlciA9IDA7Cit9CisK
K3ZvaWQgV2ViUGFnZTo6ZGlkQ2hvb3NlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgc2VsZWN0
ZWRUaW1lKQoreworICAgIGlmICghbV9hY3RpdmVUaW1lUGlja2VyKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2FjdGl2ZVRpbWVQaWNrZXItPmRpZENob29zZVRpbWUoc2VsZWN0ZWRUaW1lKTsK
K30KKworI2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6c2V0QWN0aXZlT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIoUGFzc1JlZlB0cjxXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcj4gb3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIpCiB7CiAgICAgbV9hY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciA9IG9w
ZW5QYW5lbFJlc3VsdExpc3RlbmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggMTVkYTdmNS4uOTVjMzY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDAsNiArMTAwLDkgQEAgbmFtZXNwYWNl
IENvcmVJUEMgewogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfVElNRSkKKyAgICBjbGFzcyBEYXRlQ29tcG9uZW50czsKKyNlbmRpZgogICAgIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFtZVZpZXc7CkBA
IC0xNTAsNiArMTUzLDEwIEBAIGNsYXNzIFdlYkdlc3R1cmVFdmVudDsKIGNsYXNzIFdlYlRvdWNo
RXZlbnQ7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCitjbGFzcyBXZWJU
aW1lUGlja2VyOworI2VuZGlmCisKIGNsYXNzIFdlYlBhZ2UgOiBwdWJsaWMgQVBJT2JqZWN0LCBw
dWJsaWMgQ29yZUlQQzo6TWVzc2FnZVNlbmRlcjxXZWJQYWdlPiB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVCdW5kbGVQYWdlOwpAQCAtMjEzLDYgKzIyMCwx
MSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luUmVkbygpIGNvbnN0IHsgcmV0dXJuIG1faXNJblJl
ZG87IH0KIAogICAgIHZvaWQgc2V0QWN0aXZlUG9wdXBNZW51KFdlYlBvcHVwTWVudSopOworI2lm
IEVOQUJMRShJTlBVVF9UWVBFX1RJTUUpCisgICAgdm9pZCBzZXRBY3RpdmVUaW1lUGlja2VyKFdl
YlRpbWVQaWNrZXIqKTsKKyAgICB2b2lkIGRpZENob29zZVRpbWUoY29uc3QgV2ViQ29yZTo6RGF0
ZUNvbXBvbmVudHMmKTsKKyAgICB2b2lkIGRpZEVuZFRpbWVDaG9vc2VyKCk7CisjZW5kaWYKICAg
ICAKICAgICBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lciogYWN0aXZlT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXIoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
LmdldCgpOyB9CiAgICAgdm9pZCBzZXRBY3RpdmVPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcihQYXNz
UmVmUHRyPFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyPik7CkBAIC03OTMsNiArODA1LDkgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXI+IG1fZnVsbFNjcmVlbk1h
bmFnZXI7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUG9wdXBNZW51PiBtX2FjdGl2ZVBvcHVwTWVu
dTsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FKQorICAgIFdlYlRpbWVQaWNrZXIqIG1fYWN0
aXZlVGltZVBpY2tlcjsKKyNlbmRpZgogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIFJl
ZlB0cjxXZWJDb250ZXh0TWVudT4gbV9jb250ZXh0TWVudTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCAzYjBjZWRjLi5mYmU2NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjczLDQgKzI3Myw5IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgewogI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQogICAgIFNl
dFZpc2liaWxpdHlTdGF0ZShpbnQgdmlzaWJpbGl0eVN0YXRlLCBib29sIGlzSW5pdGlhbFN0YXRl
KTsKICNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRSkKKyAgICBEaWRDaG9vc2VU
aW1lKFdlYkNvcmU6OkRhdGVDb21wb25lbnRzIHNlbGVjdGVkVGltZSk7CisgICAgRGlkRW5kVGlt
ZUNob29zZXIoKTsKKyNlbmRpZgogfQo=
</data>
<flag name="review"
          id="154644"
          type_id="1"
          status="-"
          setter="tkent"
    />
    <flag name="commit-queue"
          id="154653"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>