<?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>170723</bug_id>
          
          <creation_ts>2017-04-11 03:33:06 -0700</creation_ts>
          <short_desc>[JSC][GTK] Use RunLoop::Timer in GTK port</short_desc>
          <delta_ts>2017-04-12 09:59:56 -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>New Bugs</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1296339</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 03:33:06 -0700</bug_when>
    <thetext>[JSC][GTK] Use RunLoop::Timer in GTK port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296340</commentid>
    <comment_count>1</comment_count>
      <attachid>306794</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 03:46:40 -0700</bug_when>
    <thetext>Created attachment 306794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296341</commentid>
    <comment_count>2</comment_count>
      <attachid>306795</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 03:52:12 -0700</bug_when>
    <thetext>Created attachment 306795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296342</commentid>
    <comment_count>3</comment_count>
      <attachid>306796</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 03:54:45 -0700</bug_when>
    <thetext>Created attachment 306796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296346</commentid>
    <comment_count>4</comment_count>
      <attachid>306799</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 04:03:13 -0700</bug_when>
    <thetext>Created attachment 306799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296351</commentid>
    <comment_count>5</comment_count>
      <attachid>306800</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 04:26:59 -0700</bug_when>
    <thetext>Created attachment 306800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296352</commentid>
    <comment_count>6</comment_count>
      <attachid>306801</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 04:29:10 -0700</bug_when>
    <thetext>Created attachment 306801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296353</commentid>
    <comment_count>7</comment_count>
      <attachid>306802</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 04:36:16 -0700</bug_when>
    <thetext>Created attachment 306802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296354</commentid>
    <comment_count>8</comment_count>
      <attachid>306803</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 04:40:19 -0700</bug_when>
    <thetext>Created attachment 306803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296357</commentid>
    <comment_count>9</comment_count>
      <attachid>306805</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 05:13:46 -0700</bug_when>
    <thetext>Created attachment 306805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296359</commentid>
    <comment_count>10</comment_count>
      <attachid>306806</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 05:18:01 -0700</bug_when>
    <thetext>Created attachment 306806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296360</commentid>
    <comment_count>11</comment_count>
      <attachid>306803</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-11 05:21:42 -0700</bug_when>
    <thetext>Comment on attachment 306803
Patch

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

&gt; Source/JavaScriptCore/runtime/JSRunLoopTimer.cpp:135
&gt; +    cancelTimer();

I&apos;m not sure we really want to explicitly cancel the timer here, because it also sets m_isScheduled to false. We were not doing that before, we only changed the ready time to s_decade</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296361</commentid>
    <comment_count>12</comment_count>
      <attachid>306806</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-04-11 05:28:51 -0700</bug_when>
    <thetext>Comment on attachment 306806
Patch

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

&gt; Source/JavaScriptCore/runtime/JSRunLoopTimer.cpp:135
&gt; +    cancelTimer();

Please, see my comment in previous review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296362</commentid>
    <comment_count>13</comment_count>
      <attachid>306803</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 05:39:00 -0700</bug_when>
    <thetext>Comment on attachment 306803
Patch

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

Thanks

&gt;&gt; Source/JavaScriptCore/runtime/JSRunLoopTimer.cpp:135
&gt;&gt; +    cancelTimer();
&gt; 
&gt; I&apos;m not sure we really want to explicitly cancel the timer here, because it also sets m_isScheduled to false. We were not doing that before, we only changed the ready time to s_decade

OK, let&apos;s revert this part in this patch. But I&apos;m now a bit thinking about it.
In CF port, we always call setRunLoop. It is non-null for the first time (since we fill it with CFRunLoopGetCurrent() in Heap.cpp).
So, CF timer starts with CFRunLoopTimerCreate &amp; CFRunLoopAddTimer. It&apos;s storange that the timer starts with `m_isScheduled = false`.
I think this is a bug and we need to fix it. At that time, we should fix the both CF &amp; non-CF ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296389</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 07:56:26 -0700</bug_when>
    <thetext>Committed r215228: &lt;http://trac.webkit.org/changeset/215228&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296411</commentid>
    <comment_count>15</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-04-11 08:45:25 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #14)
&gt; Committed r215228: &lt;http://trac.webkit.org/changeset/215228&gt;

This change appears to have broken the Windows build:

https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/592</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296412</commentid>
    <comment_count>16</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 08:45:43 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #15)
&gt; (In reply to Yusuke Suzuki from comment #14)
&gt; &gt; Committed r215228: &lt;http://trac.webkit.org/changeset/215228&gt;
&gt; 
&gt; This change appears to have broken the Windows build:
&gt; 
&gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; 592

Fixing it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296413</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 08:48:11 -0700</bug_when>
    <thetext>Committed r215230: &lt;http://trac.webkit.org/changeset/215230&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296422</commentid>
    <comment_count>18</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-11 08:59:55 -0700</bug_when>
    <thetext>Committed r215232: &lt;http://trac.webkit.org/changeset/215232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1296755</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-12 09:59:56 -0700</bug_when>
    <thetext>Debug build assertions should be fixed by https://bugs.webkit.org/show_bug.cgi?id=170775</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306794</attachid>
            <date>2017-04-11 03:46:40 -0700</date>
            <delta_ts>2017-04-11 03:52:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411194639.patch</filename>
            <type>text/plain</type>
            <size>26280</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li43OTU3YTMwMmNmMDUyNzgw
ODQ1YzAxNmZmMDgwNmU2MTdmNDIxYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2NhdGUpOgor
ICAgICAgICAqIGhlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuY3BwOgorICAgICAgICAoSlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OmRv
V29yayk6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Td2VlcCk6CisgICAg
ICAgICogaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaDoKKyAgICAgICAgKiBoZWFwL1N0b3BJZk5l
Y2Vzc2FyeVRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6U3RvcElmTmVjZXNzYXJ5VGltZXI6OnNj
aGVkdWxlU29vbik6CisgICAgICAgICogcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHA6CisgICAg
ICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpzZXRSdW5Mb29wKToKKyAgICAgICAgKEpTQzo6SlNS
dW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIpOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1l
cjo6Y2FuY2VsVGltZXIpOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRG
aXJlQ2FsbGJhY2spOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6SlNSdW5Mb29wVGlt
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNSdW5Mb29wVGltZXIuaDoKKyAgICAgICAgKiBydW50
aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvbWlzZURlZmVy
cmVkVGltZXI6OnNjaGVkdWxlV29ya1Nvb24pOgorCisyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxv
b3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2E4MDQyZDVjYzIwNGFlNzUy
ZmIxYzk5MDVhMmQ4M2EzYzhlM2Y5MS4uZTdjNWUyYzcxMmE0Mzg3NDhjZDZkZWNjMTllYmYwNGI4
YzE4NzhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29w
OjpUaW1lciBpbiBHVEsgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHNlY29uZHNVbnRpbEZpcmUgbWV0aG9kLiBBbmQgYWRkIHNldE5hbWUg
YW5kIHNldFByaW9yaXR5CisgICAgICAgIGZvciBHVEsgUnVuTG9vcDo6VGltZXIuCisKKyAgICAg
ICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAg
ICAqIHd0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5M
b29wR0xpYi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZSk6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6Cisg
ICAgICAgICogd3RmL3dpbi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6
c2Vjb25kc1VudGlsRmlyZSk6CisKKzIwMTctMDQtMTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gRW5hYmxlIEpTUnVuTG9vcFRpbWVyIGZv
ciBKU0NPbmx5IGFuZCBXaW5kb3dzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA2NTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAppbmRleCAwN2U2YzdhM2YwODU3NmUxNDM3
ZjI4MWU1Mzc1ZWMzNjBjM2NkOGU3Li5iNmJkZTNkZDE3Zjg1ZDQwYzI5N2NkMzZkNDc3MTA3ZWYw
ZmQ1YWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rp
dml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrLmNwcApAQCAtMzEsOCArMzEsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCi0KIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OkVk
ZW5HQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKICAgICA6IEdDQWN0aXZpdHlDYWxsYmFj
ayhoZWFwKQogewpAQCAtNDMsOSArNDEsOSBAQCB2b2lkIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6
OmRvQ29sbGVjdGlvbigpCiAgICAgbV92bS0+aGVhcC5jb2xsZWN0QXN5bmMoQ29sbGVjdGlvblNj
b3BlOjpFZGVuKTsKIH0KIAotZG91YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RHQ0xl
bmd0aCgpCitTZWNvbmRzIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCiB7
Ci0gICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEVkZW5HQ0xlbmd0aCgpLnNlY29uZHMoKTsKKyAg
ICByZXR1cm4gbV92bS0+aGVhcC5sYXN0RWRlbkdDTGVuZ3RoKCk7CiB9CiAKIGRvdWJsZSBFZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQpAQCAtNjksMzIgKzY3LDQgQEAgZG91Ymxl
IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmdjVGltZVNsaWNlKHNpemVfdCBieXRlcykKICAgICBy
ZXR1cm4gc3RkOjptaW4oKHN0YXRpY19jYXN0PGRvdWJsZT4oYnl0ZXMpIC8gTUIpICogT3B0aW9u
czo6cGVyY2VudENQVVBlck1CRm9yRWRlblRpbWVyKCksIE9wdGlvbnM6OmNvbGxlY3Rpb25UaW1l
ck1heFBlcmNlbnRDUFUoKSk7CiB9CiAKLSNlbHNlCi0KLUVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6
OkVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxs
YmFjayhoZWFwLT52bSgpKQotewotfQotCi12b2lkIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRv
Q29sbGVjdGlvbigpCi17Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0
R0NMZW5ndGgoKQotewotICAgIHJldHVybiAwOwotfQotCi1kb3VibGUgRWRlbkdDQWN0aXZpdHlD
YWxsYmFjazo6ZGVhdGhSYXRlKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotZG91YmxlIEVkZW5H
Q0FjdGl2aXR5Q2FsbGJhY2s6OmdjVGltZVNsaWNlKHNpemVfdCkKLXsKLSAgICByZXR1cm4gMDsK
LX0KLQotI2VuZGlmIC8vIFVTRShDRikgfHwgVVNFKEdMSUIpCi0KIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlD
YWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxs
YmFjay5oCmluZGV4IGNjNGU5M2ZjYjlmMzAzOWNhNjM1MDI1ODZiYWQ4NzlmOGFiNTg5MzQuLjg3
NDgyYmRmYjMwMTg2YzAxNmIxYTZhODRjYmFlZDk5MjcwOWZjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTM2LDcg
KzM2LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjayA6
IHB1YmxpYyBHQ0FjdGl2aXR5Q2FsbGJhY2sgewogICAgIHZvaWQgZG9Db2xsZWN0aW9uKCkgb3Zl
cnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICBkb3VibGUgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7
CisgICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoKSBvdmVycmlkZTsKICAgICBkb3VibGUgZ2NUaW1l
U2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVycmlkZTsKICAgICBkb3VibGUgZGVhdGhSYXRlKCkgb3Zl
cnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdD
QWN0aXZpdHlDYWxsYmFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NB
Y3Rpdml0eUNhbGxiYWNrLmNwcAppbmRleCBlNTdkZDNhMWM3OTcxMGYxMjU4NmE5MDM4NzE3YWRk
NGRiNjYxMzlkLi5hNzFjNzY2MjQwZDBmNDViNGIxM2FhYTZiN2M2NTMwNmI0ZDQzNzg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNr
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxi
YWNrLmNwcApAQCAtMzAsOCArMzAsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIFVTRShD
RikgfHwgVVNFKEdMSUIpCi0KICNpZiAhUExBVEZPUk0oSU9TKQogY29uc3QgZG91YmxlIHBhZ2lu
Z1RpbWVPdXQgPSAwLjE7IC8vIFRpbWUgaW4gc2Vjb25kcyB0byBhbGxvdyBvcHBvcnR1bmlzdGlj
IHRpbWVyIHRvIGl0ZXJhdGUgb3ZlciBhbGwgYmxvY2tzIHRvIHNlZSBpZiB0aGUgSGVhcCBpcyBw
YWdlZCBvdXQuCiAjZW5kaWYKQEAgLTU4LDkgKzU2LDkgQEAgdm9pZCBGdWxsR0NBY3Rpdml0eUNh
bGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIGhlYXAuY29sbGVjdEFzeW5jKENvbGxlY3Rpb25T
Y29wZTo6RnVsbCk7CiB9CiAKLWRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NM
ZW5ndGgoKQorU2Vjb25kcyBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQog
ewotICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RGdWxsR0NMZW5ndGgoKS5zZWNvbmRzKCk7Cisg
ICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEZ1bGxHQ0xlbmd0aCgpOwogfQogCiBkb3VibGUgRnVs
bEdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKQEAgLTg0LDMyICs4Miw0IEBAIGRvdWJs
ZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShzaXplX3QgYnl0ZXMpCiAgICAg
cmV0dXJuIHN0ZDo6bWluKChzdGF0aWNfY2FzdDxkb3VibGU+KGJ5dGVzKSAvIE1CKSAqIE9wdGlv
bnM6OnBlcmNlbnRDUFVQZXJNQkZvckZ1bGxUaW1lcigpLCBPcHRpb25zOjpjb2xsZWN0aW9uVGlt
ZXJNYXhQZXJjZW50Q1BVKCkpOwogfQogCi0jZWxzZQotCi1GdWxsR0NBY3Rpdml0eUNhbGxiYWNr
OjpGdWxsR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2Fs
bGJhY2soaGVhcCkKLXsKLX0KLQotdm9pZCBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxl
Y3Rpb24oKQotewotfQotCi1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVu
Z3RoKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJh
Y2s6OmRlYXRoUmF0ZSgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBGdWxsR0NBY3Rp
dml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShzaXplX3QpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0K
LSNlbmRpZiAvLyBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJh
Y2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2su
aAppbmRleCA1MTA2ZWU3OTg3ODk0Yjk5OTI5OTBhYmExMGY2OGEzOTAwOWVmZWU2Li40M2Q1M2I4
YTFlMzE4MTYwYjUxZmNmZWI0NmZlZWJmYTY3OWUyZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0zOSw3ICszOSw3
IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJs
aWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKICAgICB2b2lkIHNldERpZFN5bmNHQ1JlY2VudGx5KCkg
eyBtX2RpZFN5bmNHQ1JlY2VudGx5ID0gdHJ1ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZG91Ymxl
IGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOworICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgb3Zl
cnJpZGU7CiAgICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3ZlcnJpZGU7CiAg
ICAgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAppbmRleCAzODBkOTFjN2MwNmUwYzZj
YjExYTljN2YwY2FkNTkwZjBiNDQ1Yjk5Li44ZDdjNjA1MGQ0NzI3MjkyMjlmYjkwZDg1OWQxZWMz
ZmI0ZTZmZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2
aXR5Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZp
dHlDYWxsYmFjay5jcHAKQEAgLTQyLDIyICs0MiwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogYm9v
bCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNfc2hvdWxkQ3JlYXRlR0NUaW1lciA9IHRydWU7CiAKLSNp
ZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiBjb25zdCBkb3VibGUgdGltZXJTbG9wID0gMi4wOyAv
LyBGdWRnZSBmYWN0b3IgdG8gYXZvaWQgcGVyZm9ybWFuY2UgY29zdCBvZiByZXNldHRpbmcgdGlt
ZXIuCiAKLSNpZiBVU0UoQ0YpCiBHQ0FjdGl2aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFj
ayhIZWFwKiBoZWFwKQogICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXAtPnZtKCkpCiB7CiB9
Ci0jZWxpZiBVU0UoR0xJQikKLUdDQWN0aXZpdHlDYWxsYmFjazo6R0NBY3Rpdml0eUNhbGxiYWNr
KEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLSAg
ICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNf
dGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVSX1NFQyk7Ci19Ci0jZW5kaWYKIAogdm9pZCBH
Q0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB7CkBAIC02Nyw3ICs1Nyw3IEBAIHZvaWQgR0NB
Y3Rpdml0eUNhbGxiYWNrOjpkb1dvcmsoKQogICAgIAogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIo
bV92bSk7CiAgICAgaWYgKGhlYXAtPmlzRGVmZXJyZWQoKSkgewotICAgICAgICBzY2hlZHVsZVRp
bWVyKDApOworICAgICAgICBzY2hlZHVsZVRpbWVyKDBfcyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTc1LDQyICs2NSwzNiBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3Jr
KCkKIH0KIAogI2lmIFVTRShDRikKLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRp
bWVyKGRvdWJsZSBuZXdEZWxheSkKK3ZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRp
bWVyKFNlY29uZHMgbmV3RGVsYXkpCiB7CiAgICAgaWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4g
bV9kZWxheSkKICAgICAgICAgcmV0dXJuOwotICAgIGRvdWJsZSBkZWx0YSA9IG1fZGVsYXkgLSBu
ZXdEZWxheTsKKyAgICBTZWNvbmRzIGRlbHRhID0gbV9kZWxheSAtIG5ld0RlbGF5OwogICAgIG1f
ZGVsYXkgPSBuZXdEZWxheTsKLSAgICBtX25leHRGaXJlVGltZSA9IFdURjo6Y3VycmVudFRpbWUo
KSArIG5ld0RlbGF5OwotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIu
Z2V0KCksIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCkpIC0gZGVs
dGEpOworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENG
UnVuTG9vcFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCkpIC0gZGVsdGEuc2Vjb25k
cygpKTsKIH0KIAogdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbFRpbWVyKCkKIHsKICAg
ICBtX2RlbGF5ID0gc19kZWNhZGU7Ci0gICAgbV9uZXh0RmlyZVRpbWUgPSAwOwogICAgIENGUnVu
TG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0
Q3VycmVudCgpICsgc19kZWNhZGUpOwogfQotI2VsaWYgVVNFKEdMSUIpCi12b2lkIEdDQWN0aXZp
dHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCisjZWxzZQordm9pZCBH
Q0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBuZXdEZWxheSkKIHsKLSAg
ICBBU1NFUlQobmV3RGVsYXkgPj0gMCk7CiAgICAgaWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4g
bV9kZWxheSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgZG91YmxlIGRlbHRhID0gbV9kZWxheSAt
IG5ld0RlbGF5OworICAgIFNlY29uZHMgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CiAgICAg
bV9kZWxheSA9IG5ld0RlbGF5OwotICAgIG1fbmV4dEZpcmVUaW1lID0gV1RGOjpjdXJyZW50VGlt
ZSgpICsgbmV3RGVsYXk7CiAKLSAgICBnaW50NjQgcmVhZHlUaW1lID0gZ19zb3VyY2VfZ2V0X3Jl
YWR5X3RpbWUobV90aW1lci5nZXQoKSk7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90
aW1lci5nZXQoKSwgcmVhZHlUaW1lIC0gZGVsdGEgKiBHX1VTRUNfUEVSX1NFQyk7CisgICAgU2Vj
b25kcyBzZWNvbmRzVW50aWxGaXJlID0gbV90aW1lci5zZWNvbmRzVW50aWxGaXJlKCk7CisgICAg
bV90aW1lci5zdGFydE9uZVNob3Qoc2Vjb25kc1VudGlsRmlyZSAtIGRlbHRhKTsKIH0KIAogdm9p
ZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbFRpbWVyKCkKIHsKICAgICBtX2RlbGF5ID0gc19k
ZWNhZGU7Ci0gICAgbV9uZXh0RmlyZVRpbWUgPSAwOwotICAgIGdfc291cmNlX3NldF9yZWFkeV90
aW1lKG1fdGltZXIuZ2V0KCksIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBzX2RlY2FkZSAqIEdf
VVNFQ19QRVJfU0VDKTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7CiB9CiAj
ZW5kaWYKIApAQCAtMTIxLDcgKzEwNSw3IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRB
bGxvY2F0ZShzaXplX3QgYnl0ZXMpCiAgICAgaWYgKCFieXRlcykKICAgICAgICAgYnl0ZXMgPSAx
OwogICAgIGRvdWJsZSBieXRlc0V4cGVjdGVkVG9SZWNsYWltID0gc3RhdGljX2Nhc3Q8ZG91Ymxl
PihieXRlcykgKiBkZWF0aFJhdGUoKTsKLSAgICBkb3VibGUgbmV3RGVsYXkgPSBsYXN0R0NMZW5n
dGgoKSAvIGdjVGltZVNsaWNlKGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0pOworICAgIFNlY29uZHMg
bmV3RGVsYXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNlKGJ5dGVzRXhwZWN0ZWRUb1Jl
Y2xhaW0pOwogICAgIHNjaGVkdWxlVGltZXIobmV3RGVsYXkpOwogfQogCkBAIC0xMzUsMzAgKzEx
OSw1IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQogICAgIGNhbmNlbFRpbWVy
KCk7CiB9CiAKLSNlbHNlCi0KLUdDQWN0aXZpdHlDYWxsYmFjazo6R0NBY3Rpdml0eUNhbGxiYWNr
KEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0K
LQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCi17Ci19Ci0KLXZvaWQgR0NBY3Rp
dml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXplX3QpCi17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0
eUNhbGxiYWNrOjp3aWxsQ29sbGVjdCgpCi17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNr
OjpjYW5jZWwoKQotewotfQotCi0jZW5kaWYKLQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGFmNDc1ODhkNjAxMTlhZDhkZDUx
NWQ4ZjRhNTBjZmM3Mjk1ODEzMTQuLjVhYWIxM2ViNjE2MzVjYjJjYTAxNDcxMWZiMWE1MGI2M2My
NWYxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlD
YWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxs
YmFjay5oCkBAIC02MCw0OCArNjAsMjYgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgR0NBY3Rp
dml0eUNhbGxiYWNrIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIAogICAgIHN0YXRpYyBib29s
IHNfc2hvdWxkQ3JlYXRlR0NUaW1lcjsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCi0gICAg
ZG91YmxlIG5leHRGaXJlVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dEZpcmVUaW1lOyB9Ci0j
ZW5kaWYKLQogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgZG91YmxlIGxhc3RHQ0xlbmd0aCgpID0g
MDsKKyAgICB2aXJ0dWFsIFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgPSAwOwogICAgIHZpcnR1YWwg
ZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgPSAwOwogICAgIHZpcnR1YWwgZG91Ymxl
IGRlYXRoUmF0ZSgpID0gMDsKIAotI2lmIFVTRShDRikKLSAgICBHQ0FjdGl2aXR5Q2FsbGJhY2so
Vk0qIHZtKQotICAgICAgICA6IEJhc2Uodm0pCi0gICAgICAgICwgbV9lbmFibGVkKHRydWUpCi0g
ICAgICAgICwgbV9kZWxheShzX2RlY2FkZSkKLSAgICB7Ci0gICAgfQotI2VsaWYgVVNFKEdMSUIp
CiAgICAgR0NBY3Rpdml0eUNhbGxiYWNrKFZNKiB2bSkKICAgICAgICAgOiBCYXNlKHZtKQogICAg
ICAgICAsIG1fZW5hYmxlZCh0cnVlKQogICAgICAgICAsIG1fZGVsYXkoc19kZWNhZGUpCiAgICAg
ewogICAgIH0KLSNlbHNlCi0gICAgR0NBY3Rpdml0eUNhbGxiYWNrKFZNKiB2bSkKLSAgICAgICAg
OiBCYXNlKHZtKQotICAgICAgICAsIG1fZW5hYmxlZCh0cnVlKQotICAgIHsKLSAgICB9Ci0jZW5k
aWYKIAogICAgIGJvb2wgbV9lbmFibGVkOwogCi0jaWYgVVNFKENGKSB8fCBVU0UoR0xJQikKIHBy
b3RlY3RlZDoKICAgICB2b2lkIGNhbmNlbFRpbWVyKCk7Ci0gICAgdm9pZCBzY2hlZHVsZVRpbWVy
KGRvdWJsZSk7CisgICAgdm9pZCBzY2hlZHVsZVRpbWVyKFNlY29uZHMpOwogCiBwcml2YXRlOgot
ICAgIGRvdWJsZSBtX2RlbGF5OwotICAgIGRvdWJsZSBtX25leHRGaXJlVGltZSB7IDAgfTsKLSNl
bmRpZgorICAgIFNlY29uZHMgbV9kZWxheTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKaW5k
ZXggOGNiZmE5ZTgwNDBkYzYxZWZiMDE5YjIxNDU1NDQ1NWUyZmE4MzFiNi4uMjliZDRiMmE1YWQ2
MjRmOTM2ZjVkNzA2ODk1OGVjODY5ODkxMDFiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1zdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVNsaWNlID0gLjAx
OyAvLyBzZWNvbmRzCitzdGF0aWMgY29uc3QgU2Vjb25kcyBzd2VlcFRpbWVTbGljZSA9IDEwX21z
OyAvLyBzZWNvbmRzCiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVRvdGFsID0gLjEwOwog
c3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVNdWx0aXBsaWVyID0gMS4wIC8gc3dlZXBUaW1l
VG90YWw7CiAKQEAgLTUyLDEzICs1MiwxMyBAQCBJbmNyZW1lbnRhbFN3ZWVwZXI6OkluY3JlbWVu
dGFsU3dlZXBlcihIZWFwKiBoZWFwKQogCiB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3Jr
KCkKIHsKLSAgICBkb1N3ZWVwKFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwor
ICAgIGRvU3dlZXAoTW9ub3RvbmljVGltZTo6bm93KCkpOwogfQogCi12b2lkIEluY3JlbWVudGFs
U3dlZXBlcjo6ZG9Td2VlcChkb3VibGUgc3dlZXBCZWdpblRpbWUpCit2b2lkIEluY3JlbWVudGFs
U3dlZXBlcjo6ZG9Td2VlcChNb25vdG9uaWNUaW1lIHN3ZWVwQmVnaW5UaW1lKQogewogICAgIHdo
aWxlIChzd2VlcE5leHRCbG9jaygpKSB7Ci0gICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZSA9IFdU
Rjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzd2VlcEJlZ2luVGltZTsKKyAgICAg
ICAgU2Vjb25kcyBlbGFwc2VkVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3dlZXBCZWdp
blRpbWU7CiAgICAgICAgIGlmIChlbGFwc2VkVGltZSA8IHN3ZWVwVGltZVNsaWNlKQogICAgICAg
ICAgICAgY29udGludWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0luY3JlbWVudGFsU3dlZXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVt
ZW50YWxTd2VlcGVyLmgKaW5kZXggNzZkNDU0ZjNjMDRiMzFiZDExNGI4MDcxNDNlNGQxZTE1YTRl
NWJjNS4uNDg4MzRiMTNiYzVjNjNhOWE4YWY4MmViNzM0YzFlMWIxYTYzNDU4OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgY2xhc3MgSW5jcmVtZW50YWxTd2VlcGVyIDogcHVibGljIEpTUnVuTG9vcFRpbWVy
IHsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN0b3BTd2VlcGluZygpOwogCiBwcml2YXRl
OgotICAgIHZvaWQgZG9Td2VlcChkb3VibGUgc3RhcnRUaW1lKTsKKyAgICB2b2lkIGRvU3dlZXAo
TW9ub3RvbmljVGltZSBzdGFydFRpbWUpOwogICAgIHZvaWQgc2NoZWR1bGVUaW1lcigpOwogICAg
IAogICAgIE1hcmtlZEFsbG9jYXRvciogbV9jdXJyZW50QWxsb2NhdG9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCmluZGV4IDk0
MGQzOWRlMjRhY2ZkMzJkOTZhNGFjMjFlZDJjMmE1MzE3YzIxY2QuLjYyMzk2MTA5NDQ3ZjY0Y2Q2
ZWRmY2YyYThmOWQ5YTYzNWNkYjEzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBT
dG9wSWZOZWNlc3NhcnlUaW1lcjo6c2NoZWR1bGVTb29uKCkKICAgICAgICAgV1RGOjpsb2FkTG9h
ZEZlbmNlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgc2NoZWR1bGVUaW1lcigwKTsK
KyAgICBzY2hlZHVsZVRpbWVyKDBfcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCmluZGV4IGZk
NzlkNTk4MDRhN2Y0ODJlZGY5NDc4N2VlZGRhNzQ4YmRmZDJmOTMuLjY4ZmNlNGRjY2MwYmU1ZTAw
Yjg1ZjNkM2U4NjZhNTZjMzczYzgzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAKQEAgLTQyLDYgKzQyLDggQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKK2NvbnN0IFNlY29uZHMgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlIHsgNjAgKiA2
MCAqIDI0ICogMzY1ICogMTAgfTsKKwogdm9pZCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJl
KCkKIHsKICAgICBtX2FwaUxvY2stPmxvY2soKTsKQEAgLTYzLDggKzY1LDYgQEAgdm9pZCBKU1J1
bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKCkKIAogI2lmIFVTRShDRikKIAotY29uc3QgQ0ZUaW1l
SW50ZXJ2YWwgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlID0gNjAgKiA2MCAqIDI0ICogMzY1ICog
MTA7Ci0KIEpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCiAgICAgOiBtX3Zt
KHZtKQogICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQpAQCAtODUsNyArODUsNyBAQCB2
b2lkIEpTUnVuTG9vcFRpbWVyOjpzZXRSdW5Mb29wKENGUnVuTG9vcFJlZiBydW5Mb29wKQogICAg
ICAgICBtX3J1bkxvb3AgPSBydW5Mb29wOwogICAgICAgICBtZW1zZXQoJm1fY29udGV4dCwgMCwg
c2l6ZW9mKENGUnVuTG9vcFRpbWVyQ29udGV4dCkpOwogICAgICAgICBtX2NvbnRleHQuaW5mbyA9
IHRoaXM7Ci0gICAgICAgIG1fdGltZXIgPSBhZG9wdENGKENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUs
IHNfZGVjYWRlLCAwLCAwLCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2ssICZt
X2NvbnRleHQpKTsKKyAgICAgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2Rl
Y2FkZS5zZWNvbmRzKCksIHNfZGVjYWRlLnNlY29uZHMoKSwgMCwgMCwgSlNSdW5Mb29wVGltZXI6
OnRpbWVyRGlkRmlyZUNhbGxiYWNrLCAmbV9jb250ZXh0KSk7CiAgICAgICAgIENGUnVuTG9vcEFk
ZFRpbWVyKG1fcnVuTG9vcC5nZXQoKSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1v
ZGVzKTsKICAgICB9CiB9CkBAIC05NSw4MiArOTUsMzUgQEAgSlNSdW5Mb29wVGltZXI6On5KU1J1
bkxvb3BUaW1lcigpCiAgICAgc2V0UnVuTG9vcCgwKTsKIH0KIAotdm9pZCBKU1J1bkxvb3BUaW1l
cjo6dGltZXJEaWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGNvbnRleHRQ
dHIpCi17Ci0gICAgc3RhdGljX2Nhc3Q8SlNSdW5Mb29wVGltZXIqPihjb250ZXh0UHRyKS0+dGlt
ZXJEaWRGaXJlKCk7Ci19Ci0KLXZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoZG91
YmxlIGludGVydmFsSW5TZWNvbmRzKQordm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVUaW1l
cihTZWNvbmRzIGludGVydmFsSW5TZWNvbmRzKQogewotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4
dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgaW50
ZXJ2YWxJblNlY29uZHMpOworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGlt
ZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgaW50ZXJ2YWxJblNlY29uZHMu
c2Vjb25kcygpKTsKICAgICBtX2lzU2NoZWR1bGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBKU1J1bkxv
b3BUaW1lcjo6Y2FuY2VsVGltZXIoKQogewotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVE
YXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUp
OworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpKTsKICAgICBtX2lzU2No
ZWR1bGVkID0gZmFsc2U7CiB9CiAKLSNlbGlmIFVTRShHTElCKQotCi1jb25zdCBsb25nIEpTUnVu
TG9vcFRpbWVyOjpzX2RlY2FkZSA9IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwOwotCi1zdGF0aWMg
R1NvdXJjZUZ1bmNzIEpTUnVuTG9vcFRpbWVyU291cmNlRnVuY3Rpb25zID0gewotICAgIG51bGxw
dHIsIC8vIHByZXBhcmUKLSAgICBudWxscHRyLCAvLyBjaGVjawotICAgIC8vIGRpc3BhdGNoCi0g
ICAgW10oR1NvdXJjZSosIEdTb3VyY2VGdW5jIGNhbGxiYWNrLCBncG9pbnRlciB1c2VyRGF0YSkg
LT4gZ2Jvb2xlYW4KLSAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayh1c2VyRGF0YSk7Ci0g
ICAgfSwKLSAgICBudWxscHRyLCAvLyBmaW5hbGl6ZQotICAgIG51bGxwdHIsIC8vIGNsb3N1cmVf
Y2FsbGJhY2sKLSAgICBudWxscHRyLCAvLyBjbG9zdXJlX21hcnNoYWxsCi19OwotCi1KU1J1bkxv
b3BUaW1lcjo6SlNSdW5Mb29wVGltZXIoVk0qIHZtKQotICAgIDogbV92bSh2bSkKLSAgICAsIG1f
YXBpTG9jaygmdm0tPmFwaUxvY2soKSkKLSAgICAsIG1fdGltZXIoYWRvcHRHUmVmKGdfc291cmNl
X25ldygmSlNSdW5Mb29wVGltZXJTb3VyY2VGdW5jdGlvbnMsIHNpemVvZihHU291cmNlKSkpKQot
ewotICAgIGdfc291cmNlX3NldF9wcmlvcml0eShtX3RpbWVyLmdldCgpLCBSdW5Mb29wU291cmNl
UHJpb3JpdHk6OkphdmFzY3JpcHRUaW1lcik7Ci0gICAgZ19zb3VyY2Vfc2V0X25hbWUobV90aW1l
ci5nZXQoKSwgIltKYXZhU2NyaXB0Q29yZV0gSlNSdW5Mb29wVGltZXIiKTsKLSAgICBnX3NvdXJj
ZV9zZXRfY2FsbGJhY2sobV90aW1lci5nZXQoKSwgW10oZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdi
b29sZWFuIHsKLSAgICAgICAgYXV0byYgcnVuTG9vcFRpbWVyID0gKnN0YXRpY19jYXN0PEpTUnVu
TG9vcFRpbWVyKj4odXNlckRhdGEpOwotICAgICAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShy
dW5Mb29wVGltZXIubV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIEpTUnVu
TG9vcFRpbWVyOjpzX2RlY2FkZSAqIEdfVVNFQ19QRVJfU0VDKTsKLSAgICAgICAgcnVuTG9vcFRp
bWVyLnRpbWVyRGlkRmlyZSgpOwotICAgICAgICByZXR1cm4gR19TT1VSQ0VfQ09OVElOVUU7Ci0g
ICAgfSwgdGhpcywgbnVsbHB0cik7Ci0gICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXIuZ2V0KCks
IGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKTsKLX0KLQotSlNSdW5Mb29wVGlt
ZXI6On5KU1J1bkxvb3BUaW1lcigpCi17Ci0gICAgZ19zb3VyY2VfZGVzdHJveShtX3RpbWVyLmdl
dCgpKTsKLX0KKyNlbHNlCiAKLXZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoZG91
YmxlIGludGVydmFsSW5TZWNvbmRzKQordm9pZCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJl
Q2FsbGJhY2soKQogewotICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fdGltZXIuZ2V0KCks
IGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBpbnRlcnZhbEluU2Vjb25kcyAqIEdfVVNFQ19QRVJf
U0VDKTsKLSAgICBtX2lzU2NoZWR1bGVkID0gdHJ1ZTsKKyAgICBjYW5jZWxUaW1lcigpOworICAg
IHRpbWVyRGlkRmlyZSgpOwogfQogCi12b2lkIEpTUnVuTG9vcFRpbWVyOjpjYW5jZWxUaW1lcigp
Ci17Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9u
b3RvbmljX3RpbWUoKSArIHNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMpOwotICAgIG1faXNTY2hl
ZHVsZWQgPSBmYWxzZTsKLX0KLQotI2Vsc2UKLQotY29uc3QgU2Vjb25kcyBKU1J1bkxvb3BUaW1l
cjo6c19kZWNhZGUgeyA2MCAqIDYwICogMjQgKiAzNjUgKiAxMCB9OwotCiBKU1J1bkxvb3BUaW1l
cjo6SlNSdW5Mb29wVGltZXIoVk0qIHZtKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fYXBpTG9j
aygmdm0tPmFwaUxvY2soKSkKLSAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlz
LCAmSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZSkKKyAgICAsIG1fdGltZXIoUnVuTG9vcDo6
Y3VycmVudCgpLCB0aGlzLCAmSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNrKQog
eworI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCisgICAgbV90aW1lci5zZXRQcmlvcml0eShSdW5M
b29wU291cmNlUHJpb3JpdHk6OkphdmFzY3JpcHRUaW1lcik7CisgICAgbV90aW1lci5zZXROYW1l
KCJbSmF2YVNjcmlwdENvcmVdIEpTUnVuTG9vcFRpbWVyIik7CisjZW5kaWYKICAgICBtX3RpbWVy
LnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7CiB9CiAKQEAgLTE3OCw3ICsxMzEsNyBAQCBKU1J1bkxv
b3BUaW1lcjo6fkpTUnVuTG9vcFRpbWVyKCkKIHsKIH0KIAotdm9pZCBKU1J1bkxvb3BUaW1lcjo6
c2NoZWR1bGVUaW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9vcFRp
bWVyOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCiB7CiAgICAgbV90
aW1lci5zdGFydE9uZVNob3QoaW50ZXJ2YWxJblNlY29uZHMpOwogICAgIG1faXNTY2hlZHVsZWQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5M
b29wVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVy
LmgKaW5kZXggMDBmM2U2YmJjY2VjNTg3ZmQ5OWU5OGVkMTYwNTNmZDY1Nzc1OTgwNi4uZDhlY2U5
MjA3OTNmYzMwMzMxZGM4ZmFjZDUxOWZiZTc2Yzk2YTliNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oCkBAIC0zNiwxMCArMzYsNiBAQAogI2lu
Y2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjZW5kaWYKIAotI2lmIFVT
RShHTElCKQotI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KLSNlbmRpZgotCiBuYW1lc3Bh
Y2UgSlNDIHsKIAogY2xhc3MgSlNMb2NrOwpAQCAtNTAsMTIgKzQ2LDE0IEBAIGNsYXNzIEpTUnVu
TG9vcFRpbWVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEpTUnVuTG9vcFRpbWVyPiB7
CiAgICAgSlNSdW5Mb29wVGltZXIoVk0qKTsKICNpZiBVU0UoQ0YpCiAgICAgc3RhdGljIHZvaWQg
dGltZXJEaWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKKyNlbHNlCisg
ICAgdm9pZCB0aW1lckRpZEZpcmVDYWxsYmFjaygpOwogI2VuZGlmCiAKICAgICBKU19FWFBPUlRf
UFJJVkFURSB2aXJ0dWFsIH5KU1J1bkxvb3BUaW1lcigpOwogICAgIHZpcnR1YWwgdm9pZCBkb1dv
cmsoKSA9IDA7CiAKLSAgICB2b2lkIHNjaGVkdWxlVGltZXIoZG91YmxlIGludGVydmFsSW5TZWNv
bmRzKTsKKyAgICB2b2lkIHNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbEluU2Vjb25kcyk7
CiAgICAgdm9pZCBjYW5jZWxUaW1lcigpOwogICAgIGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzU2NoZWR1bGVkOyB9CiAKQEAgLTY2LDIyICs2NCwxOCBAQCBjbGFzcyBKU1J1
bkxvb3BUaW1lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxKU1J1bkxvb3BUaW1lcj4g
ewogcHJvdGVjdGVkOgogICAgIFZNKiBtX3ZtOwogCisgICAgc3RhdGljIGNvbnN0IFNlY29uZHMg
c19kZWNhZGU7CisKICAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxvY2s7CiAgICAgYm9vbCBtX2lz
U2NoZWR1bGVkIHsgZmFsc2UgfTsKICNpZiBVU0UoQ0YpCi0gICAgc3RhdGljIGNvbnN0IENGVGlt
ZUludGVydmFsIHNfZGVjYWRlOwotCiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBt
X3RpbWVyOwogICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVuTG9vcDsKIAogICAgIENG
UnVuTG9vcFRpbWVyQ29udGV4dCBtX2NvbnRleHQ7CiAKICAgICBMb2NrIG1fc2h1dGRvd25NdXRl
eDsKLSNlbGlmIFVTRShHTElCKQotICAgIHN0YXRpYyBjb25zdCBsb25nIHNfZGVjYWRlOwotICAg
IEdSZWZQdHI8R1NvdXJjZT4gbV90aW1lcjsKICNlbHNlCi0gICAgc3RhdGljIGNvbnN0IFNlY29u
ZHMgc19kZWNhZGU7CiAgICAgUnVuTG9vcDo6VGltZXI8SlNSdW5Mb29wVGltZXI+IG1fdGltZXI7
CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAppbmRleCAxMDQ1ZTQ2NmFhMzYxYTRhNjRhMjljZjBl
OTQzNmUzNDU0Y2M5MmUxLi4zZGNhZWFhZmU1YjM4ZmJhNWJhOGFmOTc2NjBmNTFiYzY1OWZkMjQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJy
ZWRUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURl
ZmVycmVkVGltZXIuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBQcm9taXNlRGVmZXJyZWRU
aW1lcjo6c2NoZWR1bGVXb3JrU29vbihKU1Byb21pc2VEZWZlcnJlZCogdGlja2V0LCBUYXNrJiYg
dGEKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2NrKTsKICAgICBtX3Rhc2tzLmFwcGVu
ZChzdGQ6Om1ha2VfdHVwbGUodGlja2V0LCBXVEZNb3ZlKHRhc2spKSk7CiAgICAgaWYgKCFpc1Nj
aGVkdWxlZCgpICYmICFtX2N1cnJlbnRseVJ1bm5pbmdUYXNrKQotICAgICAgICBzY2hlZHVsZVRp
bWVyKDApOworICAgICAgICBzY2hlZHVsZVRpbWVyKDBfcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93
dGYvUnVuTG9vcC5oCmluZGV4IDkyY2MxNTBmZGQyOTk1MDQ5NTIyMjJkMDgyNjgzN2Y0YmJkYjIw
MzYuLjIwZWVhN2ZiYjg1YjBkYTlhZGMxZWU3YmRiZTZmOTFhYjZlNzMzODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgK
QEAgLTkzLDEwICs5MywxMiBAQCBjbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0
Y2hlciB7CiAKICAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RvcCgpOwogICAgICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OworICAgICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgU2Vjb25kcyBzZWNvbmRzVW50aWxGaXJlKCkgY29uc3Q7CiAKICAgICAg
ICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwogCiAjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkK
KyAgICAgICAgdm9pZCBzZXROYW1lKGNvbnN0IGNoYXIqKTsKICAgICAgICAgdm9pZCBzZXRQcmlv
cml0eShpbnQpOwogI2VuZGlmCiAKQEAgLTEwNiw2ICsxMDgsNyBAQCBjbGFzcyBSdW5Mb29wIDog
cHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgICAgIFJlZjxSdW5Mb29wPiBtX3J1bkxv
b3A7CiAKICNpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQorICAgICAgICBib29sIGlzQWN0aXZl
KGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVy
RmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsKICAgICAgICAgdWludDY0X3QgbV9JRDsKICAg
ICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2Yv
UnVuTG9vcENGLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAKaW5kZXggNDFm
OGY5NTc1YzY4MzAyZjM4NjJkYzIyM2ZlNTQyN2E4YWUyNDQxNi4uNWU0YzgwNTdlOTEzNTQ3NTg5
MmQwNGUxNjY1NTQxYmI5MjQ1Mjg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2YvUnVu
TG9vcENGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCkBAIC0xMTks
NCArMTE5LDExIEBAIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIuZ2V0KCkp
OwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNv
bnN0Cit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1heDxTZWNv
bmRzPihTZWNvbmRzIHsgQ0ZSdW5Mb29wVGltZXJHZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQo
KSkgLSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSB9LCAwX3MpOworICAgIHJldHVybiAwX3M7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2Vu
ZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BH
ZW5lcmljLmNwcAppbmRleCAxM2UyNzE0YzI5ZDQ5YmU1NGNkNmM4YzM0NmU4Yzc2Yzc1ZTkyNGVi
Li5hNTY4MGUyMjg1MzVlNGVlMWMxMmMxN2IyMjJjMjg0MjMyNzA3M2FmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcApAQCAtMjkzLDQgKzI5MywxMiBAQCBib29s
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25z
dAogICAgIHJldHVybiBtX3NjaGVkdWxlZFRhc2s7CiB9CiAKK1NlY29uZHMgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3J1bkxvb3AtPm1fbG9vcExvY2spOworICAgIGlmIChpc0FjdGl2ZShsb2NrZXIpKQorICAg
ICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9zY2hlZHVsZWRUYXNrLT5zY2hlZHVsZWRU
aW1lUG9pbnQoKSAtIE1vbm90b25pY1RpbWU6Om5vdygpLCAwX3MpOworICAgIHJldHVybiAwX3M7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xp
Yi9SdW5Mb29wR0xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcApp
bmRleCBhM2I5M2M0YTI2YjhhNjRhY2Y0YjZmNjk1MGE2MzVjN2QwYjA1Y2VkLi41MDliMmRhMjRm
OWE2YzRjY2VlY2FhZTUxMzRmOWZiOTVlNjc5N2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9nbGliL1J1bkxvb3BHTGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BH
TGliLmNwcApAQCAtMTc2LDYgKzE3NiwxMSBAQCBSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJh
c2UoKQogICAgIGdfc291cmNlX2Rlc3Ryb3kobV9zb3VyY2UuZ2V0KCkpOwogfQogCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZShjb25zdCBjaGFyKiBuYW1lKQoreworICAgIGdfc291
cmNlX3NldF9uYW1lKG1fc291cmNlLmdldCgpLCBuYW1lKTsKK30KKwogdm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnNldFByaW9yaXR5KGludCBwcmlvcml0eSkKIHsKICAgICBnX3NvdXJjZV9zZXRf
cHJpb3JpdHkobV9zb3VyY2UuZ2V0KCksIHByaW9yaXR5KTsKQEAgLTIxMSw0ICsyMTYsMTEgQEAg
Ym9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gZ19z
b3VyY2VfZ2V0X3JlYWR5X3RpbWUobV9zb3VyY2UuZ2V0KCkpICE9IC0xOwogfQogCitTZWNvbmRz
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAgaWYg
KGlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1heDxTZWNvbmRzPihTZWNvbmRzOjpm
cm9tTWljcm9zZWNvbmRzKGdfc291cmNlX2dldF9yZWFkeV90aW1lKG1fc291cmNlLmdldCgpKSAt
IGdfZ2V0X21vbm90b25pY190aW1lKCkpLCAwX3MpOworICAgIHJldHVybiAwX3M7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BX
aW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCmluZGV4IDg3NDZiMWVl
YTAzODE0NWRmZTg0ODg5OWU1NDUzNmEzN2M4ZGViNGYuLjNkYjA3Y2FhNzJhZmMxMjRiYTgxNmNi
ZDMzYzBmNDZhMTY0NWRjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29w
V2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTE3NCwx
MCArMTc0LDI0IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKICAgICA6OktpbGxU
aW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOwogfQogCitib29s
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25z
dAoreworICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQp
OworfQorCiBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogewogICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnNMb2NrKTsKLSAgICBy
ZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKKyAgICByZXR1
cm4gaXNBY3RpdmUobG9ja2VyKTsKIH0KIAorU2Vjb25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNl
Y29uZHNVbnRpbEZpcmUoKSBjb25zdAoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9v
cC0+bV9hY3RpdmVUaW1lcnNMb2NrKTsKKyAgICBpZiAoaXNBY3RpdmUobG9ja2VyKSkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KG1fbmV4dEZpcmVEYXRlIC0gTW9ub3RvbmljVGlt
ZTo6bm93KCksIDBfcyk7CisgICAgcmV0dXJuIDBfczsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBX
VEYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306795</attachid>
            <date>2017-04-11 03:52:12 -0700</date>
            <delta_ts>2017-04-11 03:54:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411195211.patch</filename>
            <type>text/plain</type>
            <size>27301</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li43OTU3YTMwMmNmMDUyNzgw
ODQ1YzAxNmZmMDgwNmU2MTdmNDIxYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2NhdGUpOgor
ICAgICAgICAqIGhlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuY3BwOgorICAgICAgICAoSlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OmRv
V29yayk6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Td2VlcCk6CisgICAg
ICAgICogaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaDoKKyAgICAgICAgKiBoZWFwL1N0b3BJZk5l
Y2Vzc2FyeVRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6U3RvcElmTmVjZXNzYXJ5VGltZXI6OnNj
aGVkdWxlU29vbik6CisgICAgICAgICogcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHA6CisgICAg
ICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpzZXRSdW5Mb29wKToKKyAgICAgICAgKEpTQzo6SlNS
dW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIpOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1l
cjo6Y2FuY2VsVGltZXIpOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRG
aXJlQ2FsbGJhY2spOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6SlNSdW5Mb29wVGlt
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNSdW5Mb29wVGltZXIuaDoKKyAgICAgICAgKiBydW50
aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvbWlzZURlZmVy
cmVkVGltZXI6OnNjaGVkdWxlV29ya1Nvb24pOgorCisyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxv
b3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2E4MDQyZDVjYzIwNGFlNzUy
ZmIxYzk5MDVhMmQ4M2EzYzhlM2Y5MS4uZTY1MTBiYzAwMjQwNjVjMjNjNGFhZTJkMTg0NTQ4ZTk1
MGQwMThhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29w
OjpUaW1lciBpbiBHVEsgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHNlY29uZHNVbnRpbEZpcmUgbWV0aG9kLiBBbmQgYWRkIHNldE5hbWUg
YW5kIHNldFByaW9yaXR5CisgICAgICAgIGZvciBHVEsgUnVuTG9vcDo6VGltZXIuCisKKyAgICAg
ICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAg
ICAqIHd0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5M
b29wR0xpYi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZSk6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6Cisg
ICAgICAgICogd3RmL3dpbi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorCisy
MDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAg
ICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxvb3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2Fs
bGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxs
YmFjay5jcHAKaW5kZXggMDdlNmM3YTNmMDg1NzZlMTQzN2YyODFlNTM3NWVjMzYwYzNjZDhlNy4u
YjZiZGUzZGQxN2Y4NWQ0MGMyOTdjZDM2ZDQ3NzEwN2VmMGZkNWFlMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAg
LTMxLDggKzMxLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShH
TElCKQotCiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhl
YXAqIGhlYXApCiAgICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKIHsKQEAgLTQzLDkgKzQx
LDkgQEAgdm9pZCBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIG1f
dm0tPmhlYXAuY29sbGVjdEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RWRlbik7CiB9CiAKLWRvdWJs
ZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFw
Lmxhc3RFZGVuR0NMZW5ndGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFz
dEVkZW5HQ0xlbmd0aCgpOwogfQogCiBkb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVh
dGhSYXRlKCkKQEAgLTY5LDMyICs2Nyw0IEBAIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
OjpnY1RpbWVTbGljZShzaXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNf
Y2FzdDxkb3VibGU+KGJ5dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckVk
ZW5UaW1lcigpLCBPcHRpb25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQog
Ci0jZWxzZQotCi1FZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
KEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0K
LQotdm9pZCBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1k
b3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1
cm4gMDsKLX0KLQotZG91YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1Rp
bWVTbGljZShzaXplX3QpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0Yp
IHx8IFVTRShHTElCKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBjYzRlOTNmY2I5
ZjMwMzljYTYzNTAyNTg2YmFkODc5ZjhhYjU4OTM0Li44NzQ4MmJkZmIzMDE4NmMwMTZiMWE2YTg0
Y2JhZWQ5OTI3MDlmYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9F
ZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEpTX0VYUE9S
VF9QUklWQVRFIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxi
YWNrIHsKICAgICB2b2lkIGRvQ29sbGVjdGlvbigpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgZG91YmxlIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOworICAgIFNlY29uZHMgbGFzdEdDTGVu
Z3RoKCkgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3Zl
cnJpZGU7CiAgICAgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5k
ZXggZTU3ZGQzYTFjNzk3MTBmMTI1ODZhOTAzODcxN2FkZDRkYjY2MTM5ZC4uYTcxYzc2NjI0MGQw
ZjQ1YjRiMTNhYWE2YjdjNjUzMDZiNGQ0Mzc4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMwLDggKzMwLDYg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiAjaWYg
IVBMQVRGT1JNKElPUykKIGNvbnN0IGRvdWJsZSBwYWdpbmdUaW1lT3V0ID0gMC4xOyAvLyBUaW1l
IGluIHNlY29uZHMgdG8gYWxsb3cgb3Bwb3J0dW5pc3RpYyB0aW1lciB0byBpdGVyYXRlIG92ZXIg
YWxsIGJsb2NrcyB0byBzZWUgaWYgdGhlIEhlYXAgaXMgcGFnZWQgb3V0LgogI2VuZGlmCkBAIC01
OCw5ICs1Niw5IEBAIHZvaWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkK
ICAgICBoZWFwLmNvbGxlY3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOwogfQogCi1kb3Vi
bGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKK1NlY29uZHMgRnVsbEdD
QWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gbV92bS0+aGVh
cC5sYXN0RnVsbEdDTGVuZ3RoKCkuc2Vjb25kcygpOworICAgIHJldHVybiBtX3ZtLT5oZWFwLmxh
c3RGdWxsR0NMZW5ndGgoKTsKIH0KIAogZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRl
YXRoUmF0ZSgpCkBAIC04NCwzMiArODIsNCBAQCBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFj
azo6Z2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKQogICAgIHJldHVybiBzdGQ6Om1pbigoc3RhdGlj
X2Nhc3Q8ZG91YmxlPihieXRlcykgLyBNQikgKiBPcHRpb25zOjpwZXJjZW50Q1BVUGVyTUJGb3JG
dWxsVGltZXIoKSwgT3B0aW9uczo6Y29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSgpKTsKIH0K
IAotI2Vsc2UKLQotRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6RnVsbEdDQWN0aXZpdHlDYWxsYmFj
ayhIZWFwKiBoZWFwKQotICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApCi17Ci19Ci0KLXZv
aWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKLXsKLX0KLQotZG91Ymxl
IEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCi17Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQotewotICAg
IHJldHVybiAwOwotfQotCi1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xp
Y2Uoc2l6ZV90KQotewotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLy8gVVNFKENGKSB8fCBV
U0UoR0xJQikKLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNTEwNmVlNzk4Nzg5NGI5
OTkyOTkwYWJhMTBmNjhhMzkwMDllZmVlNi4uNDNkNTNiOGExZTMxODE2MGI1MWZjZmViNDZmZWVi
ZmE2NzllMmQzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdD
QWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxH
Q0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJ
VkFURSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7
CiAgICAgdm9pZCBzZXREaWRTeW5jR0NSZWNlbnRseSgpIHsgbV9kaWRTeW5jR0NSZWNlbnRseSA9
IHRydWU7IH0KIAogcHJvdGVjdGVkOgotICAgIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSBvdmVycmlk
ZTsKKyAgICBTZWNvbmRzIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1Rp
bWVTbGljZShzaXplX3QgYnl0ZXMpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBkZWF0aFJhdGUoKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rp
dml0eUNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlD
YWxsYmFjay5jcHAKaW5kZXggMzgwZDkxYzdjMDZlMGM2Y2IxMWE5YzdmMGNhZDU5MGYwYjQ0NWI5
OS4uOGQ3YzYwNTBkNDcyNzI5MjI5ZmI5MGQ4NTlkMWVjM2ZiNGU2ZmVkMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCkBAIC00Miwy
MiArNDIsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGJvb2wgR0NBY3Rpdml0eUNhbGxiYWNrOjpz
X3Nob3VsZENyZWF0ZUdDVGltZXIgPSB0cnVlOwogCi0jaWYgVVNFKENGKSB8fCBVU0UoR0xJQikK
LQogY29uc3QgZG91YmxlIHRpbWVyU2xvcCA9IDIuMDsgLy8gRnVkZ2UgZmFjdG9yIHRvIGF2b2lk
IHBlcmZvcm1hbmNlIGNvc3Qgb2YgcmVzZXR0aW5nIHRpbWVyLgogCi0jaWYgVVNFKENGKQogR0NB
Y3Rpdml0eUNhbGxiYWNrOjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKICAgICA6IEdD
QWN0aXZpdHlDYWxsYmFjayhoZWFwLT52bSgpKQogewogfQotI2VsaWYgVVNFKEdMSUIpCi1HQ0Fj
dGl2aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQotICAgIDogR0NB
Y3Rpdml0eUNhbGxiYWNrKGhlYXAtPnZtKCkpCi17Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3Rp
bWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIHNfZGVjYWRlICogR19V
U0VDX1BFUl9TRUMpOwotfQotI2VuZGlmCiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dv
cmsoKQogewpAQCAtNjcsNyArNTcsNyBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3Jr
KCkKICAgICAKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKG1fdm0pOwogICAgIGlmIChoZWFwLT5p
c0RlZmVycmVkKCkpIHsKLSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsKKyAgICAgICAgc2NoZWR1
bGVUaW1lcigwX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NSw0MiArNjUsMzYg
QEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB9CiAKICNpZiBVU0UoQ0YpCi12
b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCit2
b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIG5ld0RlbGF5KQog
ewogICAgIGlmIChuZXdEZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBkb3VibGUgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBk
ZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAg
bV9uZXh0RmlyZVRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKLSAgICBDRlJ1
bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdl
dE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhKTsKKyAgICBDRlJ1bkxvb3BUaW1l
clNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJl
RGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhLnNlY29uZHMoKSk7CiB9CiAKIHZvaWQgR0NBY3Rp
dml0eUNhbGxiYWNrOjpjYW5jZWxUaW1lcigpCiB7CiAgICAgbV9kZWxheSA9IHNfZGVjYWRlOwot
ICAgIG1fbmV4dEZpcmVUaW1lID0gMDsKICAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0
ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlKTsK
IH0KLSNlbGlmIFVTRShHTElCKQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGlt
ZXIoZG91YmxlIG5ld0RlbGF5KQorI2Vsc2UKK3ZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hl
ZHVsZVRpbWVyKFNlY29uZHMgbmV3RGVsYXkpCiB7Ci0gICAgQVNTRVJUKG5ld0RlbGF5ID49IDAp
OwogICAgIGlmIChuZXdEZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVy
bjsKLQotICAgIGRvdWJsZSBkZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsKKyAgICBTZWNvbmRz
IGRlbHRhID0gbV9kZWxheSAtIG5ld0RlbGF5OwogICAgIG1fZGVsYXkgPSBuZXdEZWxheTsKLSAg
ICBtX25leHRGaXJlVGltZSA9IFdURjo6Y3VycmVudFRpbWUoKSArIG5ld0RlbGF5OwogCi0gICAg
Z2ludDY0IHJlYWR5VGltZSA9IGdfc291cmNlX2dldF9yZWFkeV90aW1lKG1fdGltZXIuZ2V0KCkp
OwotICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fdGltZXIuZ2V0KCksIHJlYWR5VGltZSAt
IGRlbHRhICogR19VU0VDX1BFUl9TRUMpOworICAgIFNlY29uZHMgc2Vjb25kc1VudGlsRmlyZSA9
IG1fdGltZXIuc2Vjb25kc1VudGlsRmlyZSgpOworICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KHNl
Y29uZHNVbnRpbEZpcmUgLSBkZWx0YSk7CiB9CiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpj
YW5jZWxUaW1lcigpCiB7CiAgICAgbV9kZWxheSA9IHNfZGVjYWRlOwotICAgIG1fbmV4dEZpcmVU
aW1lID0gMDsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCBnX2dl
dF9tb25vdG9uaWNfdGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVSX1NFQyk7CisgICAgbV90
aW1lci5zdGFydE9uZVNob3Qoc19kZWNhZGUpOwogfQogI2VuZGlmCiAKQEAgLTEyMSw3ICsxMDUs
NyBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2NhdGUoc2l6ZV90IGJ5dGVzKQog
ICAgIGlmICghYnl0ZXMpCiAgICAgICAgIGJ5dGVzID0gMTsKICAgICBkb3VibGUgYnl0ZXNFeHBl
Y3RlZFRvUmVjbGFpbSA9IHN0YXRpY19jYXN0PGRvdWJsZT4oYnl0ZXMpICogZGVhdGhSYXRlKCk7
Ci0gICAgZG91YmxlIG5ld0RlbGF5ID0gbGFzdEdDTGVuZ3RoKCkgLyBnY1RpbWVTbGljZShieXRl
c0V4cGVjdGVkVG9SZWNsYWltKTsKKyAgICBTZWNvbmRzIG5ld0RlbGF5ID0gbGFzdEdDTGVuZ3Ro
KCkgLyBnY1RpbWVTbGljZShieXRlc0V4cGVjdGVkVG9SZWNsYWltKTsKICAgICBzY2hlZHVsZVRp
bWVyKG5ld0RlbGF5KTsKIH0KIApAQCAtMTM1LDMwICsxMTksNSBAQCB2b2lkIEdDQWN0aXZpdHlD
YWxsYmFjazo6Y2FuY2VsKCkKICAgICBjYW5jZWxUaW1lcigpOwogfQogCi0jZWxzZQotCi1HQ0Fj
dGl2aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQotICAgIDogR0NB
Y3Rpdml0eUNhbGxiYWNrKGhlYXAtPnZtKCkpCi17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxi
YWNrOjpkb1dvcmsoKQotewotfQotCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2Nh
dGUoc2l6ZV90KQotewotfQotCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6d2lsbENvbGxlY3Qo
KQotewotfQotCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2VsKCkKLXsKLX0KLQotI2Vu
ZGlmCi0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rp
dml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2Fs
bGJhY2suaAppbmRleCBhZjQ3NTg4ZDYwMTE5YWQ4ZGQ1MTVkOGY0YTUwY2ZjNzI5NTgxMzE0Li41
YWFiMTNlYjYxNjM1Y2IyY2EwMTQ3MTFmYjFhNTBiNjNjMjVmMWI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtNjAsNDggKzYwLDI2
IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEdDQWN0aXZpdHlDYWxsYmFjayA6IHB1YmxpYyBK
U1J1bkxvb3BUaW1lciB7CiAKICAgICBzdGF0aWMgYm9vbCBzX3Nob3VsZENyZWF0ZUdDVGltZXI7
CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotICAgIGRvdWJsZSBuZXh0RmlyZVRpbWUoKSBj
b25zdCB7IHJldHVybiBtX25leHRGaXJlVGltZTsgfQotI2VuZGlmCi0KIHByb3RlY3RlZDoKLSAg
ICB2aXJ0dWFsIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSA9IDA7CisgICAgdmlydHVhbCBTZWNvbmRz
IGxhc3RHQ0xlbmd0aCgpID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBnY1RpbWVTbGljZShzaXpl
X3QgYnl0ZXMpID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWF0aFJhdGUoKSA9IDA7CiAKLSNp
ZiBVU0UoQ0YpCi0gICAgR0NBY3Rpdml0eUNhbGxiYWNrKFZNKiB2bSkKLSAgICAgICAgOiBCYXNl
KHZtKQotICAgICAgICAsIG1fZW5hYmxlZCh0cnVlKQotICAgICAgICAsIG1fZGVsYXkoc19kZWNh
ZGUpCi0gICAgewotICAgIH0KLSNlbGlmIFVTRShHTElCKQogICAgIEdDQWN0aXZpdHlDYWxsYmFj
ayhWTSogdm0pCiAgICAgICAgIDogQmFzZSh2bSkKICAgICAgICAgLCBtX2VuYWJsZWQodHJ1ZSkK
ICAgICAgICAgLCBtX2RlbGF5KHNfZGVjYWRlKQogICAgIHsKICAgICB9Ci0jZWxzZQotICAgIEdD
QWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCi0gICAgICAgIDogQmFzZSh2bSkKLSAgICAgICAgLCBt
X2VuYWJsZWQodHJ1ZSkKLSAgICB7Ci0gICAgfQotI2VuZGlmCiAKICAgICBib29sIG1fZW5hYmxl
ZDsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjYW5j
ZWxUaW1lcigpOwotICAgIHZvaWQgc2NoZWR1bGVUaW1lcihkb3VibGUpOworICAgIHZvaWQgc2No
ZWR1bGVUaW1lcihTZWNvbmRzKTsKIAogcHJpdmF0ZToKLSAgICBkb3VibGUgbV9kZWxheTsKLSAg
ICBkb3VibGUgbV9uZXh0RmlyZVRpbWUgeyAwIH07Ci0jZW5kaWYKKyAgICBTZWNvbmRzIG1fZGVs
YXk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCmluZGV4IDhjYmZhOWU4MDQwZGM2MWVmYjAx
OWIyMTQ1NTQ0NTVlMmZhODMxYjYuLjI5YmQ0YjJhNWFkNjI0ZjkzNmY1ZDcwNjg5NThlYzg2OTg5
MTAxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxT
d2VlcGVyLmNwcApAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGlj
IGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVTbGljZSA9IC4wMTsgLy8gc2Vjb25kcworc3RhdGljIGNv
bnN0IFNlY29uZHMgc3dlZXBUaW1lU2xpY2UgPSAxMF9tczsgLy8gc2Vjb25kcwogc3RhdGljIGNv
bnN0IGRvdWJsZSBzd2VlcFRpbWVUb3RhbCA9IC4xMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dl
ZXBUaW1lTXVsdGlwbGllciA9IDEuMCAvIHN3ZWVwVGltZVRvdGFsOwogCkBAIC01MiwxMyArNTIs
MTMgQEAgSW5jcmVtZW50YWxTd2VlcGVyOjpJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVhcCkK
IAogdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvV29yaygpCiB7Ci0gICAgZG9Td2VlcChXVEY6
Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICBkb1N3ZWVwKE1vbm90b25pY1Rp
bWU6Om5vdygpKTsKIH0KIAotdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoZG91Ymxl
IHN3ZWVwQmVnaW5UaW1lKQordm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoTW9ub3Rv
bmljVGltZSBzd2VlcEJlZ2luVGltZSkKIHsKICAgICB3aGlsZSAoc3dlZXBOZXh0QmxvY2soKSkg
ewotICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpIC0gc3dlZXBCZWdpblRpbWU7CisgICAgICAgIFNlY29uZHMgZWxhcHNlZFRpbWUg
PSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN3ZWVwQmVnaW5UaW1lOwogICAgICAgICBpZiAoZWxh
cHNlZFRpbWUgPCBzd2VlcFRpbWVTbGljZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCmluZGV4IDc2
ZDQ1NGYzYzA0YjMxYmQxMTRiODA3MTQzZTRkMWUxNWE0ZTViYzUuLjQ4ODM0YjEzYmM1YzYzYTlh
OGFmODJlYjczNGMxZTFiMWE2MzQ1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEluY3JlbWVu
dGFsU3dlZXBlciA6IHB1YmxpYyBKU1J1bkxvb3BUaW1lciB7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzdG9wU3dlZXBpbmcoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGRvU3dlZXAoZG91
YmxlIHN0YXJ0VGltZSk7CisgICAgdm9pZCBkb1N3ZWVwKE1vbm90b25pY1RpbWUgc3RhcnRUaW1l
KTsKICAgICB2b2lkIHNjaGVkdWxlVGltZXIoKTsKICAgICAKICAgICBNYXJrZWRBbGxvY2F0b3Iq
IG1fY3VycmVudEFsbG9jYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcAppbmRleCA5NDBkMzlkZTI0YWNmZDMyZDk2YTRhYzIx
ZWQyYzJhNTMxN2MyMWNkLi42MjM5NjEwOTQ0N2Y2NGNkNmVkZmNmMmE4ZjlkOWE2MzVjZGIxM2Qz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlU
aW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgU3RvcElmTmVjZXNzYXJ5VGltZXI6OnNj
aGVkdWxlU29vbigpCiAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIHNjaGVkdWxlVGltZXIoMCk7CisgICAgc2NoZWR1bGVUaW1lcigwX3Mp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcAppbmRleCBmZDc5ZDU5ODA0YTdmNDgyZWRmOTQ3ODdl
ZWRkYTc0OGJkZmQyZjkzLi42OGZjZTRkY2NjMGJlNWUwMGI4NWYzZDNlODY2YTU2YzM3M2M4MzA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1l
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIu
Y3BwCkBAIC00Miw2ICs0Miw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitjb25zdCBTZWNvbmRz
IEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwIH07CisK
IHZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZSgpCiB7CiAgICAgbV9hcGlMb2NrLT5s
b2NrKCk7CkBAIC02Myw4ICs2NSw2IEBAIHZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmly
ZSgpCiAKICNpZiBVU0UoQ0YpCiAKLWNvbnN0IENGVGltZUludGVydmFsIEpTUnVuTG9vcFRpbWVy
OjpzX2RlY2FkZSA9IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwOwotCiBKU1J1bkxvb3BUaW1lcjo6
SlNSdW5Mb29wVGltZXIoVk0qIHZtKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fYXBpTG9jaygm
dm0tPmFwaUxvY2soKSkKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBKU1J1bkxvb3BUaW1lcjo6c2V0
UnVuTG9vcChDRlJ1bkxvb3BSZWYgcnVuTG9vcCkKICAgICAgICAgbV9ydW5Mb29wID0gcnVuTG9v
cDsKICAgICAgICAgbWVtc2V0KCZtX2NvbnRleHQsIDAsIHNpemVvZihDRlJ1bkxvb3BUaW1lckNv
bnRleHQpKTsKICAgICAgICAgbV9jb250ZXh0LmluZm8gPSB0aGlzOwotICAgICAgICBtX3RpbWVy
ID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFi
c29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLCBzX2RlY2FkZSwgMCwgMCwgSlNSdW5M
b29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNrLCAmbV9jb250ZXh0KSk7CisgICAgICAgIG1f
dGltZXIgPSBhZG9wdENGKENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpLCBzX2RlY2Fk
ZS5zZWNvbmRzKCksIDAsIDAsIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaywg
Jm1fY29udGV4dCkpOwogICAgICAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AuZ2V0KCks
IG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CiAgICAgfQogfQpAQCAtOTUs
ODIgKzk1LDM1IEBAIEpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIoKQogICAgIHNldFJ1
bkxvb3AoMCk7CiB9CiAKLXZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNr
KENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0UHRyKQotewotICAgIHN0YXRpY19jYXN0
PEpTUnVuTG9vcFRpbWVyKj4oY29udGV4dFB0ciktPnRpbWVyRGlkRmlyZSgpOwotfQotCi12b2lk
IEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcykK
K3ZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbEluU2Vj
b25kcykKIHsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgp
LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIGludGVydmFsSW5TZWNvbmRzKTsKKyAgICBD
RlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGlt
ZUdldEN1cnJlbnQoKSArIGludGVydmFsSW5TZWNvbmRzLnNlY29uZHMoKSk7CiAgICAgbV9pc1Nj
aGVkdWxlZCA9IHRydWU7CiB9CiAKIHZvaWQgSlNSdW5Mb29wVGltZXI6OmNhbmNlbFRpbWVyKCkK
IHsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFi
c29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlKTsKKyAgICBDRlJ1bkxvb3BUaW1lclNl
dE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSAr
IHNfZGVjYWRlLnNlY29uZHMoKSk7CiAgICAgbV9pc1NjaGVkdWxlZCA9IGZhbHNlOwogfQogCi0j
ZWxpZiBVU0UoR0xJQikKLQotY29uc3QgbG9uZyBKU1J1bkxvb3BUaW1lcjo6c19kZWNhZGUgPSA2
MCAqIDYwICogMjQgKiAzNjUgKiAxMDsKLQotc3RhdGljIEdTb3VyY2VGdW5jcyBKU1J1bkxvb3BU
aW1lclNvdXJjZUZ1bmN0aW9ucyA9IHsKLSAgICBudWxscHRyLCAvLyBwcmVwYXJlCi0gICAgbnVs
bHB0ciwgLy8gY2hlY2sKLSAgICAvLyBkaXNwYXRjaAotICAgIFtdKEdTb3VyY2UqLCBHU291cmNl
RnVuYyBjYWxsYmFjaywgZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuCi0gICAgewotICAg
ICAgICByZXR1cm4gY2FsbGJhY2sodXNlckRhdGEpOwotICAgIH0sCi0gICAgbnVsbHB0ciwgLy8g
ZmluYWxpemUKLSAgICBudWxscHRyLCAvLyBjbG9zdXJlX2NhbGxiYWNrCi0gICAgbnVsbHB0ciwg
Ly8gY2xvc3VyZV9tYXJzaGFsbAotfTsKLQotSlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVy
KFZNKiB2bSkKLSAgICA6IG1fdm0odm0pCi0gICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkp
Ci0gICAgLCBtX3RpbWVyKGFkb3B0R1JlZihnX3NvdXJjZV9uZXcoJkpTUnVuTG9vcFRpbWVyU291
cmNlRnVuY3Rpb25zLCBzaXplb2YoR1NvdXJjZSkpKSkKLXsKLSAgICBnX3NvdXJjZV9zZXRfcHJp
b3JpdHkobV90aW1lci5nZXQoKSwgUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpKYXZhc2NyaXB0VGlt
ZXIpOwotICAgIGdfc291cmNlX3NldF9uYW1lKG1fdGltZXIuZ2V0KCksICJbSmF2YVNjcmlwdENv
cmVdIEpTUnVuTG9vcFRpbWVyIik7Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXIu
Z2V0KCksIFtdKGdwb2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7Ci0gICAgICAgIGF1dG8m
IHJ1bkxvb3BUaW1lciA9ICpzdGF0aWNfY2FzdDxKU1J1bkxvb3BUaW1lcio+KHVzZXJEYXRhKTsK
LSAgICAgICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUocnVuTG9vcFRpbWVyLm1fdGltZXIuZ2V0
KCksIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBKU1J1bkxvb3BUaW1lcjo6c19kZWNhZGUgKiBH
X1VTRUNfUEVSX1NFQyk7Ci0gICAgICAgIHJ1bkxvb3BUaW1lci50aW1lckRpZEZpcmUoKTsKLSAg
ICAgICAgcmV0dXJuIEdfU09VUkNFX0NPTlRJTlVFOwotICAgIH0sIHRoaXMsIG51bGxwdHIpOwot
ICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyLmdldCgpLCBnX21haW5fY29udGV4dF9nZXRfdGhy
ZWFkX2RlZmF1bHQoKSk7Ci19Ci0KLUpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIoKQot
ewotICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lci5nZXQoKSk7Ci19CisjZWxzZQogCi12b2lk
IEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcykK
K3ZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNrKCkKIHsKLSAgICBnX3Nv
dXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgp
ICsgaW50ZXJ2YWxJblNlY29uZHMgKiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxl
ZCA9IHRydWU7CisgICAgY2FuY2VsVGltZXIoKTsKKyAgICB0aW1lckRpZEZpcmUoKTsKIH0KIAot
dm9pZCBKU1J1bkxvb3BUaW1lcjo6Y2FuY2VsVGltZXIoKQotewotICAgIGdfc291cmNlX3NldF9y
ZWFkeV90aW1lKG1fdGltZXIuZ2V0KCksIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBzX2RlY2Fk
ZSAqIEdfVVNFQ19QRVJfU0VDKTsKLSAgICBtX2lzU2NoZWR1bGVkID0gZmFsc2U7Ci19Ci0KLSNl
bHNlCi0KLWNvbnN0IFNlY29uZHMgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlIHsgNjAgKiA2MCAq
IDI0ICogMzY1ICogMTAgfTsKLQogSlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVyKFZNKiB2
bSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkpCi0gICAg
LCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJkpTUnVuTG9vcFRpbWVyOjp0aW1l
ckRpZEZpcmUpCisgICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJkpTUnVu
TG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaykKIHsKKyNpZiBVU0UoR0xJQl9FVkVOVF9M
T09QKQorICAgIG1fdGltZXIuc2V0UHJpb3JpdHkoUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpKYXZh
c2NyaXB0VGltZXIpOworICAgIG1fdGltZXIuc2V0TmFtZSgiW0phdmFTY3JpcHRDb3JlXSBKU1J1
bkxvb3BUaW1lciIpOworI2VuZGlmCiAgICAgbV90aW1lci5zdGFydE9uZVNob3Qoc19kZWNhZGUp
OwogfQogCkBAIC0xNzgsNyArMTMxLDcgQEAgSlNSdW5Mb29wVGltZXI6On5KU1J1bkxvb3BUaW1l
cigpCiB7CiB9CiAKLXZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoZG91YmxlIGlu
dGVydmFsSW5TZWNvbmRzKQordm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVUaW1lcihTZWNv
bmRzIGludGVydmFsSW5TZWNvbmRzKQogewogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGludGVy
dmFsSW5TZWNvbmRzKTsKICAgICBtX2lzU2NoZWR1bGVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oCmluZGV4IDAwZjNlNmJiY2NlYzU4
N2ZkOTllOThlZDE2MDUzZmQ2NTc3NTk4MDYuLmQ4ZWNlOTIwNzkzZmMzMDMzMWRjOGZhY2Q1MTlm
YmU3NmM5NmE5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UnVuTG9vcFRpbWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5M
b29wVGltZXIuaApAQCAtMzYsMTAgKzM2LDYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9D
b3JlRm91bmRhdGlvbi5oPgogI2VuZGlmCiAKLSNpZiBVU0UoR0xJQikKLSNpbmNsdWRlIDx3dGYv
Z2xpYi9HUmVmUHRyLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTTG9j
azsKQEAgLTUwLDEyICs0NiwxNCBAQCBjbGFzcyBKU1J1bkxvb3BUaW1lciA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxKU1J1bkxvb3BUaW1lcj4gewogICAgIEpTUnVuTG9vcFRpbWVyKFZN
Kik7CiAjaWYgVVNFKENGKQogICAgIHN0YXRpYyB2b2lkIHRpbWVyRGlkRmlyZUNhbGxiYWNrKENG
UnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CisjZWxzZQorICAgIHZvaWQgdGltZXJEaWRGaXJlQ2Fs
bGJhY2soKTsKICNlbmRpZgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+SlNSdW5M
b29wVGltZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgZG9Xb3JrKCkgPSAwOwogCi0gICAgdm9pZCBz
Y2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgdm9pZCBzY2hlZHVs
ZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpOwogICAgIHZvaWQgY2FuY2VsVGltZXIo
KTsKICAgICBib29sIGlzU2NoZWR1bGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1NjaGVkdWxlZDsg
fQogCkBAIC02NiwyMiArNjQsMTggQEAgY2xhc3MgSlNSdW5Mb29wVGltZXIgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8SlNSdW5Mb29wVGltZXI+IHsKIHByb3RlY3RlZDoKICAgICBWTSog
bV92bTsKIAorICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHNfZGVjYWRlOworCiAgICAgUmVmUHRy
PEpTTG9jaz4gbV9hcGlMb2NrOwogICAgIGJvb2wgbV9pc1NjaGVkdWxlZCB7IGZhbHNlIH07CiAj
aWYgVVNFKENGKQotICAgIHN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCBzX2RlY2FkZTsKLQog
ICAgIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1lclJlZj4gbV90aW1lcjsKICAgICBSZXRhaW5QdHI8
Q0ZSdW5Mb29wUmVmPiBtX3J1bkxvb3A7CiAKICAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQgbV9j
b250ZXh0OwogCiAgICAgTG9jayBtX3NodXRkb3duTXV0ZXg7Ci0jZWxpZiBVU0UoR0xJQikKLSAg
ICBzdGF0aWMgY29uc3QgbG9uZyBzX2RlY2FkZTsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IG1fdGlt
ZXI7CiAjZWxzZQotICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHNfZGVjYWRlOwogICAgIFJ1bkxv
b3A6OlRpbWVyPEpTUnVuTG9vcFRpbWVyPiBtX3RpbWVyOwogI2VuZGlmCiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5j
cHAKaW5kZXggMTA0NWU0NjZhYTM2MWE0YTY0YTI5Y2YwZTk0MzZlMzQ1NGNjOTJlMS4uM2RjYWVh
YWZlNWIzOGZiYTViYThhZjk3NjYwZjUxYmM2NTlmZDI0NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcApAQCAtMTM0
LDcgKzEzNCw3IEBAIHZvaWQgUHJvbWlzZURlZmVycmVkVGltZXI6OnNjaGVkdWxlV29ya1Nvb24o
SlNQcm9taXNlRGVmZXJyZWQqIHRpY2tldCwgVGFzayYmIHRhCiAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV90YXNrTG9jayk7CiAgICAgbV90YXNrcy5hcHBlbmQoc3RkOjptYWtlX3R1cGxlKHRpY2tl
dCwgV1RGTW92ZSh0YXNrKSkpOwogICAgIGlmICghaXNTY2hlZHVsZWQoKSAmJiAhbV9jdXJyZW50
bHlSdW5uaW5nVGFzaykKLSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsKKyAgICAgICAgc2NoZWR1
bGVUaW1lcigwX3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1J1bkxvb3AuaCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaAppbmRleCA5MmNj
MTUwZmRkMjk5NTA0OTUyMjIyZDA4MjY4MzdmNGJiZGIyMDM2Li4zZDA2YzNlYjg5MzAwZDYwZmEw
ODM2NGJkZWVjZDZmMDllOGJhODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29w
LmgKKysrIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCkBAIC05MywxMCArOTMsMTIgQEAgY2xh
c3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogCiAgICAgICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHN0b3AoKTsKICAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJv
b2wgaXNBY3RpdmUoKSBjb25zdDsKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFNlY29uZHMg
c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgp
ID0gMDsKIAogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCisgICAgICAgIHZvaWQgc2V0TmFtZShj
b25zdCBjaGFyKik7CiAgICAgICAgIHZvaWQgc2V0UHJpb3JpdHkoaW50KTsKICNlbmRpZgogCkBA
IC0xMDYsOCArMTA4LDExIEBAIGNsYXNzIFJ1bkxvb3AgOiBwdWJsaWMgRnVuY3Rpb25EaXNwYXRj
aGVyIHsKICAgICAgICAgUmVmPFJ1bkxvb3A+IG1fcnVuTG9vcDsKIAogI2lmIFVTRShXSU5ET1dT
X0VWRU5UX0xPT1ApCisgICAgICAgIGJvb2wgaXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXIm
KSBjb25zdDsKICAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgdWludDY0
X3QgSUQpOwogICAgICAgICB1aW50NjRfdCBtX0lEOworICAgICAgICBNb25vdG9uaWNUaW1lIG1f
bmV4dEZpcmVEYXRlOworICAgICAgICBTZWNvbmRzIG1faW50ZXJ2YWw7CiAgICAgICAgIGJvb2wg
bV9pc1JlcGVhdGluZzsKICNlbGlmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAgICAgICBzdGF0
aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwIGIvU291cmNlL1dURi93dGYvY2YvUnVu
TG9vcENGLmNwcAppbmRleCA0MWY4Zjk1NzVjNjgzMDJmMzg2MmRjMjIzZmU1NDI3YThhZTI0NDE2
Li41ZTRjODA1N2U5MTM1NDc1ODkyZDA0ZTE2NjU1NDFiYjkyNDUyODUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NmL1J1
bkxvb3BDRi5jcHAKQEAgLTExOSw0ICsxMTksMTEgQEAgYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6
OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gbV90aW1lciAmJiBDRlJ1bkxvb3BUaW1lcklz
VmFsaWQobV90aW1lci5nZXQoKSk7CiB9CiAKK1NlY29uZHMgUnVuTG9vcDo6VGltZXJCYXNlOjpz
ZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICBpZiAoaXNBY3RpdmUoKSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KFNlY29uZHMgeyBDRlJ1bkxvb3BUaW1lckdldE5leHRG
aXJlRGF0ZShtX3RpbWVyLmdldCgpKSAtIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpIH0sIDBf
cyk7CisgICAgcmV0dXJuIDBfczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCmluZGV4IDEzZTI3MTRjMjlkNDliZTU0Y2Q2
YzhjMzQ2ZThjNzZjNzVlOTI0ZWIuLmE1NjgwZTIyODUzNWU0ZWUxYzEyYzE3YjIyMmMyODQyMzI3
MDczYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCkBAIC0y
OTMsNCArMjkzLDEyIEBAIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZShjb25zdCBB
YnN0cmFjdExvY2tlciYpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2NoZWR1bGVkVGFzazsKIH0KIAor
U2Vjb25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUoKSBjb25zdAorewor
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7CisgICAgaWYgKGlz
QWN0aXZlKGxvY2tlcikpCisgICAgICAgIHJldHVybiBzdGQ6Om1heDxTZWNvbmRzPihtX3NjaGVk
dWxlZFRhc2stPnNjaGVkdWxlZFRpbWVQb2ludCgpIC0gTW9ub3RvbmljVGltZTo6bm93KCksIDBf
cyk7CisgICAgcmV0dXJuIDBfczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2ds
aWIvUnVuTG9vcEdMaWIuY3BwCmluZGV4IGEzYjkzYzRhMjZiOGE2NGFjZjRiNmY2OTUwYTYzNWM3
ZDBiMDVjZWQuLjUwOWIyZGEyNGY5YTZjNGNjZWVjYWFlNTEzNGY5ZmI5NWU2Nzk3ZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwCkBAIC0xNzYsNiArMTc2LDExIEBAIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCiAgICAgZ19zb3VyY2VfZGVzdHJveShtX3NvdXJjZS5n
ZXQoKSk7CiB9CiAKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzZXROYW1lKGNvbnN0IGNoYXIq
IG5hbWUpCit7CisgICAgZ19zb3VyY2Vfc2V0X25hbWUobV9zb3VyY2UuZ2V0KCksIG5hbWUpOwor
fQorCiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0UHJpb3JpdHkoaW50IHByaW9yaXR5KQog
ewogICAgIGdfc291cmNlX3NldF9wcmlvcml0eShtX3NvdXJjZS5nZXQoKSwgcHJpb3JpdHkpOwpA
QCAtMjExLDQgKzIxNiwxMSBAQCBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAogICAgIHJldHVybiBnX3NvdXJjZV9nZXRfcmVhZHlfdGltZShtX3NvdXJjZS5nZXQoKSkg
IT0gLTE7CiB9CiAKK1NlY29uZHMgUnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJl
KCkgY29uc3QKK3sKKyAgICBpZiAoaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4
PFNlY29uZHM+KFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoZ19zb3VyY2VfZ2V0X3JlYWR5X3Rp
bWUobV9zb3VyY2UuZ2V0KCkpIC0gZ19nZXRfbW9ub3RvbmljX3RpbWUoKSksIDBfcyk7CisgICAg
cmV0dXJuIDBfczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdp
bi5jcHAKaW5kZXggODc0NmIxZWVhMDM4MTQ1ZGZlODQ4ODk5ZTU0NTM2YTM3YzhkZWI0Zi4uM2U0
YzRjZWExNzVjNjMxMmNlNDhiODliNDhiMjMzZTk0ODc4MjYzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5M
b29wV2luLmNwcApAQCAtMTMxLDcgKzEzMSw4IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0
aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElEKQogICAgICAgICBpZiAoIXRp
bWVyLT5tX2lzUmVwZWF0aW5nKSB7CiAgICAgICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5yZW1vdmUoaXQpOwogICAgICAgICAgICAgOjpLaWxsVGltZXIocnVuTG9vcC0+bV9ydW5Mb29w
TWVzc2FnZVdpbmRvdywgSUQpOwotICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgbV9uZXh0RmlyZURhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIG1faW50ZXJ2YWw7CiAg
ICAgfQogCiAgICAgdGltZXItPmZpcmVkKCk7CkBAIC0xNjAsNiArMTYxLDggQEAgdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVh
dCkKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzTG9jayk7
CiAgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKICAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLnNldChtX0lELCB0aGlzKTsKKyAgICBtX2ludGVydmFsID0gU2Vjb25kcyhuZXh0RmlyZUlu
dGVydmFsKTsKKyAgICBtX25leHRGaXJlRGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpICsgbV9p
bnRlcnZhbDsKICAgICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRv
dywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOwogfQogCkBAIC0xNzQsMTAgKzE3
NywyNCBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCiAgICAgOjpLaWxsVGltZXIo
bV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKIH0KIAorYm9vbCBSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKK30K
KwogYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKIHsKICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzTG9jayk7Ci0gICAgcmV0dXJu
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7CisgICAgcmV0dXJuIGlz
QWN0aXZlKGxvY2tlcik7CiB9CiAKK1NlY29uZHMgUnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRz
VW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1f
YWN0aXZlVGltZXJzTG9jayk7CisgICAgaWYgKGlzQWN0aXZlKGxvY2tlcikpCisgICAgICAgIHJl
dHVybiBzdGQ6Om1heDxTZWNvbmRzPihtX25leHRGaXJlRGF0ZSAtIE1vbm90b25pY1RpbWU6Om5v
dygpLCAwX3MpOworICAgIHJldHVybiAwX3M7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306796</attachid>
            <date>2017-04-11 03:54:45 -0700</date>
            <delta_ts>2017-04-11 04:03:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411195444.patch</filename>
            <type>text/plain</type>
            <size>27401</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li43OTU3YTMwMmNmMDUyNzgw
ODQ1YzAxNmZmMDgwNmU2MTdmNDIxYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2NhdGUpOgor
ICAgICAgICAqIGhlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuY3BwOgorICAgICAgICAoSlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OmRv
V29yayk6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Td2VlcCk6CisgICAg
ICAgICogaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaDoKKyAgICAgICAgKiBoZWFwL1N0b3BJZk5l
Y2Vzc2FyeVRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6U3RvcElmTmVjZXNzYXJ5VGltZXI6OnNj
aGVkdWxlU29vbik6CisgICAgICAgICogcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHA6CisgICAg
ICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpzZXRSdW5Mb29wKToKKyAgICAgICAgKEpTQzo6SlNS
dW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIpOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1l
cjo6Y2FuY2VsVGltZXIpOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRG
aXJlQ2FsbGJhY2spOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6SlNSdW5Mb29wVGlt
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNSdW5Mb29wVGltZXIuaDoKKyAgICAgICAgKiBydW50
aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvbWlzZURlZmVy
cmVkVGltZXI6OnNjaGVkdWxlV29ya1Nvb24pOgorCisyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxv
b3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2E4MDQyZDVjYzIwNGFlNzUy
ZmIxYzk5MDVhMmQ4M2EzYzhlM2Y5MS4uZTY1MTBiYzAwMjQwNjVjMjNjNGFhZTJkMTg0NTQ4ZTk1
MGQwMThhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29w
OjpUaW1lciBpbiBHVEsgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHNlY29uZHNVbnRpbEZpcmUgbWV0aG9kLiBBbmQgYWRkIHNldE5hbWUg
YW5kIHNldFByaW9yaXR5CisgICAgICAgIGZvciBHVEsgUnVuTG9vcDo6VGltZXIuCisKKyAgICAg
ICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAg
ICAqIHd0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5M
b29wR0xpYi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZSk6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6Cisg
ICAgICAgICogd3RmL3dpbi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorCisy
MDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAg
ICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxvb3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2Fs
bGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxs
YmFjay5jcHAKaW5kZXggMDdlNmM3YTNmMDg1NzZlMTQzN2YyODFlNTM3NWVjMzYwYzNjZDhlNy4u
YjZiZGUzZGQxN2Y4NWQ0MGMyOTdjZDM2ZDQ3NzEwN2VmMGZkNWFlMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAg
LTMxLDggKzMxLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShH
TElCKQotCiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhl
YXAqIGhlYXApCiAgICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKIHsKQEAgLTQzLDkgKzQx
LDkgQEAgdm9pZCBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIG1f
dm0tPmhlYXAuY29sbGVjdEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RWRlbik7CiB9CiAKLWRvdWJs
ZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFw
Lmxhc3RFZGVuR0NMZW5ndGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFz
dEVkZW5HQ0xlbmd0aCgpOwogfQogCiBkb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVh
dGhSYXRlKCkKQEAgLTY5LDMyICs2Nyw0IEBAIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
OjpnY1RpbWVTbGljZShzaXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNf
Y2FzdDxkb3VibGU+KGJ5dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckVk
ZW5UaW1lcigpLCBPcHRpb25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQog
Ci0jZWxzZQotCi1FZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
KEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0K
LQotdm9pZCBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1k
b3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1
cm4gMDsKLX0KLQotZG91YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1Rp
bWVTbGljZShzaXplX3QpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0Yp
IHx8IFVTRShHTElCKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBjYzRlOTNmY2I5
ZjMwMzljYTYzNTAyNTg2YmFkODc5ZjhhYjU4OTM0Li44NzQ4MmJkZmIzMDE4NmMwMTZiMWE2YTg0
Y2JhZWQ5OTI3MDlmYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9F
ZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEpTX0VYUE9S
VF9QUklWQVRFIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxi
YWNrIHsKICAgICB2b2lkIGRvQ29sbGVjdGlvbigpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgZG91YmxlIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOworICAgIFNlY29uZHMgbGFzdEdDTGVu
Z3RoKCkgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3Zl
cnJpZGU7CiAgICAgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5k
ZXggZTU3ZGQzYTFjNzk3MTBmMTI1ODZhOTAzODcxN2FkZDRkYjY2MTM5ZC4uYTcxYzc2NjI0MGQw
ZjQ1YjRiMTNhYWE2YjdjNjUzMDZiNGQ0Mzc4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMwLDggKzMwLDYg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiAjaWYg
IVBMQVRGT1JNKElPUykKIGNvbnN0IGRvdWJsZSBwYWdpbmdUaW1lT3V0ID0gMC4xOyAvLyBUaW1l
IGluIHNlY29uZHMgdG8gYWxsb3cgb3Bwb3J0dW5pc3RpYyB0aW1lciB0byBpdGVyYXRlIG92ZXIg
YWxsIGJsb2NrcyB0byBzZWUgaWYgdGhlIEhlYXAgaXMgcGFnZWQgb3V0LgogI2VuZGlmCkBAIC01
OCw5ICs1Niw5IEBAIHZvaWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkK
ICAgICBoZWFwLmNvbGxlY3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOwogfQogCi1kb3Vi
bGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKK1NlY29uZHMgRnVsbEdD
QWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gbV92bS0+aGVh
cC5sYXN0RnVsbEdDTGVuZ3RoKCkuc2Vjb25kcygpOworICAgIHJldHVybiBtX3ZtLT5oZWFwLmxh
c3RGdWxsR0NMZW5ndGgoKTsKIH0KIAogZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRl
YXRoUmF0ZSgpCkBAIC04NCwzMiArODIsNCBAQCBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFj
azo6Z2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKQogICAgIHJldHVybiBzdGQ6Om1pbigoc3RhdGlj
X2Nhc3Q8ZG91YmxlPihieXRlcykgLyBNQikgKiBPcHRpb25zOjpwZXJjZW50Q1BVUGVyTUJGb3JG
dWxsVGltZXIoKSwgT3B0aW9uczo6Y29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSgpKTsKIH0K
IAotI2Vsc2UKLQotRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6RnVsbEdDQWN0aXZpdHlDYWxsYmFj
ayhIZWFwKiBoZWFwKQotICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApCi17Ci19Ci0KLXZv
aWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKLXsKLX0KLQotZG91Ymxl
IEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCi17Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQotewotICAg
IHJldHVybiAwOwotfQotCi1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xp
Y2Uoc2l6ZV90KQotewotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLy8gVVNFKENGKSB8fCBV
U0UoR0xJQikKLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNTEwNmVlNzk4Nzg5NGI5
OTkyOTkwYWJhMTBmNjhhMzkwMDllZmVlNi4uNDNkNTNiOGExZTMxODE2MGI1MWZjZmViNDZmZWVi
ZmE2NzllMmQzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdD
QWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxH
Q0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJ
VkFURSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7
CiAgICAgdm9pZCBzZXREaWRTeW5jR0NSZWNlbnRseSgpIHsgbV9kaWRTeW5jR0NSZWNlbnRseSA9
IHRydWU7IH0KIAogcHJvdGVjdGVkOgotICAgIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSBvdmVycmlk
ZTsKKyAgICBTZWNvbmRzIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1Rp
bWVTbGljZShzaXplX3QgYnl0ZXMpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBkZWF0aFJhdGUoKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rp
dml0eUNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlD
YWxsYmFjay5jcHAKaW5kZXggMzgwZDkxYzdjMDZlMGM2Y2IxMWE5YzdmMGNhZDU5MGYwYjQ0NWI5
OS4uYTEzMDU2YTdmNTAzMjFmNmZiMjJmMGQzMzBmODBmNWI5OWZiNjc4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCkBAIC00Miwy
MiArNDIsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGJvb2wgR0NBY3Rpdml0eUNhbGxiYWNrOjpz
X3Nob3VsZENyZWF0ZUdDVGltZXIgPSB0cnVlOwogCi0jaWYgVVNFKENGKSB8fCBVU0UoR0xJQikK
LQogY29uc3QgZG91YmxlIHRpbWVyU2xvcCA9IDIuMDsgLy8gRnVkZ2UgZmFjdG9yIHRvIGF2b2lk
IHBlcmZvcm1hbmNlIGNvc3Qgb2YgcmVzZXR0aW5nIHRpbWVyLgogCi0jaWYgVVNFKENGKQogR0NB
Y3Rpdml0eUNhbGxiYWNrOjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKICAgICA6IEdD
QWN0aXZpdHlDYWxsYmFjayhoZWFwLT52bSgpKQogewogfQotI2VsaWYgVVNFKEdMSUIpCi1HQ0Fj
dGl2aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQotICAgIDogR0NB
Y3Rpdml0eUNhbGxiYWNrKGhlYXAtPnZtKCkpCi17Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3Rp
bWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIHNfZGVjYWRlICogR19V
U0VDX1BFUl9TRUMpOwotfQotI2VuZGlmCiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dv
cmsoKQogewpAQCAtNjcsNyArNTcsNyBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3Jr
KCkKICAgICAKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKG1fdm0pOwogICAgIGlmIChoZWFwLT5p
c0RlZmVycmVkKCkpIHsKLSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsKKyAgICAgICAgc2NoZWR1
bGVUaW1lcigwX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NSw0MiArNjUsMzYg
QEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB9CiAKICNpZiBVU0UoQ0YpCi12
b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCit2
b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIG5ld0RlbGF5KQog
ewogICAgIGlmIChuZXdEZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBkb3VibGUgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBk
ZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAg
bV9uZXh0RmlyZVRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKLSAgICBDRlJ1
bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdl
dE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhKTsKKyAgICBDRlJ1bkxvb3BUaW1l
clNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJl
RGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhLnNlY29uZHMoKSk7CiB9CiAKIHZvaWQgR0NBY3Rp
dml0eUNhbGxiYWNrOjpjYW5jZWxUaW1lcigpCiB7CiAgICAgbV9kZWxheSA9IHNfZGVjYWRlOwot
ICAgIG1fbmV4dEZpcmVUaW1lID0gMDsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0
ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlKTsK
KyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29s
dXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSk7CiB9Ci0jZWxpZiBVU0Uo
R0xJQikKLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBuZXdE
ZWxheSkKKyNlbHNlCit2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNv
bmRzIG5ld0RlbGF5KQogewotICAgIEFTU0VSVChuZXdEZWxheSA+PSAwKTsKICAgICBpZiAobmV3
RGVsYXkgKiB0aW1lclNsb3AgPiBtX2RlbGF5KQogICAgICAgICByZXR1cm47Ci0KLSAgICBkb3Vi
bGUgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBkZWx0YSA9IG1fZGVs
YXkgLSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAgbV9uZXh0RmlyZVRp
bWUgPSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKIAotICAgIGdpbnQ2NCByZWFkeVRp
bWUgPSBnX3NvdXJjZV9nZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpKTsKLSAgICBnX3NvdXJj
ZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCByZWFkeVRpbWUgLSBkZWx0YSAqIEdfVVNF
Q19QRVJfU0VDKTsKKyAgICBTZWNvbmRzIHNlY29uZHNVbnRpbEZpcmUgPSBtX3RpbWVyLnNlY29u
ZHNVbnRpbEZpcmUoKTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzZWNvbmRzVW50aWxGaXJl
IC0gZGVsdGEpOwogfQogCiB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2VsVGltZXIoKQog
ewogICAgIG1fZGVsYXkgPSBzX2RlY2FkZTsKLSAgICBtX25leHRGaXJlVGltZSA9IDA7Ci0gICAg
Z19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3Rp
bWUoKSArIHNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMpOworICAgIG1fdGltZXIuc3RhcnRPbmVT
aG90KHNfZGVjYWRlKTsKIH0KICNlbmRpZgogCkBAIC0xMjEsNyArMTA1LDcgQEAgdm9pZCBHQ0Fj
dGl2aXR5Q2FsbGJhY2s6OmRpZEFsbG9jYXRlKHNpemVfdCBieXRlcykKICAgICBpZiAoIWJ5dGVz
KQogICAgICAgICBieXRlcyA9IDE7CiAgICAgZG91YmxlIGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0g
PSBzdGF0aWNfY2FzdDxkb3VibGU+KGJ5dGVzKSAqIGRlYXRoUmF0ZSgpOwotICAgIGRvdWJsZSBu
ZXdEZWxheSA9IGxhc3RHQ0xlbmd0aCgpIC8gZ2NUaW1lU2xpY2UoYnl0ZXNFeHBlY3RlZFRvUmVj
bGFpbSk7CisgICAgU2Vjb25kcyBuZXdEZWxheSA9IGxhc3RHQ0xlbmd0aCgpIC8gZ2NUaW1lU2xp
Y2UoYnl0ZXNFeHBlY3RlZFRvUmVjbGFpbSk7CiAgICAgc2NoZWR1bGVUaW1lcihuZXdEZWxheSk7
CiB9CiAKQEAgLTEzNSwzMCArMTE5LDUgQEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNl
bCgpCiAgICAgY2FuY2VsVGltZXIoKTsKIH0KIAotI2Vsc2UKLQotR0NBY3Rpdml0eUNhbGxiYWNr
OjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxsYmFj
ayhoZWFwLT52bSgpKQotewotfQotCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkK
LXsKLX0KLQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRpZEFsbG9jYXRlKHNpemVfdCkKLXsK
LX0KLQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OndpbGxDb2xsZWN0KCkKLXsKLX0KLQotdm9p
ZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbCgpCi17Ci19Ci0KLSNlbmRpZgotCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXgg
YWY0NzU4OGQ2MDExOWFkOGRkNTE1ZDhmNGE1MGNmYzcyOTU4MTMxNC4uNWFhYjEzZWI2MTYzNWNi
MmNhMDE0NzExZmIxYTUwYjYzYzI1ZjFiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTYwLDQ4ICs2MCwyNiBAQCBjbGFzcyBKU19F
WFBPUlRfUFJJVkFURSBHQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIg
ewogCiAgICAgc3RhdGljIGJvb2wgc19zaG91bGRDcmVhdGVHQ1RpbWVyOwogCi0jaWYgVVNFKENG
KSB8fCBVU0UoR0xJQikKLSAgICBkb3VibGUgbmV4dEZpcmVUaW1lKCkgY29uc3QgeyByZXR1cm4g
bV9uZXh0RmlyZVRpbWU7IH0KLSNlbmRpZgotCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBkb3Vi
bGUgbGFzdEdDTGVuZ3RoKCkgPSAwOworICAgIHZpcnR1YWwgU2Vjb25kcyBsYXN0R0NMZW5ndGgo
KSA9IDA7CiAgICAgdmlydHVhbCBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSA9IDA7
CiAgICAgdmlydHVhbCBkb3VibGUgZGVhdGhSYXRlKCkgPSAwOwogCi0jaWYgVVNFKENGKQotICAg
IEdDQWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCi0gICAgICAgIDogQmFzZSh2bSkKLSAgICAgICAg
LCBtX2VuYWJsZWQodHJ1ZSkKLSAgICAgICAgLCBtX2RlbGF5KHNfZGVjYWRlKQotICAgIHsKLSAg
ICB9Ci0jZWxpZiBVU0UoR0xJQikKICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2soVk0qIHZtKQogICAg
ICAgICA6IEJhc2Uodm0pCiAgICAgICAgICwgbV9lbmFibGVkKHRydWUpCiAgICAgICAgICwgbV9k
ZWxheShzX2RlY2FkZSkKICAgICB7CiAgICAgfQotI2Vsc2UKLSAgICBHQ0FjdGl2aXR5Q2FsbGJh
Y2soVk0qIHZtKQotICAgICAgICA6IEJhc2Uodm0pCi0gICAgICAgICwgbV9lbmFibGVkKHRydWUp
Ci0gICAgewotICAgIH0KLSNlbmRpZgogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAKLSNpZiBVU0Uo
Q0YpIHx8IFVTRShHTElCKQogcHJvdGVjdGVkOgogICAgIHZvaWQgY2FuY2VsVGltZXIoKTsKLSAg
ICB2b2lkIHNjaGVkdWxlVGltZXIoZG91YmxlKTsKKyAgICB2b2lkIHNjaGVkdWxlVGltZXIoU2Vj
b25kcyk7CiAKIHByaXZhdGU6Ci0gICAgZG91YmxlIG1fZGVsYXk7Ci0gICAgZG91YmxlIG1fbmV4
dEZpcmVUaW1lIHsgMCB9OwotI2VuZGlmCisgICAgU2Vjb25kcyBtX2RlbGF5OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
bmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVt
ZW50YWxTd2VlcGVyLmNwcAppbmRleCA4Y2JmYTllODA0MGRjNjFlZmIwMTliMjE0NTU0NDU1ZTJm
YTgzMWI2Li4yOWJkNGIyYTVhZDYyNGY5MzZmNWQ3MDY4OTU4ZWM4Njk4OTEwMWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKQEAg
LTM1LDcgKzM1LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUg
c3dlZXBUaW1lU2xpY2UgPSAuMDE7IC8vIHNlY29uZHMKK3N0YXRpYyBjb25zdCBTZWNvbmRzIHN3
ZWVwVGltZVNsaWNlID0gMTBfbXM7IC8vIHNlY29uZHMKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dl
ZXBUaW1lVG90YWwgPSAuMTA7CiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZU11bHRpcGxp
ZXIgPSAxLjAgLyBzd2VlcFRpbWVUb3RhbDsKIApAQCAtNTIsMTMgKzUyLDEzIEBAIEluY3JlbWVu
dGFsU3dlZXBlcjo6SW5jcmVtZW50YWxTd2VlcGVyKEhlYXAqIGhlYXApCiAKIHZvaWQgSW5jcmVt
ZW50YWxTd2VlcGVyOjpkb1dvcmsoKQogewotICAgIGRvU3dlZXAoV1RGOjptb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSk7CisgICAgZG9Td2VlcChNb25vdG9uaWNUaW1lOjpub3coKSk7CiB9
CiAKLXZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKGRvdWJsZSBzd2VlcEJlZ2luVGlt
ZSkKK3ZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKE1vbm90b25pY1RpbWUgc3dlZXBC
ZWdpblRpbWUpCiB7CiAgICAgd2hpbGUgKHN3ZWVwTmV4dEJsb2NrKCkpIHsKLSAgICAgICAgZG91
YmxlIGVsYXBzZWRUaW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN3
ZWVwQmVnaW5UaW1lOworICAgICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lID0gTW9ub3RvbmljVGlt
ZTo6bm93KCkgLSBzd2VlcEJlZ2luVGltZTsKICAgICAgICAgaWYgKGVsYXBzZWRUaW1lIDwgc3dl
ZXBUaW1lU2xpY2UpCiAgICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAppbmRleCA3NmQ0NTRmM2MwNGIzMWJk
MTE0YjgwNzE0M2U0ZDFlMTVhNGU1YmM1Li40ODgzNGIxM2JjNWM2M2E5YThhZjgyZWI3MzRjMWUx
YjFhNjM0NTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1l
bnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRh
bFN3ZWVwZXIuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXIgOiBw
dWJsaWMgSlNSdW5Mb29wVGltZXIgewogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RvcFN3
ZWVwaW5nKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBkb1N3ZWVwKGRvdWJsZSBzdGFydFRpbWUp
OworICAgIHZvaWQgZG9Td2VlcChNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSk7CiAgICAgdm9pZCBz
Y2hlZHVsZVRpbWVyKCk7CiAgICAgCiAgICAgTWFya2VkQWxsb2NhdG9yKiBtX2N1cnJlbnRBbGxv
Y2F0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNl
c3NhcnlUaW1lci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3Nh
cnlUaW1lci5jcHAKaW5kZXggOTQwZDM5ZGUyNGFjZmQzMmQ5NmE0YWMyMWVkMmMyYTUzMTdjMjFj
ZC4uNjIzOTYxMDk0NDdmNjRjZDZlZGZjZjJhOGY5ZDlhNjM1Y2RiMTNkMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcApAQCAt
NDgsNyArNDgsNyBAQCB2b2lkIFN0b3BJZk5lY2Vzc2FyeVRpbWVyOjpzY2hlZHVsZVNvb24oKQog
ICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICBzY2hlZHVsZVRpbWVyKDApOworICAgIHNjaGVkdWxlVGltZXIoMF9zKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1J1bkxvb3BUaW1lci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxv
b3BUaW1lci5jcHAKaW5kZXggZmQ3OWQ1OTgwNGE3ZjQ4MmVkZjk0Nzg3ZWVkZGE3NDhiZGZkMmY5
My4uNjhmY2U0ZGNjYzBiZTVlMDBiODVmM2QzZTg2NmE1NmMzNzNjODMwNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcApAQCAtNDIsNiAr
NDIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY29uc3QgU2Vjb25kcyBKU1J1bkxvb3BUaW1l
cjo6c19kZWNhZGUgeyA2MCAqIDYwICogMjQgKiAzNjUgKiAxMCB9OworCiB2b2lkIEpTUnVuTG9v
cFRpbWVyOjp0aW1lckRpZEZpcmUoKQogewogICAgIG1fYXBpTG9jay0+bG9jaygpOwpAQCAtNjMs
OCArNjUsNiBAQCB2b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmUoKQogCiAjaWYgVVNF
KENGKQogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBKU1J1bkxvb3BUaW1lcjo6c19kZWNhZGUgPSA2
MCAqIDYwICogMjQgKiAzNjUgKiAxMDsKLQogSlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVy
KFZNKiB2bSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkp
CkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgSlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3AoQ0ZSdW5M
b29wUmVmIHJ1bkxvb3ApCiAgICAgICAgIG1fcnVuTG9vcCA9IHJ1bkxvb3A7CiAgICAgICAgIG1l
bXNldCgmbV9jb250ZXh0LCAwLCBzaXplb2YoQ0ZSdW5Mb29wVGltZXJDb250ZXh0KSk7CiAgICAg
ICAgIG1fY29udGV4dC5pbmZvID0gdGhpczsKLSAgICAgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZS
dW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgKyBzX2RlY2FkZSwgc19kZWNhZGUsIDAsIDAsIEpTUnVuTG9vcFRpbWVyOjp0aW1l
ckRpZEZpcmVDYWxsYmFjaywgJm1fY29udGV4dCkpOworICAgICAgICBtX3RpbWVyID0gYWRvcHRD
RihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGlt
ZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSwgc19kZWNhZGUuc2Vjb25kcygpLCAw
LCAwLCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2ssICZtX2NvbnRleHQpKTsK
ICAgICAgICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgp
LCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwogICAgIH0KIH0KQEAgLTk1LDgyICs5NSwzNSBAQCBK
U1J1bkxvb3BUaW1lcjo6fkpTUnVuTG9vcFRpbWVyKCkKICAgICBzZXRSdW5Mb29wKDApOwogfQog
Ci12b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1l
clJlZiwgdm9pZCogY29udGV4dFB0cikKLXsKLSAgICBzdGF0aWNfY2FzdDxKU1J1bkxvb3BUaW1l
cio+KGNvbnRleHRQdHIpLT50aW1lckRpZEZpcmUoKTsKLX0KLQotdm9pZCBKU1J1bkxvb3BUaW1l
cjo6c2NoZWR1bGVUaW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9v
cFRpbWVyOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCiB7Ci0gICAg
Q0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRp
bWVHZXRDdXJyZW50KCkgKyBpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgQ0ZSdW5Mb29wVGltZXJT
ZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkg
KyBpbnRlcnZhbEluU2Vjb25kcy5zZWNvbmRzKCkpOwogICAgIG1faXNTY2hlZHVsZWQgPSB0cnVl
OwogfQogCiB2b2lkIEpTUnVuTG9vcFRpbWVyOjpjYW5jZWxUaW1lcigpCiB7Ci0gICAgQ0ZSdW5M
b29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgKyBzX2RlY2FkZSk7CisgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUo
bV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZS5zZWNv
bmRzKCkpOwogICAgIG1faXNTY2hlZHVsZWQgPSBmYWxzZTsKIH0KIAotI2VsaWYgVVNFKEdMSUIp
Ci0KLWNvbnN0IGxvbmcgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlID0gNjAgKiA2MCAqIDI0ICog
MzY1ICogMTA7Ci0KLXN0YXRpYyBHU291cmNlRnVuY3MgSlNSdW5Mb29wVGltZXJTb3VyY2VGdW5j
dGlvbnMgPSB7Ci0gICAgbnVsbHB0ciwgLy8gcHJlcGFyZQotICAgIG51bGxwdHIsIC8vIGNoZWNr
Ci0gICAgLy8gZGlzcGF0Y2gKLSAgICBbXShHU291cmNlKiwgR1NvdXJjZUZ1bmMgY2FsbGJhY2ss
IGdwb2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbgotICAgIHsKLSAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKHVzZXJEYXRhKTsKLSAgICB9LAotICAgIG51bGxwdHIsIC8vIGZpbmFsaXplCi0gICAg
bnVsbHB0ciwgLy8gY2xvc3VyZV9jYWxsYmFjawotICAgIG51bGxwdHIsIC8vIGNsb3N1cmVfbWFy
c2hhbGwKLX07Ci0KLUpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCi0gICAg
OiBtX3ZtKHZtKQotICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQotICAgICwgbV90aW1l
cihhZG9wdEdSZWYoZ19zb3VyY2VfbmV3KCZKU1J1bkxvb3BUaW1lclNvdXJjZUZ1bmN0aW9ucywg
c2l6ZW9mKEdTb3VyY2UpKSkpCi17Ci0gICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fdGltZXIu
Z2V0KCksIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6SmF2YXNjcmlwdFRpbWVyKTsKLSAgICBnX3Nv
dXJjZV9zZXRfbmFtZShtX3RpbWVyLmdldCgpLCAiW0phdmFTY3JpcHRDb3JlXSBKU1J1bkxvb3BU
aW1lciIpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyLmdldCgpLCBbXShncG9p
bnRlciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4gewotICAgICAgICBhdXRvJiBydW5Mb29wVGltZXIg
PSAqc3RhdGljX2Nhc3Q8SlNSdW5Mb29wVGltZXIqPih1c2VyRGF0YSk7Ci0gICAgICAgIGdfc291
cmNlX3NldF9yZWFkeV90aW1lKHJ1bkxvb3BUaW1lci5tX3RpbWVyLmdldCgpLCBnX2dldF9tb25v
dG9uaWNfdGltZSgpICsgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMp
OwotICAgICAgICBydW5Mb29wVGltZXIudGltZXJEaWRGaXJlKCk7Ci0gICAgICAgIHJldHVybiBH
X1NPVVJDRV9DT05USU5VRTsKLSAgICB9LCB0aGlzLCBudWxscHRyKTsKLSAgICBnX3NvdXJjZV9h
dHRhY2gobV90aW1lci5nZXQoKSwgZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkp
OwotfQotCi1KU1J1bkxvb3BUaW1lcjo6fkpTUnVuTG9vcFRpbWVyKCkKLXsKLSAgICBnX3NvdXJj
ZV9kZXN0cm95KG1fdGltZXIuZ2V0KCkpOwotfQorI2Vsc2UKIAotdm9pZCBKU1J1bkxvb3BUaW1l
cjo6c2NoZWR1bGVUaW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9v
cFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaygpCiB7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5
X3RpbWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIGludGVydmFsSW5T
ZWNvbmRzICogR19VU0VDX1BFUl9TRUMpOwotICAgIG1faXNTY2hlZHVsZWQgPSB0cnVlOworICAg
IGNhbmNlbFRpbWVyKCk7CisgICAgdGltZXJEaWRGaXJlKCk7CiB9CiAKLXZvaWQgSlNSdW5Mb29w
VGltZXI6OmNhbmNlbFRpbWVyKCkKLXsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3Rp
bWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVS
X1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxlZCA9IGZhbHNlOwotfQotCi0jZWxzZQotCi1jb25zdCBT
ZWNvbmRzIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEw
IH07Ci0KIEpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCiAgICAgOiBtX3Zt
KHZtKQogICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQotICAgICwgbV90aW1lcihSdW5M
b29wOjpjdXJyZW50KCksIHRoaXMsICZKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKQorICAg
ICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZKU1J1bkxvb3BUaW1lcjo6dGlt
ZXJEaWRGaXJlQ2FsbGJhY2spCiB7CisjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkKKyAgICBtX3Rp
bWVyLnNldFByaW9yaXR5KFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6SmF2YXNjcmlwdFRpbWVyKTsK
KyAgICBtX3RpbWVyLnNldE5hbWUoIltKYXZhU2NyaXB0Q29yZV0gSlNSdW5Mb29wVGltZXIiKTsK
KyNlbmRpZgogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KHNfZGVjYWRlKTsKIH0KIApAQCAtMTc4
LDcgKzEzMSw3IEBAIEpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIoKQogewogfQogCi12
b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25k
cykKK3ZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbElu
U2Vjb25kcykKIHsKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChpbnRlcnZhbEluU2Vjb25kcyk7
CiAgICAgbV9pc1NjaGVkdWxlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNSdW5Mb29wVGltZXIuaAppbmRleCAwMGYzZTZiYmNjZWM1ODdmZDk5ZTk4ZWQxNjA1
M2ZkNjU3NzU5ODA2Li5kOGVjZTkyMDc5M2ZjMzAzMzFkYzhmYWNkNTE5ZmJlNzZjOTZhOWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKQEAg
LTM2LDEwICszNiw2IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24u
aD4KICNlbmRpZgogCi0jaWYgVVNFKEdMSUIpCi0jaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgotI2VuZGlmCi0KIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBKU0xvY2s7CkBAIC01MCwxMiAr
NDYsMTQgQEAgY2xhc3MgSlNSdW5Mb29wVGltZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8SlNSdW5Mb29wVGltZXI+IHsKICAgICBKU1J1bkxvb3BUaW1lcihWTSopOwogI2lmIFVTRShD
RikKICAgICBzdGF0aWMgdm9pZCB0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1lclJl
Ziwgdm9pZCopOworI2Vsc2UKKyAgICB2b2lkIHRpbWVyRGlkRmlyZUNhbGxiYWNrKCk7CiAjZW5k
aWYKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgfkpTUnVuTG9vcFRpbWVyKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRvV29yaygpID0gMDsKIAotICAgIHZvaWQgc2NoZWR1bGVUaW1lcihk
b3VibGUgaW50ZXJ2YWxJblNlY29uZHMpOworICAgIHZvaWQgc2NoZWR1bGVUaW1lcihTZWNvbmRz
IGludGVydmFsSW5TZWNvbmRzKTsKICAgICB2b2lkIGNhbmNlbFRpbWVyKCk7CiAgICAgYm9vbCBp
c1NjaGVkdWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTY2hlZHVsZWQ7IH0KIApAQCAtNjYsMjIg
KzY0LDE4IEBAIGNsYXNzIEpTUnVuTG9vcFRpbWVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPEpTUnVuTG9vcFRpbWVyPiB7CiBwcm90ZWN0ZWQ6CiAgICAgVk0qIG1fdm07CiAKKyAgICBz
dGF0aWMgY29uc3QgU2Vjb25kcyBzX2RlY2FkZTsKKwogICAgIFJlZlB0cjxKU0xvY2s+IG1fYXBp
TG9jazsKICAgICBib29sIG1faXNTY2hlZHVsZWQgeyBmYWxzZSB9OwogI2lmIFVTRShDRikKLSAg
ICBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgc19kZWNhZGU7Ci0KICAgICBSZXRhaW5QdHI8
Q0ZSdW5Mb29wVGltZXJSZWY+IG1fdGltZXI7CiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4g
bV9ydW5Mb29wOwogCiAgICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IG1fY29udGV4dDsKIAogICAg
IExvY2sgbV9zaHV0ZG93bk11dGV4OwotI2VsaWYgVVNFKEdMSUIpCi0gICAgc3RhdGljIGNvbnN0
IGxvbmcgc19kZWNhZGU7Ci0gICAgR1JlZlB0cjxHU291cmNlPiBtX3RpbWVyOwogI2Vsc2UKLSAg
ICBzdGF0aWMgY29uc3QgU2Vjb25kcyBzX2RlY2FkZTsKICAgICBSdW5Mb29wOjpUaW1lcjxKU1J1
bkxvb3BUaW1lcj4gbV90aW1lcjsKICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCmluZGV4IDEwNDVl
NDY2YWEzNjFhNGE2NGEyOWNmMGU5NDM2ZTM0NTRjYzkyZTEuLjNkY2FlYWFmZTViMzhmYmE1YmE4
YWY5NzY2MGY1MWJjNjU5ZmQyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5jcHAKQEAgLTEzNCw3ICsxMzQsNyBAQCB2
b2lkIFByb21pc2VEZWZlcnJlZFRpbWVyOjpzY2hlZHVsZVdvcmtTb29uKEpTUHJvbWlzZURlZmVy
cmVkKiB0aWNrZXQsIFRhc2smJiB0YQogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGFza0xvY2sp
OwogICAgIG1fdGFza3MuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZSh0aWNrZXQsIFdURk1vdmUodGFz
aykpKTsKICAgICBpZiAoIWlzU2NoZWR1bGVkKCkgJiYgIW1fY3VycmVudGx5UnVubmluZ1Rhc2sp
Ci0gICAgICAgIHNjaGVkdWxlVGltZXIoMCk7CisgICAgICAgIHNjaGVkdWxlVGltZXIoMF9zKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5M
b29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKaW5kZXggOTJjYzE1MGZkZDI5OTUwNDk1
MjIyMmQwODI2ODM3ZjRiYmRiMjAzNi4uM2QwNmMzZWI4OTMwMGQ2MGZhMDgzNjRiZGVlY2Q2ZjA5
ZThiYTg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAtOTMsMTAgKzkzLDEyIEBAIGNsYXNzIFJ1bkxvb3AgOiBw
dWJsaWMgRnVuY3Rpb25EaXNwYXRjaGVyIHsKIAogICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdG9wKCk7CiAgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkg
Y29uc3Q7CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBTZWNvbmRzIHNlY29uZHNVbnRpbEZp
cmUoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CiAKICNpZiBV
U0UoR0xJQl9FVkVOVF9MT09QKQorICAgICAgICB2b2lkIHNldE5hbWUoY29uc3QgY2hhciopOwog
ICAgICAgICB2b2lkIHNldFByaW9yaXR5KGludCk7CiAjZW5kaWYKIApAQCAtMTA2LDggKzEwOCwx
MSBAQCBjbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgICAg
IFJlZjxSdW5Mb29wPiBtX3J1bkxvb3A7CiAKICNpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQor
ICAgICAgICBib29sIGlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3Q7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsKICAgICAg
ICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgTW9ub3RvbmljVGltZSBtX25leHRGaXJlRGF0ZTsK
KyAgICAgICAgU2Vjb25kcyBtX2ludGVydmFsOwogICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7
CiAjZWxpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKICAgICAgICAgc3RhdGljIHZvaWQgdGltZXJG
aXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvY2YvUnVuTG9vcENGLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAKaW5k
ZXggNDFmOGY5NTc1YzY4MzAyZjM4NjJkYzIyM2ZlNTQyN2E4YWUyNDQxNi4uNWU0YzgwNTdlOTEz
NTQ3NTg5MmQwNGUxNjY1NTQxYmI5MjQ1Mjg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Y2YvUnVuTG9vcENGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCkBA
IC0xMTksNCArMTE5LDExIEBAIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIu
Z2V0KCkpOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmly
ZSgpIGNvbnN0Cit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1h
eDxTZWNvbmRzPihTZWNvbmRzIHsgQ0ZSdW5Mb29wVGltZXJHZXROZXh0RmlyZURhdGUobV90aW1l
ci5nZXQoKSkgLSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSB9LCAwX3MpOworICAgIHJldHVy
biAwX3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1
bkxvb3BHZW5lcmljLmNwcAppbmRleCAxM2UyNzE0YzI5ZDQ5YmU1NGNkNmM4YzM0NmU4Yzc2Yzc1
ZTkyNGViLi5hNTY4MGUyMjg1MzVlNGVlMWMxMmMxN2IyMjJjMjg0MjMyNzA3M2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcApAQCAtMjkzLDQgKzI5MywxMiBA
QCBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXIm
KSBjb25zdAogICAgIHJldHVybiBtX3NjaGVkdWxlZFRhc2s7CiB9CiAKK1NlY29uZHMgUnVuTG9v
cDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOworICAgIGlmIChpc0FjdGl2ZShsb2NrZXIp
KQorICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9zY2hlZHVsZWRUYXNrLT5zY2hl
ZHVsZWRUaW1lUG9pbnQoKSAtIE1vbm90b25pY1RpbWU6Om5vdygpLCAwX3MpOworICAgIHJldHVy
biAwX3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGli
LmNwcAppbmRleCBhM2I5M2M0YTI2YjhhNjRhY2Y0YjZmNjk1MGE2MzVjN2QwYjA1Y2VkLi41MDli
MmRhMjRmOWE2YzRjY2VlY2FhZTUxMzRmOWZiOTVlNjc5N2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1
bkxvb3BHTGliLmNwcApAQCAtMTc2LDYgKzE3NiwxMSBAQCBSdW5Mb29wOjpUaW1lckJhc2U6On5U
aW1lckJhc2UoKQogICAgIGdfc291cmNlX2Rlc3Ryb3kobV9zb3VyY2UuZ2V0KCkpOwogfQogCit2
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZShjb25zdCBjaGFyKiBuYW1lKQoreworICAg
IGdfc291cmNlX3NldF9uYW1lKG1fc291cmNlLmdldCgpLCBuYW1lKTsKK30KKwogdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnNldFByaW9yaXR5KGludCBwcmlvcml0eSkKIHsKICAgICBnX3NvdXJj
ZV9zZXRfcHJpb3JpdHkobV9zb3VyY2UuZ2V0KCksIHByaW9yaXR5KTsKQEAgLTIxMSw0ICsyMTYs
MTEgQEAgYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1
cm4gZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUobV9zb3VyY2UuZ2V0KCkpICE9IC0xOwogfQogCitT
ZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7Cisg
ICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1heDxTZWNvbmRzPihTZWNv
bmRzOjpmcm9tTWljcm9zZWNvbmRzKGdfc291cmNlX2dldF9yZWFkeV90aW1lKG1fc291cmNlLmdl
dCgpKSAtIGdfZ2V0X21vbm90b25pY190aW1lKCkpLCAwX3MpOworICAgIHJldHVybiAwX3M7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL1J1
bkxvb3BXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCmluZGV4IDg3
NDZiMWVlYTAzODE0NWRmZTg0ODg5OWU1NDUzNmEzN2M4ZGViNGYuLjNlNGM0Y2VhMTc1YzYzMTJj
ZTQ4Yjg5YjQ4YjIzM2U5NDg3ODI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9S
dW5Mb29wV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKQEAg
LTEzMSw3ICsxMzEsOCBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5M
b29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKICAgICAgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVh
dGluZykgewogICAgICAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsK
ICAgICAgICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cs
IElEKTsKLSAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fbmV4dEZpcmVE
YXRlID0gTW9ub3RvbmljVGltZTo6bm93KCkgKyBtX2ludGVydmFsOwogICAgIH0KIAogICAgIHRp
bWVyLT5maXJlZCgpOwpAQCAtMTYwLDYgKzE2MSw4IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCiAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOwogICAgIG1faXNSZXBl
YXRpbmcgPSByZXBlYXQ7CiAgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9JRCwg
dGhpcyk7CisgICAgbV9pbnRlcnZhbCA9IFNlY29uZHMobmV4dEZpcmVJbnRlcnZhbCk7CisgICAg
bV9uZXh0RmlyZURhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIG1faW50ZXJ2YWw7CiAgICAg
OjpTZXRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQsIG5leHRG
aXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsKIH0KIApAQCAtMTc0LDEwICsxNzcsMjQgQEAgdm9pZCBS
dW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQogICAgIDo6S2lsbFRpbWVyKG1fcnVuTG9vcC0+bV9y
dW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCk7CiB9CiAKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNl
Ojppc0FjdGl2ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9CisKIGJvb2wgUnVuTG9v
cDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0CiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOwotICAgIHJldHVybiBtX3J1bkxvb3AtPm1f
YWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOworICAgIHJldHVybiBpc0FjdGl2ZShsb2NrZXIp
OwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNv
bnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xv
Y2spOworICAgIGlmIChpc0FjdGl2ZShsb2NrZXIpKQorICAgICAgICByZXR1cm4gc3RkOjptYXg8
U2Vjb25kcz4obV9uZXh0RmlyZURhdGUgLSBNb25vdG9uaWNUaW1lOjpub3coKSwgMF9zKTsKKyAg
ICByZXR1cm4gMF9zOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306799</attachid>
            <date>2017-04-11 04:03:13 -0700</date>
            <delta_ts>2017-04-11 04:26:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411200312.patch</filename>
            <type>text/plain</type>
            <size>27358</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li43OTU3YTMwMmNmMDUyNzgw
ODQ1YzAxNmZmMDgwNmU2MTdmNDIxYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2NhdGUpOgor
ICAgICAgICAqIGhlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAgICAgICogaGVhcC9JbmNy
ZW1lbnRhbFN3ZWVwZXIuY3BwOgorICAgICAgICAoSlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OmRv
V29yayk6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Td2VlcCk6CisgICAg
ICAgICogaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaDoKKyAgICAgICAgKiBoZWFwL1N0b3BJZk5l
Y2Vzc2FyeVRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6U3RvcElmTmVjZXNzYXJ5VGltZXI6OnNj
aGVkdWxlU29vbik6CisgICAgICAgICogcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHA6CisgICAg
ICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpzZXRSdW5Mb29wKToKKyAgICAgICAgKEpTQzo6SlNS
dW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIpOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1l
cjo6Y2FuY2VsVGltZXIpOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRG
aXJlQ2FsbGJhY2spOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6SlNSdW5Mb29wVGlt
ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNSdW5Mb29wVGltZXIuaDoKKyAgICAgICAgKiBydW50
aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvbWlzZURlZmVy
cmVkVGltZXI6OnNjaGVkdWxlV29ya1Nvb24pOgorCisyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtp
ICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxv
b3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2E4MDQyZDVjYzIwNGFlNzUy
ZmIxYzk5MDVhMmQ4M2EzYzhlM2Y5MS4uZTY1MTBiYzAwMjQwNjVjMjNjNGFhZTJkMTg0NTQ4ZTk1
MGQwMThhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29w
OjpUaW1lciBpbiBHVEsgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHNlY29uZHNVbnRpbEZpcmUgbWV0aG9kLiBBbmQgYWRkIHNldE5hbWUg
YW5kIHNldFByaW9yaXR5CisgICAgICAgIGZvciBHVEsgUnVuTG9vcDo6VGltZXIuCisKKyAgICAg
ICAgKiB3dGYvUnVuTG9vcC5oOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAg
ICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAg
ICAqIHd0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9v
cDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5M
b29wR0xpYi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZSk6
CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6Cisg
ICAgICAgICogd3RmL3dpbi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNl
OjpzdGFydCk6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgor
ICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorCisy
MDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAg
ICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxvb3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2Fs
bGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxs
YmFjay5jcHAKaW5kZXggMDdlNmM3YTNmMDg1NzZlMTQzN2YyODFlNTM3NWVjMzYwYzNjZDhlNy4u
YjZiZGUzZGQxN2Y4NWQ0MGMyOTdjZDM2ZDQ3NzEwN2VmMGZkNWFlMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAg
LTMxLDggKzMxLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShH
TElCKQotCiBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhl
YXAqIGhlYXApCiAgICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKIHsKQEAgLTQzLDkgKzQx
LDkgQEAgdm9pZCBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIG1f
dm0tPmhlYXAuY29sbGVjdEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RWRlbik7CiB9CiAKLWRvdWJs
ZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFw
Lmxhc3RFZGVuR0NMZW5ndGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFz
dEVkZW5HQ0xlbmd0aCgpOwogfQogCiBkb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVh
dGhSYXRlKCkKQEAgLTY5LDMyICs2Nyw0IEBAIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
OjpnY1RpbWVTbGljZShzaXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNf
Y2FzdDxkb3VibGU+KGJ5dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckVk
ZW5UaW1lcigpLCBPcHRpb25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQog
Ci0jZWxzZQotCi1FZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
KEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0K
LQotdm9pZCBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1k
b3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1
cm4gMDsKLX0KLQotZG91YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1Rp
bWVTbGljZShzaXplX3QpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0Yp
IHx8IFVTRShHTElCKQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBjYzRlOTNmY2I5
ZjMwMzljYTYzNTAyNTg2YmFkODc5ZjhhYjU4OTM0Li44NzQ4MmJkZmIzMDE4NmMwMTZiMWE2YTg0
Y2JhZWQ5OTI3MDlmYzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9F
ZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEpTX0VYUE9S
VF9QUklWQVRFIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxi
YWNrIHsKICAgICB2b2lkIGRvQ29sbGVjdGlvbigpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgZG91YmxlIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOworICAgIFNlY29uZHMgbGFzdEdDTGVu
Z3RoKCkgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3Zl
cnJpZGU7CiAgICAgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5k
ZXggZTU3ZGQzYTFjNzk3MTBmMTI1ODZhOTAzODcxN2FkZDRkYjY2MTM5ZC4uYTcxYzc2NjI0MGQw
ZjQ1YjRiMTNhYWE2YjdjNjUzMDZiNGQ0Mzc4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMwLDggKzMwLDYg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiAjaWYg
IVBMQVRGT1JNKElPUykKIGNvbnN0IGRvdWJsZSBwYWdpbmdUaW1lT3V0ID0gMC4xOyAvLyBUaW1l
IGluIHNlY29uZHMgdG8gYWxsb3cgb3Bwb3J0dW5pc3RpYyB0aW1lciB0byBpdGVyYXRlIG92ZXIg
YWxsIGJsb2NrcyB0byBzZWUgaWYgdGhlIEhlYXAgaXMgcGFnZWQgb3V0LgogI2VuZGlmCkBAIC01
OCw5ICs1Niw5IEBAIHZvaWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkK
ICAgICBoZWFwLmNvbGxlY3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOwogfQogCi1kb3Vi
bGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKK1NlY29uZHMgRnVsbEdD
QWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gbV92bS0+aGVh
cC5sYXN0RnVsbEdDTGVuZ3RoKCkuc2Vjb25kcygpOworICAgIHJldHVybiBtX3ZtLT5oZWFwLmxh
c3RGdWxsR0NMZW5ndGgoKTsKIH0KIAogZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRl
YXRoUmF0ZSgpCkBAIC04NCwzMiArODIsNCBAQCBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFj
azo6Z2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKQogICAgIHJldHVybiBzdGQ6Om1pbigoc3RhdGlj
X2Nhc3Q8ZG91YmxlPihieXRlcykgLyBNQikgKiBPcHRpb25zOjpwZXJjZW50Q1BVUGVyTUJGb3JG
dWxsVGltZXIoKSwgT3B0aW9uczo6Y29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSgpKTsKIH0K
IAotI2Vsc2UKLQotRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6RnVsbEdDQWN0aXZpdHlDYWxsYmFj
ayhIZWFwKiBoZWFwKQotICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApCi17Ci19Ci0KLXZv
aWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKLXsKLX0KLQotZG91Ymxl
IEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCi17Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQotewotICAg
IHJldHVybiAwOwotfQotCi1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xp
Y2Uoc2l6ZV90KQotewotICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLy8gVVNFKENGKSB8fCBV
U0UoR0xJQikKLQogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNTEwNmVlNzk4Nzg5NGI5
OTkyOTkwYWJhMTBmNjhhMzkwMDllZmVlNi4uNDNkNTNiOGExZTMxODE2MGI1MWZjZmViNDZmZWVi
ZmE2NzllMmQzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdD
QWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxH
Q0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJ
VkFURSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7
CiAgICAgdm9pZCBzZXREaWRTeW5jR0NSZWNlbnRseSgpIHsgbV9kaWRTeW5jR0NSZWNlbnRseSA9
IHRydWU7IH0KIAogcHJvdGVjdGVkOgotICAgIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSBvdmVycmlk
ZTsKKyAgICBTZWNvbmRzIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1Rp
bWVTbGljZShzaXplX3QgYnl0ZXMpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBkZWF0aFJhdGUoKSBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rp
dml0eUNhbGxiYWNrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlD
YWxsYmFjay5jcHAKaW5kZXggMzgwZDkxYzdjMDZlMGM2Y2IxMWE5YzdmMGNhZDU5MGYwYjQ0NWI5
OS4uYTEzMDU2YTdmNTAzMjFmNmZiMjJmMGQzMzBmODBmNWI5OWZiNjc4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCkBAIC00Miwy
MiArNDIsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGJvb2wgR0NBY3Rpdml0eUNhbGxiYWNrOjpz
X3Nob3VsZENyZWF0ZUdDVGltZXIgPSB0cnVlOwogCi0jaWYgVVNFKENGKSB8fCBVU0UoR0xJQikK
LQogY29uc3QgZG91YmxlIHRpbWVyU2xvcCA9IDIuMDsgLy8gRnVkZ2UgZmFjdG9yIHRvIGF2b2lk
IHBlcmZvcm1hbmNlIGNvc3Qgb2YgcmVzZXR0aW5nIHRpbWVyLgogCi0jaWYgVVNFKENGKQogR0NB
Y3Rpdml0eUNhbGxiYWNrOjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKICAgICA6IEdD
QWN0aXZpdHlDYWxsYmFjayhoZWFwLT52bSgpKQogewogfQotI2VsaWYgVVNFKEdMSUIpCi1HQ0Fj
dGl2aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQotICAgIDogR0NB
Y3Rpdml0eUNhbGxiYWNrKGhlYXAtPnZtKCkpCi17Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3Rp
bWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIHNfZGVjYWRlICogR19V
U0VDX1BFUl9TRUMpOwotfQotI2VuZGlmCiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dv
cmsoKQogewpAQCAtNjcsNyArNTcsNyBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3Jr
KCkKICAgICAKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKG1fdm0pOwogICAgIGlmIChoZWFwLT5p
c0RlZmVycmVkKCkpIHsKLSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsKKyAgICAgICAgc2NoZWR1
bGVUaW1lcigwX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NSw0MiArNjUsMzYg
QEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB9CiAKICNpZiBVU0UoQ0YpCi12
b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCit2
b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIG5ld0RlbGF5KQog
ewogICAgIGlmIChuZXdEZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBkb3VibGUgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBk
ZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAg
bV9uZXh0RmlyZVRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKLSAgICBDRlJ1
bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdl
dE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhKTsKKyAgICBDRlJ1bkxvb3BUaW1l
clNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJl
RGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhLnNlY29uZHMoKSk7CiB9CiAKIHZvaWQgR0NBY3Rp
dml0eUNhbGxiYWNrOjpjYW5jZWxUaW1lcigpCiB7CiAgICAgbV9kZWxheSA9IHNfZGVjYWRlOwot
ICAgIG1fbmV4dEZpcmVUaW1lID0gMDsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0
ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlKTsK
KyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29s
dXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSk7CiB9Ci0jZWxpZiBVU0Uo
R0xJQikKLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBuZXdE
ZWxheSkKKyNlbHNlCit2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNv
bmRzIG5ld0RlbGF5KQogewotICAgIEFTU0VSVChuZXdEZWxheSA+PSAwKTsKICAgICBpZiAobmV3
RGVsYXkgKiB0aW1lclNsb3AgPiBtX2RlbGF5KQogICAgICAgICByZXR1cm47Ci0KLSAgICBkb3Vi
bGUgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBkZWx0YSA9IG1fZGVs
YXkgLSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAgbV9uZXh0RmlyZVRp
bWUgPSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKIAotICAgIGdpbnQ2NCByZWFkeVRp
bWUgPSBnX3NvdXJjZV9nZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpKTsKLSAgICBnX3NvdXJj
ZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCByZWFkeVRpbWUgLSBkZWx0YSAqIEdfVVNF
Q19QRVJfU0VDKTsKKyAgICBTZWNvbmRzIHNlY29uZHNVbnRpbEZpcmUgPSBtX3RpbWVyLnNlY29u
ZHNVbnRpbEZpcmUoKTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzZWNvbmRzVW50aWxGaXJl
IC0gZGVsdGEpOwogfQogCiB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2VsVGltZXIoKQog
ewogICAgIG1fZGVsYXkgPSBzX2RlY2FkZTsKLSAgICBtX25leHRGaXJlVGltZSA9IDA7Ci0gICAg
Z19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3Rp
bWUoKSArIHNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMpOworICAgIG1fdGltZXIuc3RhcnRPbmVT
aG90KHNfZGVjYWRlKTsKIH0KICNlbmRpZgogCkBAIC0xMjEsNyArMTA1LDcgQEAgdm9pZCBHQ0Fj
dGl2aXR5Q2FsbGJhY2s6OmRpZEFsbG9jYXRlKHNpemVfdCBieXRlcykKICAgICBpZiAoIWJ5dGVz
KQogICAgICAgICBieXRlcyA9IDE7CiAgICAgZG91YmxlIGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0g
PSBzdGF0aWNfY2FzdDxkb3VibGU+KGJ5dGVzKSAqIGRlYXRoUmF0ZSgpOwotICAgIGRvdWJsZSBu
ZXdEZWxheSA9IGxhc3RHQ0xlbmd0aCgpIC8gZ2NUaW1lU2xpY2UoYnl0ZXNFeHBlY3RlZFRvUmVj
bGFpbSk7CisgICAgU2Vjb25kcyBuZXdEZWxheSA9IGxhc3RHQ0xlbmd0aCgpIC8gZ2NUaW1lU2xp
Y2UoYnl0ZXNFeHBlY3RlZFRvUmVjbGFpbSk7CiAgICAgc2NoZWR1bGVUaW1lcihuZXdEZWxheSk7
CiB9CiAKQEAgLTEzNSwzMCArMTE5LDUgQEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNl
bCgpCiAgICAgY2FuY2VsVGltZXIoKTsKIH0KIAotI2Vsc2UKLQotR0NBY3Rpdml0eUNhbGxiYWNr
OjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxsYmFj
ayhoZWFwLT52bSgpKQotewotfQotCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkK
LXsKLX0KLQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRpZEFsbG9jYXRlKHNpemVfdCkKLXsK
LX0KLQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OndpbGxDb2xsZWN0KCkKLXsKLX0KLQotdm9p
ZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbCgpCi17Ci19Ci0KLSNlbmRpZgotCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXgg
YWY0NzU4OGQ2MDExOWFkOGRkNTE1ZDhmNGE1MGNmYzcyOTU4MTMxNC4uNWFhYjEzZWI2MTYzNWNi
MmNhMDE0NzExZmIxYTUwYjYzYzI1ZjFiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKQEAgLTYwLDQ4ICs2MCwyNiBAQCBjbGFzcyBKU19F
WFBPUlRfUFJJVkFURSBHQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIg
ewogCiAgICAgc3RhdGljIGJvb2wgc19zaG91bGRDcmVhdGVHQ1RpbWVyOwogCi0jaWYgVVNFKENG
KSB8fCBVU0UoR0xJQikKLSAgICBkb3VibGUgbmV4dEZpcmVUaW1lKCkgY29uc3QgeyByZXR1cm4g
bV9uZXh0RmlyZVRpbWU7IH0KLSNlbmRpZgotCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBkb3Vi
bGUgbGFzdEdDTGVuZ3RoKCkgPSAwOworICAgIHZpcnR1YWwgU2Vjb25kcyBsYXN0R0NMZW5ndGgo
KSA9IDA7CiAgICAgdmlydHVhbCBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSA9IDA7
CiAgICAgdmlydHVhbCBkb3VibGUgZGVhdGhSYXRlKCkgPSAwOwogCi0jaWYgVVNFKENGKQotICAg
IEdDQWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCi0gICAgICAgIDogQmFzZSh2bSkKLSAgICAgICAg
LCBtX2VuYWJsZWQodHJ1ZSkKLSAgICAgICAgLCBtX2RlbGF5KHNfZGVjYWRlKQotICAgIHsKLSAg
ICB9Ci0jZWxpZiBVU0UoR0xJQikKICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2soVk0qIHZtKQogICAg
ICAgICA6IEJhc2Uodm0pCiAgICAgICAgICwgbV9lbmFibGVkKHRydWUpCiAgICAgICAgICwgbV9k
ZWxheShzX2RlY2FkZSkKICAgICB7CiAgICAgfQotI2Vsc2UKLSAgICBHQ0FjdGl2aXR5Q2FsbGJh
Y2soVk0qIHZtKQotICAgICAgICA6IEJhc2Uodm0pCi0gICAgICAgICwgbV9lbmFibGVkKHRydWUp
Ci0gICAgewotICAgIH0KLSNlbmRpZgogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAKLSNpZiBVU0Uo
Q0YpIHx8IFVTRShHTElCKQogcHJvdGVjdGVkOgogICAgIHZvaWQgY2FuY2VsVGltZXIoKTsKLSAg
ICB2b2lkIHNjaGVkdWxlVGltZXIoZG91YmxlKTsKKyAgICB2b2lkIHNjaGVkdWxlVGltZXIoU2Vj
b25kcyk7CiAKIHByaXZhdGU6Ci0gICAgZG91YmxlIG1fZGVsYXk7Ci0gICAgZG91YmxlIG1fbmV4
dEZpcmVUaW1lIHsgMCB9OwotI2VuZGlmCisgICAgU2Vjb25kcyBtX2RlbGF5OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
bmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVt
ZW50YWxTd2VlcGVyLmNwcAppbmRleCA4Y2JmYTllODA0MGRjNjFlZmIwMTliMjE0NTU0NDU1ZTJm
YTgzMWI2Li4yOWJkNGIyYTVhZDYyNGY5MzZmNWQ3MDY4OTU4ZWM4Njk4OTEwMWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKQEAg
LTM1LDcgKzM1LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUg
c3dlZXBUaW1lU2xpY2UgPSAuMDE7IC8vIHNlY29uZHMKK3N0YXRpYyBjb25zdCBTZWNvbmRzIHN3
ZWVwVGltZVNsaWNlID0gMTBfbXM7IC8vIHNlY29uZHMKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dl
ZXBUaW1lVG90YWwgPSAuMTA7CiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZU11bHRpcGxp
ZXIgPSAxLjAgLyBzd2VlcFRpbWVUb3RhbDsKIApAQCAtNTIsMTMgKzUyLDEzIEBAIEluY3JlbWVu
dGFsU3dlZXBlcjo6SW5jcmVtZW50YWxTd2VlcGVyKEhlYXAqIGhlYXApCiAKIHZvaWQgSW5jcmVt
ZW50YWxTd2VlcGVyOjpkb1dvcmsoKQogewotICAgIGRvU3dlZXAoV1RGOjptb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSk7CisgICAgZG9Td2VlcChNb25vdG9uaWNUaW1lOjpub3coKSk7CiB9
CiAKLXZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKGRvdWJsZSBzd2VlcEJlZ2luVGlt
ZSkKK3ZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKE1vbm90b25pY1RpbWUgc3dlZXBC
ZWdpblRpbWUpCiB7CiAgICAgd2hpbGUgKHN3ZWVwTmV4dEJsb2NrKCkpIHsKLSAgICAgICAgZG91
YmxlIGVsYXBzZWRUaW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN3
ZWVwQmVnaW5UaW1lOworICAgICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lID0gTW9ub3RvbmljVGlt
ZTo6bm93KCkgLSBzd2VlcEJlZ2luVGltZTsKICAgICAgICAgaWYgKGVsYXBzZWRUaW1lIDwgc3dl
ZXBUaW1lU2xpY2UpCiAgICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAppbmRleCA3NmQ0NTRmM2MwNGIzMWJk
MTE0YjgwNzE0M2U0ZDFlMTVhNGU1YmM1Li40ODgzNGIxM2JjNWM2M2E5YThhZjgyZWI3MzRjMWUx
YjFhNjM0NTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1l
bnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRh
bFN3ZWVwZXIuaApAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXIgOiBw
dWJsaWMgSlNSdW5Mb29wVGltZXIgewogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RvcFN3
ZWVwaW5nKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBkb1N3ZWVwKGRvdWJsZSBzdGFydFRpbWUp
OworICAgIHZvaWQgZG9Td2VlcChNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSk7CiAgICAgdm9pZCBz
Y2hlZHVsZVRpbWVyKCk7CiAgICAgCiAgICAgTWFya2VkQWxsb2NhdG9yKiBtX2N1cnJlbnRBbGxv
Y2F0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNl
c3NhcnlUaW1lci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3Nh
cnlUaW1lci5jcHAKaW5kZXggOTQwZDM5ZGUyNGFjZmQzMmQ5NmE0YWMyMWVkMmMyYTUzMTdjMjFj
ZC4uNjIzOTYxMDk0NDdmNjRjZDZlZGZjZjJhOGY5ZDlhNjM1Y2RiMTNkMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcApAQCAt
NDgsNyArNDgsNyBAQCB2b2lkIFN0b3BJZk5lY2Vzc2FyeVRpbWVyOjpzY2hlZHVsZVNvb24oKQog
ICAgICAgICBXVEY6OmxvYWRMb2FkRmVuY2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICBzY2hlZHVsZVRpbWVyKDApOworICAgIHNjaGVkdWxlVGltZXIoMF9zKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1J1bkxvb3BUaW1lci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxv
b3BUaW1lci5jcHAKaW5kZXggZmQ3OWQ1OTgwNGE3ZjQ4MmVkZjk0Nzg3ZWVkZGE3NDhiZGZkMmY5
My4uNjhmY2U0ZGNjYzBiZTVlMDBiODVmM2QzZTg2NmE1NmMzNzNjODMwNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcApAQCAtNDIsNiAr
NDIsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorY29uc3QgU2Vjb25kcyBKU1J1bkxvb3BUaW1l
cjo6c19kZWNhZGUgeyA2MCAqIDYwICogMjQgKiAzNjUgKiAxMCB9OworCiB2b2lkIEpTUnVuTG9v
cFRpbWVyOjp0aW1lckRpZEZpcmUoKQogewogICAgIG1fYXBpTG9jay0+bG9jaygpOwpAQCAtNjMs
OCArNjUsNiBAQCB2b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmUoKQogCiAjaWYgVVNF
KENGKQogCi1jb25zdCBDRlRpbWVJbnRlcnZhbCBKU1J1bkxvb3BUaW1lcjo6c19kZWNhZGUgPSA2
MCAqIDYwICogMjQgKiAzNjUgKiAxMDsKLQogSlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVy
KFZNKiB2bSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkp
CkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgSlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3AoQ0ZSdW5M
b29wUmVmIHJ1bkxvb3ApCiAgICAgICAgIG1fcnVuTG9vcCA9IHJ1bkxvb3A7CiAgICAgICAgIG1l
bXNldCgmbV9jb250ZXh0LCAwLCBzaXplb2YoQ0ZSdW5Mb29wVGltZXJDb250ZXh0KSk7CiAgICAg
ICAgIG1fY29udGV4dC5pbmZvID0gdGhpczsKLSAgICAgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZS
dW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgKyBzX2RlY2FkZSwgc19kZWNhZGUsIDAsIDAsIEpTUnVuTG9vcFRpbWVyOjp0aW1l
ckRpZEZpcmVDYWxsYmFjaywgJm1fY29udGV4dCkpOworICAgICAgICBtX3RpbWVyID0gYWRvcHRD
RihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGlt
ZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSwgc19kZWNhZGUuc2Vjb25kcygpLCAw
LCAwLCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2ssICZtX2NvbnRleHQpKTsK
ICAgICAgICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgp
LCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwogICAgIH0KIH0KQEAgLTk1LDgyICs5NSwzNSBAQCBK
U1J1bkxvb3BUaW1lcjo6fkpTUnVuTG9vcFRpbWVyKCkKICAgICBzZXRSdW5Mb29wKDApOwogfQog
Ci12b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1l
clJlZiwgdm9pZCogY29udGV4dFB0cikKLXsKLSAgICBzdGF0aWNfY2FzdDxKU1J1bkxvb3BUaW1l
cio+KGNvbnRleHRQdHIpLT50aW1lckRpZEZpcmUoKTsKLX0KLQotdm9pZCBKU1J1bkxvb3BUaW1l
cjo6c2NoZWR1bGVUaW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9v
cFRpbWVyOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCiB7Ci0gICAg
Q0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRp
bWVHZXRDdXJyZW50KCkgKyBpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgQ0ZSdW5Mb29wVGltZXJT
ZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkg
KyBpbnRlcnZhbEluU2Vjb25kcy5zZWNvbmRzKCkpOwogICAgIG1faXNTY2hlZHVsZWQgPSB0cnVl
OwogfQogCiB2b2lkIEpTUnVuTG9vcFRpbWVyOjpjYW5jZWxUaW1lcigpCiB7Ci0gICAgQ0ZSdW5M
b29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgKyBzX2RlY2FkZSk7CisgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUo
bV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZS5zZWNv
bmRzKCkpOwogICAgIG1faXNTY2hlZHVsZWQgPSBmYWxzZTsKIH0KIAotI2VsaWYgVVNFKEdMSUIp
Ci0KLWNvbnN0IGxvbmcgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlID0gNjAgKiA2MCAqIDI0ICog
MzY1ICogMTA7Ci0KLXN0YXRpYyBHU291cmNlRnVuY3MgSlNSdW5Mb29wVGltZXJTb3VyY2VGdW5j
dGlvbnMgPSB7Ci0gICAgbnVsbHB0ciwgLy8gcHJlcGFyZQotICAgIG51bGxwdHIsIC8vIGNoZWNr
Ci0gICAgLy8gZGlzcGF0Y2gKLSAgICBbXShHU291cmNlKiwgR1NvdXJjZUZ1bmMgY2FsbGJhY2ss
IGdwb2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbgotICAgIHsKLSAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKHVzZXJEYXRhKTsKLSAgICB9LAotICAgIG51bGxwdHIsIC8vIGZpbmFsaXplCi0gICAg
bnVsbHB0ciwgLy8gY2xvc3VyZV9jYWxsYmFjawotICAgIG51bGxwdHIsIC8vIGNsb3N1cmVfbWFy
c2hhbGwKLX07Ci0KLUpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCi0gICAg
OiBtX3ZtKHZtKQotICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQotICAgICwgbV90aW1l
cihhZG9wdEdSZWYoZ19zb3VyY2VfbmV3KCZKU1J1bkxvb3BUaW1lclNvdXJjZUZ1bmN0aW9ucywg
c2l6ZW9mKEdTb3VyY2UpKSkpCi17Ci0gICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fdGltZXIu
Z2V0KCksIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6SmF2YXNjcmlwdFRpbWVyKTsKLSAgICBnX3Nv
dXJjZV9zZXRfbmFtZShtX3RpbWVyLmdldCgpLCAiW0phdmFTY3JpcHRDb3JlXSBKU1J1bkxvb3BU
aW1lciIpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyLmdldCgpLCBbXShncG9p
bnRlciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4gewotICAgICAgICBhdXRvJiBydW5Mb29wVGltZXIg
PSAqc3RhdGljX2Nhc3Q8SlNSdW5Mb29wVGltZXIqPih1c2VyRGF0YSk7Ci0gICAgICAgIGdfc291
cmNlX3NldF9yZWFkeV90aW1lKHJ1bkxvb3BUaW1lci5tX3RpbWVyLmdldCgpLCBnX2dldF9tb25v
dG9uaWNfdGltZSgpICsgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMp
OwotICAgICAgICBydW5Mb29wVGltZXIudGltZXJEaWRGaXJlKCk7Ci0gICAgICAgIHJldHVybiBH
X1NPVVJDRV9DT05USU5VRTsKLSAgICB9LCB0aGlzLCBudWxscHRyKTsKLSAgICBnX3NvdXJjZV9h
dHRhY2gobV90aW1lci5nZXQoKSwgZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkp
OwotfQotCi1KU1J1bkxvb3BUaW1lcjo6fkpTUnVuTG9vcFRpbWVyKCkKLXsKLSAgICBnX3NvdXJj
ZV9kZXN0cm95KG1fdGltZXIuZ2V0KCkpOwotfQorI2Vsc2UKIAotdm9pZCBKU1J1bkxvb3BUaW1l
cjo6c2NoZWR1bGVUaW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9v
cFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaygpCiB7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5
X3RpbWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIGludGVydmFsSW5T
ZWNvbmRzICogR19VU0VDX1BFUl9TRUMpOwotICAgIG1faXNTY2hlZHVsZWQgPSB0cnVlOworICAg
IGNhbmNlbFRpbWVyKCk7CisgICAgdGltZXJEaWRGaXJlKCk7CiB9CiAKLXZvaWQgSlNSdW5Mb29w
VGltZXI6OmNhbmNlbFRpbWVyKCkKLXsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3Rp
bWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVS
X1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxlZCA9IGZhbHNlOwotfQotCi0jZWxzZQotCi1jb25zdCBT
ZWNvbmRzIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEw
IH07Ci0KIEpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCiAgICAgOiBtX3Zt
KHZtKQogICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQotICAgICwgbV90aW1lcihSdW5M
b29wOjpjdXJyZW50KCksIHRoaXMsICZKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKQorICAg
ICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZKU1J1bkxvb3BUaW1lcjo6dGlt
ZXJEaWRGaXJlQ2FsbGJhY2spCiB7CisjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkKKyAgICBtX3Rp
bWVyLnNldFByaW9yaXR5KFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6SmF2YXNjcmlwdFRpbWVyKTsK
KyAgICBtX3RpbWVyLnNldE5hbWUoIltKYXZhU2NyaXB0Q29yZV0gSlNSdW5Mb29wVGltZXIiKTsK
KyNlbmRpZgogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KHNfZGVjYWRlKTsKIH0KIApAQCAtMTc4
LDcgKzEzMSw3IEBAIEpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIoKQogewogfQogCi12
b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25k
cykKK3ZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbElu
U2Vjb25kcykKIHsKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChpbnRlcnZhbEluU2Vjb25kcyk7
CiAgICAgbV9pc1NjaGVkdWxlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNSdW5Mb29wVGltZXIuaAppbmRleCAwMGYzZTZiYmNjZWM1ODdmZDk5ZTk4ZWQxNjA1
M2ZkNjU3NzU5ODA2Li5kOGVjZTkyMDc5M2ZjMzAzMzFkYzhmYWNkNTE5ZmJlNzZjOTZhOWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKQEAg
LTM2LDEwICszNiw2IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24u
aD4KICNlbmRpZgogCi0jaWYgVVNFKEdMSUIpCi0jaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgotI2VuZGlmCi0KIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBKU0xvY2s7CkBAIC01MCwxMiAr
NDYsMTQgQEAgY2xhc3MgSlNSdW5Mb29wVGltZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8SlNSdW5Mb29wVGltZXI+IHsKICAgICBKU1J1bkxvb3BUaW1lcihWTSopOwogI2lmIFVTRShD
RikKICAgICBzdGF0aWMgdm9pZCB0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1lclJl
Ziwgdm9pZCopOworI2Vsc2UKKyAgICB2b2lkIHRpbWVyRGlkRmlyZUNhbGxiYWNrKCk7CiAjZW5k
aWYKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgfkpTUnVuTG9vcFRpbWVyKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRvV29yaygpID0gMDsKIAotICAgIHZvaWQgc2NoZWR1bGVUaW1lcihk
b3VibGUgaW50ZXJ2YWxJblNlY29uZHMpOworICAgIHZvaWQgc2NoZWR1bGVUaW1lcihTZWNvbmRz
IGludGVydmFsSW5TZWNvbmRzKTsKICAgICB2b2lkIGNhbmNlbFRpbWVyKCk7CiAgICAgYm9vbCBp
c1NjaGVkdWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTY2hlZHVsZWQ7IH0KIApAQCAtNjYsMjIg
KzY0LDE4IEBAIGNsYXNzIEpTUnVuTG9vcFRpbWVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPEpTUnVuTG9vcFRpbWVyPiB7CiBwcm90ZWN0ZWQ6CiAgICAgVk0qIG1fdm07CiAKKyAgICBz
dGF0aWMgY29uc3QgU2Vjb25kcyBzX2RlY2FkZTsKKwogICAgIFJlZlB0cjxKU0xvY2s+IG1fYXBp
TG9jazsKICAgICBib29sIG1faXNTY2hlZHVsZWQgeyBmYWxzZSB9OwogI2lmIFVTRShDRikKLSAg
ICBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgc19kZWNhZGU7Ci0KICAgICBSZXRhaW5QdHI8
Q0ZSdW5Mb29wVGltZXJSZWY+IG1fdGltZXI7CiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4g
bV9ydW5Mb29wOwogCiAgICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IG1fY29udGV4dDsKIAogICAg
IExvY2sgbV9zaHV0ZG93bk11dGV4OwotI2VsaWYgVVNFKEdMSUIpCi0gICAgc3RhdGljIGNvbnN0
IGxvbmcgc19kZWNhZGU7Ci0gICAgR1JlZlB0cjxHU291cmNlPiBtX3RpbWVyOwogI2Vsc2UKLSAg
ICBzdGF0aWMgY29uc3QgU2Vjb25kcyBzX2RlY2FkZTsKICAgICBSdW5Mb29wOjpUaW1lcjxKU1J1
bkxvb3BUaW1lcj4gbV90aW1lcjsKICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCmluZGV4IDEwNDVl
NDY2YWEzNjFhNGE2NGEyOWNmMGU5NDM2ZTM0NTRjYzkyZTEuLjNkY2FlYWFmZTViMzhmYmE1YmE4
YWY5NzY2MGY1MWJjNjU5ZmQyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5jcHAKQEAgLTEzNCw3ICsxMzQsNyBAQCB2
b2lkIFByb21pc2VEZWZlcnJlZFRpbWVyOjpzY2hlZHVsZVdvcmtTb29uKEpTUHJvbWlzZURlZmVy
cmVkKiB0aWNrZXQsIFRhc2smJiB0YQogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGFza0xvY2sp
OwogICAgIG1fdGFza3MuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZSh0aWNrZXQsIFdURk1vdmUodGFz
aykpKTsKICAgICBpZiAoIWlzU2NoZWR1bGVkKCkgJiYgIW1fY3VycmVudGx5UnVubmluZ1Rhc2sp
Ci0gICAgICAgIHNjaGVkdWxlVGltZXIoMCk7CisgICAgICAgIHNjaGVkdWxlVGltZXIoMF9zKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5M
b29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKaW5kZXggOTJjYzE1MGZkZDI5OTUwNDk1
MjIyMmQwODI2ODM3ZjRiYmRiMjAzNi4uM2QwNmMzZWI4OTMwMGQ2MGZhMDgzNjRiZGVlY2Q2ZjA5
ZThiYTg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAtOTMsMTAgKzkzLDEyIEBAIGNsYXNzIFJ1bkxvb3AgOiBw
dWJsaWMgRnVuY3Rpb25EaXNwYXRjaGVyIHsKIAogICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBzdG9wKCk7CiAgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkg
Y29uc3Q7CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBTZWNvbmRzIHNlY29uZHNVbnRpbEZp
cmUoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CiAKICNpZiBV
U0UoR0xJQl9FVkVOVF9MT09QKQorICAgICAgICB2b2lkIHNldE5hbWUoY29uc3QgY2hhciopOwog
ICAgICAgICB2b2lkIHNldFByaW9yaXR5KGludCk7CiAjZW5kaWYKIApAQCAtMTA2LDggKzEwOCwx
MSBAQCBjbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgICAg
IFJlZjxSdW5Mb29wPiBtX3J1bkxvb3A7CiAKICNpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQor
ICAgICAgICBib29sIGlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3Q7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsKICAgICAg
ICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgTW9ub3RvbmljVGltZSBtX25leHRGaXJlRGF0ZTsK
KyAgICAgICAgU2Vjb25kcyBtX2ludGVydmFsOwogICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7
CiAjZWxpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKICAgICAgICAgc3RhdGljIHZvaWQgdGltZXJG
aXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvY2YvUnVuTG9vcENGLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAKaW5k
ZXggNDFmOGY5NTc1YzY4MzAyZjM4NjJkYzIyM2ZlNTQyN2E4YWUyNDQxNi4uNWU0YzgwNTdlOTEz
NTQ3NTg5MmQwNGUxNjY1NTQxYmI5MjQ1Mjg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Y2YvUnVuTG9vcENGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCkBA
IC0xMTksNCArMTE5LDExIEBAIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIu
Z2V0KCkpOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmly
ZSgpIGNvbnN0Cit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1h
eDxTZWNvbmRzPihTZWNvbmRzIHsgQ0ZSdW5Mb29wVGltZXJHZXROZXh0RmlyZURhdGUobV90aW1l
ci5nZXQoKSkgLSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSB9LCAwX3MpOworICAgIHJldHVy
biAwX3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1
bkxvb3BHZW5lcmljLmNwcAppbmRleCAxM2UyNzE0YzI5ZDQ5YmU1NGNkNmM4YzM0NmU4Yzc2Yzc1
ZTkyNGViLi5hNTY4MGUyMjg1MzVlNGVlMWMxMmMxN2IyMjJjMjg0MjMyNzA3M2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcApAQCAtMjkzLDQgKzI5MywxMiBA
QCBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXIm
KSBjb25zdAogICAgIHJldHVybiBtX3NjaGVkdWxlZFRhc2s7CiB9CiAKK1NlY29uZHMgUnVuTG9v
cDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3J1bkxvb3AtPm1fbG9vcExvY2spOworICAgIGlmIChpc0FjdGl2ZShsb2NrZXIp
KQorICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9zY2hlZHVsZWRUYXNrLT5zY2hl
ZHVsZWRUaW1lUG9pbnQoKSAtIE1vbm90b25pY1RpbWU6Om5vdygpLCAwX3MpOworICAgIHJldHVy
biAwX3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGli
LmNwcAppbmRleCBhM2I5M2M0YTI2YjhhNjRhY2Y0YjZmNjk1MGE2MzVjN2QwYjA1Y2VkLi5jZWI0
OWIzMDEyMWU1YTMxZDA4NWRmOTU3NGI0MDExYjUwYmM1ZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1
bkxvb3BHTGliLmNwcApAQCAtMTc2LDYgKzE3NiwxMSBAQCBSdW5Mb29wOjpUaW1lckJhc2U6On5U
aW1lckJhc2UoKQogICAgIGdfc291cmNlX2Rlc3Ryb3kobV9zb3VyY2UuZ2V0KCkpOwogfQogCit2
b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZShjb25zdCBjaGFyKiBuYW1lKQoreworICAg
IGdfc291cmNlX3NldF9uYW1lKG1fc291cmNlLmdldCgpLCBuYW1lKTsKK30KKwogdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnNldFByaW9yaXR5KGludCBwcmlvcml0eSkKIHsKICAgICBnX3NvdXJj
ZV9zZXRfcHJpb3JpdHkobV9zb3VyY2UuZ2V0KCksIHByaW9yaXR5KTsKQEAgLTIxMSw0ICsyMTYs
OSBAQCBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVy
biBnX3NvdXJjZV9nZXRfcmVhZHlfdGltZShtX3NvdXJjZS5nZXQoKSkgIT0gLTE7CiB9CiAKK1Nl
Y29uZHMgUnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4oU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhnX3Nv
dXJjZV9nZXRfcmVhZHlfdGltZShtX3NvdXJjZS5nZXQoKSkgLSBnX2dldF9tb25vdG9uaWNfdGlt
ZSgpKSwgMF9zKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdp
bi5jcHAKaW5kZXggODc0NmIxZWVhMDM4MTQ1ZGZlODQ4ODk5ZTU0NTM2YTM3YzhkZWI0Zi4uM2U0
YzRjZWExNzVjNjMxMmNlNDhiODliNDhiMjMzZTk0ODc4MjYzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5M
b29wV2luLmNwcApAQCAtMTMxLDcgKzEzMSw4IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0
aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElEKQogICAgICAgICBpZiAoIXRp
bWVyLT5tX2lzUmVwZWF0aW5nKSB7CiAgICAgICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5yZW1vdmUoaXQpOwogICAgICAgICAgICAgOjpLaWxsVGltZXIocnVuTG9vcC0+bV9ydW5Mb29w
TWVzc2FnZVdpbmRvdywgSUQpOwotICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgbV9uZXh0RmlyZURhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIG1faW50ZXJ2YWw7CiAg
ICAgfQogCiAgICAgdGltZXItPmZpcmVkKCk7CkBAIC0xNjAsNiArMTYxLDggQEAgdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVh
dCkKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzTG9jayk7
CiAgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKICAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLnNldChtX0lELCB0aGlzKTsKKyAgICBtX2ludGVydmFsID0gU2Vjb25kcyhuZXh0RmlyZUlu
dGVydmFsKTsKKyAgICBtX25leHRGaXJlRGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpICsgbV9p
bnRlcnZhbDsKICAgICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRv
dywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOwogfQogCkBAIC0xNzQsMTAgKzE3
NywyNCBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCiAgICAgOjpLaWxsVGltZXIo
bV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKIH0KIAorYm9vbCBSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKK30K
KwogYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKIHsKICAgICBMb2Nr
SG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzTG9jayk7Ci0gICAgcmV0dXJu
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7CisgICAgcmV0dXJuIGlz
QWN0aXZlKGxvY2tlcik7CiB9CiAKK1NlY29uZHMgUnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRz
VW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1f
YWN0aXZlVGltZXJzTG9jayk7CisgICAgaWYgKGlzQWN0aXZlKGxvY2tlcikpCisgICAgICAgIHJl
dHVybiBzdGQ6Om1heDxTZWNvbmRzPihtX25leHRGaXJlRGF0ZSAtIE1vbm90b25pY1RpbWU6Om5v
dygpLCAwX3MpOworICAgIHJldHVybiAwX3M7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306800</attachid>
            <date>2017-04-11 04:26:59 -0700</date>
            <delta_ts>2017-04-11 04:29:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411202658.patch</filename>
            <type>text/plain</type>
            <size>27785</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li5hNDRiMGJkYzZlYjIxNGQy
NmExNmQxNWQ2Y2E0YzlkZjNiZDEzZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0OCBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6bmV4dEZpcmVUaW1lKToK
KyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZSk6CisgICAgICAg
ICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3JrKToK
KyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKToKKyAgICAgICAgKiBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAgICAqIGhlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuY3BwOgorICAgICAgICAoSlNDOjpTdG9wSWZOZWNlc3NhcnlUaW1lcjo6c2NoZWR1bGVT
b29uKToKKyAgICAgICAgKiBydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3ApOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BU
aW1lcjo6c2NoZWR1bGVUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpjYW5j
ZWxUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxs
YmFjayk6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcik6Cisg
ICAgICAgICogcnVudGltZS9KU1J1bkxvb3BUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJv
bWlzZURlZmVycmVkVGltZXIuY3BwOgorICAgICAgICAoSlNDOjpQcm9taXNlRGVmZXJyZWRUaW1l
cjo6c2NoZWR1bGVXb3JrU29vbik6CisKKzIwMTctMDQtMTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gRW5hYmxlIEpTUnVuTG9vcFRpbWVy
IGZvciBKU0NPbmx5IGFuZCBXaW5kb3dzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA2NTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjYTgwNDJkNWNjMjA0YWU3NTJmYjFjOTkw
NWEyZDgzYTNjOGUzZjkxLi5lNjUxMGJjMDAyNDA2NWMyM2M0YWFlMmQxODQ1NDhlOTUwZDAxOGE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFtKU0NdW0dUS10gVXNlIFJ1bkxvb3A6OlRpbWVy
IGluIEdUSyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgc2Vjb25kc1VudGlsRmlyZSBtZXRob2QuIEFuZCBhZGQgc2V0TmFtZSBhbmQgc2V0
UHJpb3JpdHkKKyAgICAgICAgZm9yIEdUSyBSdW5Mb29wOjpUaW1lci4KKworICAgICAgICAqIHd0
Zi9SdW5Mb29wLmg6CisgICAgICAgICogd3RmL2NmL1J1bkxvb3BDRi5jcHA6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6CisgICAgICAgICogd3Rm
L2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1l
ckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BHTGli
LmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzZXROYW1lKToKKyAgICAg
ICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAg
KiB3dGYvd2luL1J1bkxvb3BXaW4uY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6CisKKzIwMTctMDQt
MTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pT
Q10gRW5hYmxlIEpTUnVuTG9vcFRpbWVyIGZvciBKU0NPbmx5IGFuZCBXaW5kb3dzCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2NTUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNw
cAppbmRleCAwN2U2YzdhM2YwODU3NmUxNDM3ZjI4MWU1Mzc1ZWMzNjBjM2NkOGU3Li5iNmJkZTNk
ZDE3Zjg1ZDQwYzI5N2NkMzZkNDc3MTA3ZWYwZmQ1YWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcApAQCAtMzEsOCAr
MzEsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCi0K
IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OkVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVh
cCkKICAgICA6IEdDQWN0aXZpdHlDYWxsYmFjayhoZWFwKQogewpAQCAtNDMsOSArNDEsOSBAQCB2
b2lkIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvQ29sbGVjdGlvbigpCiAgICAgbV92bS0+aGVh
cC5jb2xsZWN0QXN5bmMoQ29sbGVjdGlvblNjb3BlOjpFZGVuKTsKIH0KIAotZG91YmxlIEVkZW5H
Q0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCitTZWNvbmRzIEVkZW5HQ0FjdGl2aXR5
Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCiB7Ci0gICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEVk
ZW5HQ0xlbmd0aCgpLnNlY29uZHMoKTsKKyAgICByZXR1cm4gbV92bS0+aGVhcC5sYXN0RWRlbkdD
TGVuZ3RoKCk7CiB9CiAKIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUo
KQpAQCAtNjksMzIgKzY3LDQgQEAgZG91YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmdjVGlt
ZVNsaWNlKHNpemVfdCBieXRlcykKICAgICByZXR1cm4gc3RkOjptaW4oKHN0YXRpY19jYXN0PGRv
dWJsZT4oYnl0ZXMpIC8gTUIpICogT3B0aW9uczo6cGVyY2VudENQVVBlck1CRm9yRWRlblRpbWVy
KCksIE9wdGlvbnM6OmNvbGxlY3Rpb25UaW1lck1heFBlcmNlbnRDUFUoKSk7CiB9CiAKLSNlbHNl
Ci0KLUVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OkVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCog
aGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxsYmFjayhoZWFwLT52bSgpKQotewotfQotCi12b2lk
IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvQ29sbGVjdGlvbigpCi17Ci19Ci0KLWRvdWJsZSBF
ZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQotewotICAgIHJldHVybiAwOwot
fQotCi1kb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKLXsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotZG91YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmdjVGltZVNsaWNl
KHNpemVfdCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8vIFVTRShDRikgfHwgVVNF
KEdMSUIpCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGNjNGU5M2ZjYjlmMzAzOWNh
NjM1MDI1ODZiYWQ4NzlmOGFiNTg5MzQuLjg3NDgyYmRmYjMwMTg2YzAxNmIxYTZhODRjYmFlZDk5
MjcwOWZjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0Fj
dGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZB
VEUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjayA6IHB1YmxpYyBHQ0FjdGl2aXR5Q2FsbGJhY2sgewog
ICAgIHZvaWQgZG9Db2xsZWN0aW9uKCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICBkb3Vi
bGUgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7CisgICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoKSBv
dmVycmlkZTsKICAgICBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVycmlkZTsK
ICAgICBkb3VibGUgZGVhdGhSYXRlKCkgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAppbmRleCBlNTdk
ZDNhMWM3OTcxMGYxMjU4NmE5MDM4NzE3YWRkNGRiNjYxMzlkLi5hNzFjNzY2MjQwZDBmNDViNGIx
M2FhYTZiN2M2NTMwNmI0ZDQzNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcApAQCAtMzAsOCArMzAsNiBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCi0KICNpZiAhUExBVEZP
Uk0oSU9TKQogY29uc3QgZG91YmxlIHBhZ2luZ1RpbWVPdXQgPSAwLjE7IC8vIFRpbWUgaW4gc2Vj
b25kcyB0byBhbGxvdyBvcHBvcnR1bmlzdGljIHRpbWVyIHRvIGl0ZXJhdGUgb3ZlciBhbGwgYmxv
Y2tzIHRvIHNlZSBpZiB0aGUgSGVhcCBpcyBwYWdlZCBvdXQuCiAjZW5kaWYKQEAgLTU4LDkgKzU2
LDkgQEAgdm9pZCBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIGhl
YXAuY29sbGVjdEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RnVsbCk7CiB9CiAKLWRvdWJsZSBGdWxs
R0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBGdWxsR0NBY3Rpdml0
eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RG
dWxsR0NMZW5ndGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEZ1bGxH
Q0xlbmd0aCgpOwogfQogCiBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRl
KCkKQEAgLTg0LDMyICs4Miw0IEBAIGRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1Rp
bWVTbGljZShzaXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNfY2FzdDxk
b3VibGU+KGJ5dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckZ1bGxUaW1l
cigpLCBPcHRpb25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQogCi0jZWxz
ZQotCi1GdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpGdWxsR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAq
IGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKLXsKLX0KLQotdm9pZCBGdWxs
R0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1kb3VibGUgRnVsbEdD
QWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQot
ZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17Ci0gICAgcmV0dXJu
IDA7Ci19Ci0KLWRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShzaXpl
X3QpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0YpIHx8IFVTRShHTElC
KQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCA1MTA2ZWU3OTg3ODk0Yjk5OTI5OTBh
YmExMGY2OGEzOTAwOWVmZWU2Li40M2Q1M2I4YTFlMzE4MTYwYjUxZmNmZWI0NmZlZWJmYTY3OWUy
ZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0
eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZp
dHlDYWxsYmFjay5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEZ1
bGxHQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKICAgICB2
b2lkIHNldERpZFN5bmNHQ1JlY2VudGx5KCkgeyBtX2RpZFN5bmNHQ1JlY2VudGx5ID0gdHJ1ZTsg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgZG91YmxlIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOworICAg
IFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGdjVGltZVNsaWNl
KHNpemVfdCBieXRlcykgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2Fs
bGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNr
LmNwcAppbmRleCAzODBkOTFjN2MwNmUwYzZjYjExYTljN2YwY2FkNTkwZjBiNDQ1Yjk5Li5kMTVl
YTE4ZjI3MDcwMzY2NmIwZTYwYmQxMTA2ZTk0NmQ5ZjY5MWJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTQyLDIyICs0Miwx
MiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogYm9vbCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNfc2hvdWxk
Q3JlYXRlR0NUaW1lciA9IHRydWU7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiBjb25z
dCBkb3VibGUgdGltZXJTbG9wID0gMi4wOyAvLyBGdWRnZSBmYWN0b3IgdG8gYXZvaWQgcGVyZm9y
bWFuY2UgY29zdCBvZiByZXNldHRpbmcgdGltZXIuCiAKLSNpZiBVU0UoQ0YpCiBHQ0FjdGl2aXR5
Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQogICAgIDogR0NBY3Rpdml0
eUNhbGxiYWNrKGhlYXAtPnZtKCkpCiB7CiB9Ci0jZWxpZiBVU0UoR0xJQikKLUdDQWN0aXZpdHlD
YWxsYmFjazo6R0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5
Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3Rp
bWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVS
X1NFQyk7Ci19Ci0jZW5kaWYKIAogdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB7
CkBAIC02Nyw3ICs1Nyw3IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dvcmsoKQogICAg
IAogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIobV92bSk7CiAgICAgaWYgKGhlYXAtPmlzRGVmZXJy
ZWQoKSkgewotICAgICAgICBzY2hlZHVsZVRpbWVyKDApOworICAgICAgICBzY2hlZHVsZVRpbWVy
KDBfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc1LDQyICs2NSw0MyBAQCB2b2lk
IEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkKIH0KIAogI2lmIFVTRShDRikKLXZvaWQgR0NB
Y3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBuZXdEZWxheSkKK3ZvaWQgR0NB
Y3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgbmV3RGVsYXkpCiB7CiAgICAg
aWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4gbV9kZWxheSkKICAgICAgICAgcmV0dXJuOwotICAg
IGRvdWJsZSBkZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsKKyAgICBTZWNvbmRzIGRlbHRhID0g
bV9kZWxheSAtIG5ld0RlbGF5OwogICAgIG1fZGVsYXkgPSBuZXdEZWxheTsKLSAgICBtX25leHRG
aXJlVGltZSA9IFdURjo6Y3VycmVudFRpbWUoKSArIG5ld0RlbGF5OwotICAgIENGUnVuTG9vcFRp
bWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZp
cmVEYXRlKG1fdGltZXIuZ2V0KCkpIC0gZGVsdGEpOworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4
dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1f
dGltZXIuZ2V0KCkpIC0gZGVsdGEuc2Vjb25kcygpKTsKIH0KIAogdm9pZCBHQ0FjdGl2aXR5Q2Fs
bGJhY2s6OmNhbmNlbFRpbWVyKCkKIHsKICAgICBtX2RlbGF5ID0gc19kZWNhZGU7Ci0gICAgbV9u
ZXh0RmlyZVRpbWUgPSAwOwotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGlt
ZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUpOworICAgIENG
UnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1l
R2V0Q3VycmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpKTsKIH0KLSNlbGlmIFVTRShHTElCKQot
dm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIoZG91YmxlIG5ld0RlbGF5KQor
I2Vsc2UKK3ZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgbmV3
RGVsYXkpCiB7Ci0gICAgQVNTRVJUKG5ld0RlbGF5ID49IDApOwogICAgIGlmIChuZXdEZWxheSAq
IHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVybjsKLQotICAgIGRvdWJsZSBkZWx0
YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsKKyAgICBTZWNvbmRzIGRlbHRhID0gbV9kZWxheSAtIG5l
d0RlbGF5OwogICAgIG1fZGVsYXkgPSBuZXdEZWxheTsKLSAgICBtX25leHRGaXJlVGltZSA9IFdU
Rjo6Y3VycmVudFRpbWUoKSArIG5ld0RlbGF5OwogCi0gICAgZ2ludDY0IHJlYWR5VGltZSA9IGdf
c291cmNlX2dldF9yZWFkeV90aW1lKG1fdGltZXIuZ2V0KCkpOwotICAgIGdfc291cmNlX3NldF9y
ZWFkeV90aW1lKG1fdGltZXIuZ2V0KCksIHJlYWR5VGltZSAtIGRlbHRhICogR19VU0VDX1BFUl9T
RUMpOworICAgIFNlY29uZHMgc2Vjb25kc1VudGlsRmlyZSA9IG1fdGltZXIuc2Vjb25kc1VudGls
RmlyZSgpOworICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KHNlY29uZHNVbnRpbEZpcmUgLSBkZWx0
YSk7CiB9CiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxUaW1lcigpCiB7CiAgICAg
bV9kZWxheSA9IHNfZGVjYWRlOwotICAgIG1fbmV4dEZpcmVUaW1lID0gMDsKLSAgICBnX3NvdXJj
ZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsg
c19kZWNhZGUgKiBHX1VTRUNfUEVSX1NFQyk7CisgICAgbV90aW1lci5zdGFydE9uZVNob3Qoc19k
ZWNhZGUpOworfQorCitkb3VibGUgR0NBY3Rpdml0eUNhbGxiYWNrOjpuZXh0RmlyZVRpbWUoKQor
eworICAgIC8vIEZJWE1FOiBTaG91bGQgcmV0dXJuIE1vbm90b25pY1RpbWUuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDcyNQorICAgIHJldHVybiAo
TW9ub3RvbmljOjpub3coKSArIG1fdGltZXIuc2Vjb25kc1VudGlsRmlyZSgpKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCk7CiB9CiAjZW5kaWYKIApAQCAtMTIxLDcgKzExMiw3IEBAIHZvaWQg
R0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXplX3QgYnl0ZXMpCiAgICAgaWYgKCFi
eXRlcykKICAgICAgICAgYnl0ZXMgPSAxOwogICAgIGRvdWJsZSBieXRlc0V4cGVjdGVkVG9SZWNs
YWltID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihieXRlcykgKiBkZWF0aFJhdGUoKTsKLSAgICBkb3Vi
bGUgbmV3RGVsYXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNlKGJ5dGVzRXhwZWN0ZWRU
b1JlY2xhaW0pOworICAgIFNlY29uZHMgbmV3RGVsYXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGlt
ZVNsaWNlKGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0pOwogICAgIHNjaGVkdWxlVGltZXIobmV3RGVs
YXkpOwogfQogCkBAIC0xMzUsMzAgKzEyNiw1IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpj
YW5jZWwoKQogICAgIGNhbmNlbFRpbWVyKCk7CiB9CiAKLSNlbHNlCi0KLUdDQWN0aXZpdHlDYWxs
YmFjazo6R0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2Fs
bGJhY2soaGVhcC0+dm0oKSkKLXsKLX0KLQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29y
aygpCi17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXplX3Qp
Ci17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjp3aWxsQ29sbGVjdCgpCi17Ci19Ci0K
LXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQotewotfQotCi0jZW5kaWYKLQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJh
Y2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCmlu
ZGV4IGFmNDc1ODhkNjAxMTlhZDhkZDUxNWQ4ZjRhNTBjZmM3Mjk1ODEzMTQuLjc5NTliODQ1ODJj
MjJkNDYyMDdkMjAyNDU5Nzk3OTRhNGQzMGNlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC02MCw0OCArNjAsMjggQEAgY2xhc3Mg
SlNfRVhQT1JUX1BSSVZBVEUgR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEpTUnVuTG9vcFRp
bWVyIHsKIAogICAgIHN0YXRpYyBib29sIHNfc2hvdWxkQ3JlYXRlR0NUaW1lcjsKIAotI2lmIFVT
RShDRikgfHwgVVNFKEdMSUIpCi0gICAgZG91YmxlIG5leHRGaXJlVGltZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbmV4dEZpcmVUaW1lOyB9Ci0jZW5kaWYKKyAgICBKU19FWFBPUlRfUFJJVkFURSBkb3Vi
bGUgbmV4dEZpcmVUaW1lKCk7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIGRvdWJsZSBsYXN0
R0NMZW5ndGgoKSA9IDA7CisgICAgdmlydHVhbCBTZWNvbmRzIGxhc3RHQ0xlbmd0aCgpID0gMDsK
ICAgICB2aXJ0dWFsIGRvdWJsZSBnY1RpbWVTbGljZShzaXplX3QgYnl0ZXMpID0gMDsKICAgICB2
aXJ0dWFsIGRvdWJsZSBkZWF0aFJhdGUoKSA9IDA7CiAKLSNpZiBVU0UoQ0YpCi0gICAgR0NBY3Rp
dml0eUNhbGxiYWNrKFZNKiB2bSkKLSAgICAgICAgOiBCYXNlKHZtKQotICAgICAgICAsIG1fZW5h
YmxlZCh0cnVlKQotICAgICAgICAsIG1fZGVsYXkoc19kZWNhZGUpCi0gICAgewotICAgIH0KLSNl
bGlmIFVTRShHTElCKQogICAgIEdDQWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCiAgICAgICAgIDog
QmFzZSh2bSkKICAgICAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKICAgICAgICAgLCBtX2RlbGF5KHNf
ZGVjYWRlKQogICAgIHsKICAgICB9Ci0jZWxzZQotICAgIEdDQWN0aXZpdHlDYWxsYmFjayhWTSog
dm0pCi0gICAgICAgIDogQmFzZSh2bSkKLSAgICAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKLSAgICB7
Ci0gICAgfQotI2VuZGlmCiAKICAgICBib29sIG1fZW5hYmxlZDsKIAotI2lmIFVTRShDRikgfHwg
VVNFKEdMSUIpCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjYW5jZWxUaW1lcigpOwotICAgIHZvaWQg
c2NoZWR1bGVUaW1lcihkb3VibGUpOworICAgIHZvaWQgc2NoZWR1bGVUaW1lcihTZWNvbmRzKTsK
IAogcHJpdmF0ZToKLSAgICBkb3VibGUgbV9kZWxheTsKLSAgICBkb3VibGUgbV9uZXh0RmlyZVRp
bWUgeyAwIH07Ci0jZW5kaWYKKyAgICBTZWNvbmRzIG1fZGVsYXk7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVu
dGFsU3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3
ZWVwZXIuY3BwCmluZGV4IDhjYmZhOWU4MDQwZGM2MWVmYjAxOWIyMTQ1NTQ0NTVlMmZhODMxYjYu
LjI5YmQ0YjJhNWFkNjI0ZjkzNmY1ZDcwNjg5NThlYzg2OTg5MTAxYmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcApAQCAtMzUsNyAr
MzUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRp
bWVTbGljZSA9IC4wMTsgLy8gc2Vjb25kcworc3RhdGljIGNvbnN0IFNlY29uZHMgc3dlZXBUaW1l
U2xpY2UgPSAxMF9tczsgLy8gc2Vjb25kcwogc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVU
b3RhbCA9IC4xMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lTXVsdGlwbGllciA9IDEu
MCAvIHN3ZWVwVGltZVRvdGFsOwogCkBAIC01MiwxMyArNTIsMTMgQEAgSW5jcmVtZW50YWxTd2Vl
cGVyOjpJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVhcCkKIAogdm9pZCBJbmNyZW1lbnRhbFN3
ZWVwZXI6OmRvV29yaygpCiB7Ci0gICAgZG9Td2VlcChXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpKTsKKyAgICBkb1N3ZWVwKE1vbm90b25pY1RpbWU6Om5vdygpKTsKIH0KIAotdm9p
ZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoZG91YmxlIHN3ZWVwQmVnaW5UaW1lKQordm9p
ZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoTW9ub3RvbmljVGltZSBzd2VlcEJlZ2luVGlt
ZSkKIHsKICAgICB3aGlsZSAoc3dlZXBOZXh0QmxvY2soKSkgewotICAgICAgICBkb3VibGUgZWxh
cHNlZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3dlZXBCZWdp
blRpbWU7CisgICAgICAgIFNlY29uZHMgZWxhcHNlZFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3co
KSAtIHN3ZWVwQmVnaW5UaW1lOwogICAgICAgICBpZiAoZWxhcHNlZFRpbWUgPCBzd2VlcFRpbWVT
bGljZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCmluZGV4IDc2ZDQ1NGYzYzA0YjMxYmQxMTRiODA3
MTQzZTRkMWUxNWE0ZTViYzUuLjQ4ODM0YjEzYmM1YzYzYTlhOGFmODJlYjczNGMxZTFiMWE2MzQ1
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dl
ZXBlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBl
ci5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEluY3JlbWVudGFsU3dlZXBlciA6IHB1YmxpYyBK
U1J1bkxvb3BUaW1lciB7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdG9wU3dlZXBpbmco
KTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGRvU3dlZXAoZG91YmxlIHN0YXJ0VGltZSk7CisgICAg
dm9pZCBkb1N3ZWVwKE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIHNjaGVkdWxl
VGltZXIoKTsKICAgICAKICAgICBNYXJrZWRBbGxvY2F0b3IqIG1fY3VycmVudEFsbG9jYXRvcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRp
bWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVy
LmNwcAppbmRleCA5NDBkMzlkZTI0YWNmZDMyZDk2YTRhYzIxZWQyYzJhNTMxN2MyMWNkLi42MjM5
NjEwOTQ0N2Y2NGNkNmVkZmNmMmE4ZjlkOWE2MzVjZGIxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCkBAIC00OCw3ICs0
OCw3IEBAIHZvaWQgU3RvcElmTmVjZXNzYXJ5VGltZXI6OnNjaGVkdWxlU29vbigpCiAgICAgICAg
IFdURjo6bG9hZExvYWRGZW5jZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNjaGVk
dWxlVGltZXIoMCk7CisgICAgc2NoZWR1bGVUaW1lcigwX3MpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9v
cFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVy
LmNwcAppbmRleCBmZDc5ZDU5ODA0YTdmNDgyZWRmOTQ3ODdlZWRkYTc0OGJkZmQyZjkzLi42OGZj
ZTRkY2NjMGJlNWUwMGI4NWYzZDNlODY2YTU2YzM3M2M4MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCkBAIC00Miw2ICs0Miw4IEBA
CiAKIG5hbWVzcGFjZSBKU0MgewogCitjb25zdCBTZWNvbmRzIEpTUnVuTG9vcFRpbWVyOjpzX2Rl
Y2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwIH07CisKIHZvaWQgSlNSdW5Mb29wVGltZXI6
OnRpbWVyRGlkRmlyZSgpCiB7CiAgICAgbV9hcGlMb2NrLT5sb2NrKCk7CkBAIC02Myw4ICs2NSw2
IEBAIHZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZSgpCiAKICNpZiBVU0UoQ0YpCiAK
LWNvbnN0IENGVGltZUludGVydmFsIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSA9IDYwICogNjAg
KiAyNCAqIDM2NSAqIDEwOwotCiBKU1J1bkxvb3BUaW1lcjo6SlNSdW5Mb29wVGltZXIoVk0qIHZt
KQogICAgIDogbV92bSh2bSkKICAgICAsIG1fYXBpTG9jaygmdm0tPmFwaUxvY2soKSkKQEAgLTg1
LDcgKzg1LDcgQEAgdm9pZCBKU1J1bkxvb3BUaW1lcjo6c2V0UnVuTG9vcChDRlJ1bkxvb3BSZWYg
cnVuTG9vcCkKICAgICAgICAgbV9ydW5Mb29wID0gcnVuTG9vcDsKICAgICAgICAgbWVtc2V0KCZt
X2NvbnRleHQsIDAsIHNpemVvZihDRlJ1bkxvb3BUaW1lckNvbnRleHQpKTsKICAgICAgICAgbV9j
b250ZXh0LmluZm8gPSB0aGlzOwotICAgICAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BU
aW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQo
KSArIHNfZGVjYWRlLCBzX2RlY2FkZSwgMCwgMCwgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmly
ZUNhbGxiYWNrLCAmbV9jb250ZXh0KSk7CisgICAgICAgIG1fdGltZXIgPSBhZG9wdENGKENGUnVu
TG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3Vy
cmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpLCBzX2RlY2FkZS5zZWNvbmRzKCksIDAsIDAsIEpT
UnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaywgJm1fY29udGV4dCkpOwogICAgICAg
ICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1
bkxvb3BDb21tb25Nb2Rlcyk7CiAgICAgfQogfQpAQCAtOTUsODIgKzk1LDM1IEBAIEpTUnVuTG9v
cFRpbWVyOjp+SlNSdW5Mb29wVGltZXIoKQogICAgIHNldFJ1bkxvb3AoMCk7CiB9CiAKLXZvaWQg
SlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNrKENGUnVuTG9vcFRpbWVyUmVmLCB2
b2lkKiBjb250ZXh0UHRyKQotewotICAgIHN0YXRpY19jYXN0PEpTUnVuTG9vcFRpbWVyKj4oY29u
dGV4dFB0ciktPnRpbWVyRGlkRmlyZSgpOwotfQotCi12b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hl
ZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcykKK3ZvaWQgSlNSdW5Mb29wVGltZXI6
OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbEluU2Vjb25kcykKIHsKLSAgICBDRlJ1bkxv
b3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1
cnJlbnQoKSArIGludGVydmFsSW5TZWNvbmRzKTsKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRG
aXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIGludGVy
dmFsSW5TZWNvbmRzLnNlY29uZHMoKSk7CiAgICAgbV9pc1NjaGVkdWxlZCA9IHRydWU7CiB9CiAK
IHZvaWQgSlNSdW5Mb29wVGltZXI6OmNhbmNlbFRpbWVyKCkKIHsKLSAgICBDRlJ1bkxvb3BUaW1l
clNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQo
KSArIHNfZGVjYWRlKTsKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVy
LmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSk7
CiAgICAgbV9pc1NjaGVkdWxlZCA9IGZhbHNlOwogfQogCi0jZWxpZiBVU0UoR0xJQikKLQotY29u
c3QgbG9uZyBKU1J1bkxvb3BUaW1lcjo6c19kZWNhZGUgPSA2MCAqIDYwICogMjQgKiAzNjUgKiAx
MDsKLQotc3RhdGljIEdTb3VyY2VGdW5jcyBKU1J1bkxvb3BUaW1lclNvdXJjZUZ1bmN0aW9ucyA9
IHsKLSAgICBudWxscHRyLCAvLyBwcmVwYXJlCi0gICAgbnVsbHB0ciwgLy8gY2hlY2sKLSAgICAv
LyBkaXNwYXRjaAotICAgIFtdKEdTb3VyY2UqLCBHU291cmNlRnVuYyBjYWxsYmFjaywgZ3BvaW50
ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuCi0gICAgewotICAgICAgICByZXR1cm4gY2FsbGJhY2so
dXNlckRhdGEpOwotICAgIH0sCi0gICAgbnVsbHB0ciwgLy8gZmluYWxpemUKLSAgICBudWxscHRy
LCAvLyBjbG9zdXJlX2NhbGxiYWNrCi0gICAgbnVsbHB0ciwgLy8gY2xvc3VyZV9tYXJzaGFsbAot
fTsKLQotSlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVyKFZNKiB2bSkKLSAgICA6IG1fdm0o
dm0pCi0gICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkpCi0gICAgLCBtX3RpbWVyKGFkb3B0
R1JlZihnX3NvdXJjZV9uZXcoJkpTUnVuTG9vcFRpbWVyU291cmNlRnVuY3Rpb25zLCBzaXplb2Yo
R1NvdXJjZSkpKSkKLXsKLSAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkobV90aW1lci5nZXQoKSwg
UnVuTG9vcFNvdXJjZVByaW9yaXR5OjpKYXZhc2NyaXB0VGltZXIpOwotICAgIGdfc291cmNlX3Nl
dF9uYW1lKG1fdGltZXIuZ2V0KCksICJbSmF2YVNjcmlwdENvcmVdIEpTUnVuTG9vcFRpbWVyIik7
Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXIuZ2V0KCksIFtdKGdwb2ludGVyIHVz
ZXJEYXRhKSAtPiBnYm9vbGVhbiB7Ci0gICAgICAgIGF1dG8mIHJ1bkxvb3BUaW1lciA9ICpzdGF0
aWNfY2FzdDxKU1J1bkxvb3BUaW1lcio+KHVzZXJEYXRhKTsKLSAgICAgICAgZ19zb3VyY2Vfc2V0
X3JlYWR5X3RpbWUocnVuTG9vcFRpbWVyLm1fdGltZXIuZ2V0KCksIGdfZ2V0X21vbm90b25pY190
aW1lKCkgKyBKU1J1bkxvb3BUaW1lcjo6c19kZWNhZGUgKiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAg
ICAgIHJ1bkxvb3BUaW1lci50aW1lckRpZEZpcmUoKTsKLSAgICAgICAgcmV0dXJuIEdfU09VUkNF
X0NPTlRJTlVFOwotICAgIH0sIHRoaXMsIG51bGxwdHIpOwotICAgIGdfc291cmNlX2F0dGFjaCht
X3RpbWVyLmdldCgpLCBnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSk7Ci19Ci0K
LUpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIoKQotewotICAgIGdfc291cmNlX2Rlc3Ry
b3kobV90aW1lci5nZXQoKSk7Ci19CisjZWxzZQogCi12b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hl
ZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcykKK3ZvaWQgSlNSdW5Mb29wVGltZXI6
OnRpbWVyRGlkRmlyZUNhbGxiYWNrKCkKIHsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZSht
X3RpbWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgaW50ZXJ2YWxJblNlY29uZHMg
KiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxlZCA9IHRydWU7CisgICAgY2FuY2Vs
VGltZXIoKTsKKyAgICB0aW1lckRpZEZpcmUoKTsKIH0KIAotdm9pZCBKU1J1bkxvb3BUaW1lcjo6
Y2FuY2VsVGltZXIoKQotewotICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fdGltZXIuZ2V0
KCksIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBzX2RlY2FkZSAqIEdfVVNFQ19QRVJfU0VDKTsK
LSAgICBtX2lzU2NoZWR1bGVkID0gZmFsc2U7Ci19Ci0KLSNlbHNlCi0KLWNvbnN0IFNlY29uZHMg
SlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlIHsgNjAgKiA2MCAqIDI0ICogMzY1ICogMTAgfTsKLQog
SlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVyKFZNKiB2bSkKICAgICA6IG1fdm0odm0pCiAg
ICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkpCi0gICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1
cnJlbnQoKSwgdGhpcywgJkpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmUpCisgICAgLCBtX3Rp
bWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJkpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZp
cmVDYWxsYmFjaykKIHsKKyNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKQorICAgIG1fdGltZXIuc2V0
UHJpb3JpdHkoUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpKYXZhc2NyaXB0VGltZXIpOworICAgIG1f
dGltZXIuc2V0TmFtZSgiW0phdmFTY3JpcHRDb3JlXSBKU1J1bkxvb3BUaW1lciIpOworI2VuZGlm
CiAgICAgbV90aW1lci5zdGFydE9uZVNob3Qoc19kZWNhZGUpOwogfQogCkBAIC0xNzgsNyArMTMx
LDcgQEAgSlNSdW5Mb29wVGltZXI6On5KU1J1bkxvb3BUaW1lcigpCiB7CiB9CiAKLXZvaWQgSlNS
dW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoZG91YmxlIGludGVydmFsSW5TZWNvbmRzKQordm9p
ZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIGludGVydmFsSW5TZWNvbmRz
KQogewogICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KGludGVydmFsSW5TZWNvbmRzKTsKICAgICBt
X2lzU2NoZWR1bGVkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUnVuTG9vcFRpbWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1J1bkxvb3BUaW1lci5oCmluZGV4IDAwZjNlNmJiY2NlYzU4N2ZkOTllOThlZDE2MDUzZmQ2NTc3
NTk4MDYuLjdlMDM4ZmVlZTU1NjY1ZDlhMWIyZDI2ZWMzMDVkMDdiYTAyMzYyZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaApAQCAtMzYsMTAg
KzM2LDYgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgogI2Vu
ZGlmCiAKLSNpZiBVU0UoR0xJQikKLSNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+Ci0jZW5k
aWYKLQogbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEpTTG9jazsKQEAgLTQ5LDEzICs0NSwxNSBA
QCBjbGFzcyBKU1J1bkxvb3BUaW1lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxKU1J1
bkxvb3BUaW1lcj4gewogcHVibGljOgogICAgIEpTUnVuTG9vcFRpbWVyKFZNKik7CiAjaWYgVVNF
KENGKQotICAgIHN0YXRpYyB2b2lkIHRpbWVyRGlkRmlyZUNhbGxiYWNrKENGUnVuTG9vcFRpbWVy
UmVmLCB2b2lkKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgdGltZXJEaWRG
aXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKKyNlbHNlCisgICAgdm9pZCB0
aW1lckRpZEZpcmVDYWxsYmFjaygpOwogI2VuZGlmCiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2
aXJ0dWFsIH5KU1J1bkxvb3BUaW1lcigpOwogICAgIHZpcnR1YWwgdm9pZCBkb1dvcmsoKSA9IDA7
CiAKLSAgICB2b2lkIHNjaGVkdWxlVGltZXIoZG91YmxlIGludGVydmFsSW5TZWNvbmRzKTsKKyAg
ICB2b2lkIHNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAgdm9p
ZCBjYW5jZWxUaW1lcigpOwogICAgIGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdCB7IHJldHVybiBt
X2lzU2NoZWR1bGVkOyB9CiAKQEAgLTY2LDIyICs2NCwxOCBAQCBjbGFzcyBKU1J1bkxvb3BUaW1l
ciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxKU1J1bkxvb3BUaW1lcj4gewogcHJvdGVj
dGVkOgogICAgIFZNKiBtX3ZtOwogCisgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgc19kZWNhZGU7
CisKICAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxvY2s7CiAgICAgYm9vbCBtX2lzU2NoZWR1bGVk
IHsgZmFsc2UgfTsKICNpZiBVU0UoQ0YpCi0gICAgc3RhdGljIGNvbnN0IENGVGltZUludGVydmFs
IHNfZGVjYWRlOwotCiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVyOwog
ICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVuTG9vcDsKIAogICAgIENGUnVuTG9vcFRp
bWVyQ29udGV4dCBtX2NvbnRleHQ7CiAKICAgICBMb2NrIG1fc2h1dGRvd25NdXRleDsKLSNlbGlm
IFVTRShHTElCKQotICAgIHN0YXRpYyBjb25zdCBsb25nIHNfZGVjYWRlOwotICAgIEdSZWZQdHI8
R1NvdXJjZT4gbV90aW1lcjsKICNlbHNlCi0gICAgc3RhdGljIGNvbnN0IFNlY29uZHMgc19kZWNh
ZGU7CiAgICAgUnVuTG9vcDo6VGltZXI8SlNSdW5Mb29wVGltZXI+IG1fdGltZXI7CiAjZW5kaWYK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VE
ZWZlcnJlZFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VE
ZWZlcnJlZFRpbWVyLmNwcAppbmRleCAxMDQ1ZTQ2NmFhMzYxYTRhNjRhMjljZjBlOTQzNmUzNDU0
Y2M5MmUxLi4zZGNhZWFhZmU1YjM4ZmJhNWJhOGFmOTc2NjBmNTFiYzY1OWZkMjQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGlt
ZXIuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBQcm9taXNlRGVmZXJyZWRUaW1lcjo6c2No
ZWR1bGVXb3JrU29vbihKU1Byb21pc2VEZWZlcnJlZCogdGlja2V0LCBUYXNrJiYgdGEKICAgICBM
b2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2NrKTsKICAgICBtX3Rhc2tzLmFwcGVuZChzdGQ6Om1h
a2VfdHVwbGUodGlja2V0LCBXVEZNb3ZlKHRhc2spKSk7CiAgICAgaWYgKCFpc1NjaGVkdWxlZCgp
ICYmICFtX2N1cnJlbnRseVJ1bm5pbmdUYXNrKQotICAgICAgICBzY2hlZHVsZVRpbWVyKDApOwor
ICAgICAgICBzY2hlZHVsZVRpbWVyKDBfcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9v
cC5oCmluZGV4IDkyY2MxNTBmZGQyOTk1MDQ5NTIyMjJkMDgyNjgzN2Y0YmJkYjIwMzYuLjNkMDZj
M2ViODkzMDBkNjBmYTA4MzY0YmRlZWNkNmYwOWU4YmE4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTkzLDEw
ICs5MywxMiBAQCBjbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAK
ICAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RvcCgpOwogICAgICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OworICAgICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgU2Vjb25kcyBzZWNvbmRzVW50aWxGaXJlKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVh
bCB2b2lkIGZpcmVkKCkgPSAwOwogCiAjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkKKyAgICAgICAg
dm9pZCBzZXROYW1lKGNvbnN0IGNoYXIqKTsKICAgICAgICAgdm9pZCBzZXRQcmlvcml0eShpbnQp
OwogI2VuZGlmCiAKQEAgLTEwNiw4ICsxMDgsMTEgQEAgY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBG
dW5jdGlvbkRpc3BhdGNoZXIgewogICAgICAgICBSZWY8UnVuTG9vcD4gbV9ydW5Mb29wOwogCiAj
aWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkKKyAgICAgICAgYm9vbCBpc0FjdGl2ZShjb25zdCBB
YnN0cmFjdExvY2tlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1
bkxvb3AqLCB1aW50NjRfdCBJRCk7CiAgICAgICAgIHVpbnQ2NF90IG1fSUQ7CisgICAgICAgIE1v
bm90b25pY1RpbWUgbV9uZXh0RmlyZURhdGU7CisgICAgICAgIFNlY29uZHMgbV9pbnRlcnZhbDsK
ICAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwogI2VsaWYgVVNFKENPQ09BX0VWRU5UX0xPT1Ap
CiAgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCmluZGV4IDQxZjhmOTU3NWM2ODMwMmYzODYyZGMyMjNm
ZTU0MjdhOGFlMjQ0MTYuLjVlNGM4MDU3ZTkxMzU0NzU4OTJkMDRlMTY2NTU0MWJiOTI0NTI4NTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvY2YvUnVuTG9vcENGLmNwcApAQCAtMTE5LDQgKzExOSwxMSBAQCBib29sIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiBtX3RpbWVyICYmIENG
UnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyLmdldCgpKTsKIH0KIAorU2Vjb25kcyBSdW5Mb29w
OjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUoKSBjb25zdAoreworICAgIGlmIChpc0FjdGl2
ZSgpKQorICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4oU2Vjb25kcyB7IENGUnVuTG9v
cFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCkpIC0gQ0ZBYnNvbHV0ZVRpbWVHZXRD
dXJyZW50KCkgfSwgMF9zKTsKKyAgICByZXR1cm4gMF9zOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3Bw
IGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKaW5kZXggMTNlMjcx
NGMyOWQ0OWJlNTRjZDZjOGMzNDZlOGM3NmM3NWU5MjRlYi4uYTU2ODBlMjI4NTM1ZTRlZTFjMTJj
MTdiMjIyYzI4NDIzMjcwNzNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9S
dW5Mb29wR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2Vu
ZXJpYy5jcHAKQEAgLTI5Myw0ICsyOTMsMTIgQEAgYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6Omlz
QWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3QKICAgICByZXR1cm4gbV9zY2hlZHVs
ZWRUYXNrOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmly
ZSgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2Nr
KTsKKyAgICBpZiAoaXNBY3RpdmUobG9ja2VyKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PFNl
Y29uZHM+KG1fc2NoZWR1bGVkVGFzay0+c2NoZWR1bGVkVGltZVBvaW50KCkgLSBNb25vdG9uaWNU
aW1lOjpub3coKSwgMF9zKTsKKyAgICByZXR1cm4gMF9zOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwIGIvU291
cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKaW5kZXggYTNiOTNjNGEyNmI4YTY0YWNm
NGI2ZjY5NTBhNjM1YzdkMGIwNWNlZC4uY2ViNDliMzAxMjFlNWEzMWQwODVkZjk1NzRiNDAxMWI1
MGJjNWY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKQEAgLTE3Niw2ICsxNzYs
MTEgQEAgUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKICAgICBnX3NvdXJjZV9kZXN0
cm95KG1fc291cmNlLmdldCgpKTsKIH0KIAordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnNldE5h
bWUoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5n
ZXQoKSwgbmFtZSk7Cit9CisKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzZXRQcmlvcml0eShp
bnQgcHJpb3JpdHkpCiB7CiAgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdldCgp
LCBwcmlvcml0eSk7CkBAIC0yMTEsNCArMjE2LDkgQEAgYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6
OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUobV9z
b3VyY2UuZ2V0KCkpICE9IC0xOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vj
b25kc1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KFNl
Y29uZHM6OmZyb21NaWNyb3NlY29uZHMoZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUobV9zb3VyY2Uu
Z2V0KCkpIC0gZ19nZXRfbW9ub3RvbmljX3RpbWUoKSksIDBfcyk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwIGIv
U291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCmluZGV4IDg3NDZiMWVlYTAzODE0NWRm
ZTg0ODg5OWU1NDUzNmEzN2M4ZGViNGYuLjNlNGM0Y2VhMTc1YzYzMTJjZTQ4Yjg5YjQ4YjIzM2U5
NDg3ODI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTEzMSw3ICsxMzEsOCBA
QCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCB1
aW50NjRfdCBJRCkKICAgICAgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewogICAgICAg
ICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKICAgICAgICAgICAgIDo6
S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKLSAgICAgICAg
fQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fbmV4dEZpcmVEYXRlID0gTW9ub3Rvbmlj
VGltZTo6bm93KCkgKyBtX2ludGVydmFsOwogICAgIH0KIAogICAgIHRpbWVyLT5maXJlZCgpOwpA
QCAtMTYwLDYgKzE2MSw4IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUg
bmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9y
dW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOwogICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7
CiAgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7CisgICAgbV9p
bnRlcnZhbCA9IFNlY29uZHMobmV4dEZpcmVJbnRlcnZhbCk7CisgICAgbV9uZXh0RmlyZURhdGUg
PSBNb25vdG9uaWNUaW1lOjpub3coKSArIG1faW50ZXJ2YWw7CiAgICAgOjpTZXRUaW1lcihtX3J1
bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAx
MDAwLCAwKTsKIH0KIApAQCAtMTc0LDEwICsxNzcsMjQgQEAgdm9pZCBSdW5Mb29wOjpUaW1lckJh
c2U6OnN0b3AoKQogICAgIDo6S2lsbFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdp
bmRvdywgbV9JRCk7CiB9CiAKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZShjb25z
dCBBYnN0cmFjdExvY2tlciYpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3Rp
dmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9CisKIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjpp
c0FjdGl2ZSgpIGNvbnN0CiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2Fj
dGl2ZVRpbWVyc0xvY2spOwotICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmNv
bnRhaW5zKG1fSUQpOworICAgIHJldHVybiBpc0FjdGl2ZShsb2NrZXIpOwogfQogCitTZWNvbmRz
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOworICAgIGlmIChp
c0FjdGl2ZShsb2NrZXIpKQorICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9uZXh0
RmlyZURhdGUgLSBNb25vdG9uaWNUaW1lOjpub3coKSwgMF9zKTsKKyAgICByZXR1cm4gMF9zOwor
fQorCisKIH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306801</attachid>
            <date>2017-04-11 04:29:10 -0700</date>
            <delta_ts>2017-04-11 04:36:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411202909.patch</filename>
            <type>text/plain</type>
            <size>27894</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li5hNDRiMGJkYzZlYjIxNGQy
NmExNmQxNWQ2Y2E0YzlkZjNiZDEzZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0OCBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6bmV4dEZpcmVUaW1lKToK
KyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZSk6CisgICAgICAg
ICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3JrKToK
KyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKToKKyAgICAgICAgKiBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAgICAqIGhlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuY3BwOgorICAgICAgICAoSlNDOjpTdG9wSWZOZWNlc3NhcnlUaW1lcjo6c2NoZWR1bGVT
b29uKToKKyAgICAgICAgKiBydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3ApOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BU
aW1lcjo6c2NoZWR1bGVUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpjYW5j
ZWxUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxs
YmFjayk6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcik6Cisg
ICAgICAgICogcnVudGltZS9KU1J1bkxvb3BUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJv
bWlzZURlZmVycmVkVGltZXIuY3BwOgorICAgICAgICAoSlNDOjpQcm9taXNlRGVmZXJyZWRUaW1l
cjo6c2NoZWR1bGVXb3JrU29vbik6CisKKzIwMTctMDQtMTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gRW5hYmxlIEpTUnVuTG9vcFRpbWVy
IGZvciBKU0NPbmx5IGFuZCBXaW5kb3dzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzA2NTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjYTgwNDJkNWNjMjA0YWU3NTJmYjFjOTkw
NWEyZDgzYTNjOGUzZjkxLi5lNjUxMGJjMDAyNDA2NWMyM2M0YWFlMmQxODQ1NDhlOTUwZDAxOGE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFtKU0NdW0dUS10gVXNlIFJ1bkxvb3A6OlRpbWVy
IGluIEdUSyBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgc2Vjb25kc1VudGlsRmlyZSBtZXRob2QuIEFuZCBhZGQgc2V0TmFtZSBhbmQgc2V0
UHJpb3JpdHkKKyAgICAgICAgZm9yIEdUSyBSdW5Mb29wOjpUaW1lci4KKworICAgICAgICAqIHd0
Zi9SdW5Mb29wLmg6CisgICAgICAgICogd3RmL2NmL1J1bkxvb3BDRi5jcHA6CisgICAgICAgIChX
VEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6CisgICAgICAgICogd3Rm
L2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1l
ckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BHTGli
LmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzZXROYW1lKToKKyAgICAg
ICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAg
KiB3dGYvd2luL1J1bkxvb3BXaW4uY3BwOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0
KToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAg
IChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6CisKKzIwMTctMDQt
MTEgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pT
Q10gRW5hYmxlIEpTUnVuTG9vcFRpbWVyIGZvciBKU0NPbmx5IGFuZCBXaW5kb3dzCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2NTUKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNw
cAppbmRleCAwN2U2YzdhM2YwODU3NmUxNDM3ZjI4MWU1Mzc1ZWMzNjBjM2NkOGU3Li5iNmJkZTNk
ZDE3Zjg1ZDQwYzI5N2NkMzZkNDc3MTA3ZWYwZmQ1YWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNhbGxiYWNrLmNwcApAQCAtMzEsOCAr
MzEsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCi0K
IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OkVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVh
cCkKICAgICA6IEdDQWN0aXZpdHlDYWxsYmFjayhoZWFwKQogewpAQCAtNDMsOSArNDEsOSBAQCB2
b2lkIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvQ29sbGVjdGlvbigpCiAgICAgbV92bS0+aGVh
cC5jb2xsZWN0QXN5bmMoQ29sbGVjdGlvblNjb3BlOjpFZGVuKTsKIH0KIAotZG91YmxlIEVkZW5H
Q0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCitTZWNvbmRzIEVkZW5HQ0FjdGl2aXR5
Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCiB7Ci0gICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEVk
ZW5HQ0xlbmd0aCgpLnNlY29uZHMoKTsKKyAgICByZXR1cm4gbV92bS0+aGVhcC5sYXN0RWRlbkdD
TGVuZ3RoKCk7CiB9CiAKIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUo
KQpAQCAtNjksMzIgKzY3LDQgQEAgZG91YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmdjVGlt
ZVNsaWNlKHNpemVfdCBieXRlcykKICAgICByZXR1cm4gc3RkOjptaW4oKHN0YXRpY19jYXN0PGRv
dWJsZT4oYnl0ZXMpIC8gTUIpICogT3B0aW9uczo6cGVyY2VudENQVVBlck1CRm9yRWRlblRpbWVy
KCksIE9wdGlvbnM6OmNvbGxlY3Rpb25UaW1lck1heFBlcmNlbnRDUFUoKSk7CiB9CiAKLSNlbHNl
Ci0KLUVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OkVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCog
aGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxsYmFjayhoZWFwLT52bSgpKQotewotfQotCi12b2lk
IEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvQ29sbGVjdGlvbigpCi17Ci19Ci0KLWRvdWJsZSBF
ZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQotewotICAgIHJldHVybiAwOwot
fQotCi1kb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKLXsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotZG91YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmdjVGltZVNsaWNl
KHNpemVfdCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8vIFVTRShDRikgfHwgVVNF
KEdMSUIpCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGNjNGU5M2ZjYjlmMzAzOWNh
NjM1MDI1ODZiYWQ4NzlmOGFiNTg5MzQuLjg3NDgyYmRmYjMwMTg2YzAxNmIxYTZhODRjYmFlZDk5
MjcwOWZjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0Fj
dGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZB
VEUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjayA6IHB1YmxpYyBHQ0FjdGl2aXR5Q2FsbGJhY2sgewog
ICAgIHZvaWQgZG9Db2xsZWN0aW9uKCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICBkb3Vi
bGUgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7CisgICAgU2Vjb25kcyBsYXN0R0NMZW5ndGgoKSBv
dmVycmlkZTsKICAgICBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSBvdmVycmlkZTsK
ICAgICBkb3VibGUgZGVhdGhSYXRlKCkgb3ZlcnJpZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAppbmRleCBlNTdk
ZDNhMWM3OTcxMGYxMjU4NmE5MDM4NzE3YWRkNGRiNjYxMzlkLi5hNzFjNzY2MjQwZDBmNDViNGIx
M2FhYTZiN2M2NTMwNmI0ZDQzNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmNwcApAQCAtMzAsOCArMzAsNiBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCi0KICNpZiAhUExBVEZP
Uk0oSU9TKQogY29uc3QgZG91YmxlIHBhZ2luZ1RpbWVPdXQgPSAwLjE7IC8vIFRpbWUgaW4gc2Vj
b25kcyB0byBhbGxvdyBvcHBvcnR1bmlzdGljIHRpbWVyIHRvIGl0ZXJhdGUgb3ZlciBhbGwgYmxv
Y2tzIHRvIHNlZSBpZiB0aGUgSGVhcCBpcyBwYWdlZCBvdXQuCiAjZW5kaWYKQEAgLTU4LDkgKzU2
LDkgQEAgdm9pZCBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIGhl
YXAuY29sbGVjdEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RnVsbCk7CiB9CiAKLWRvdWJsZSBGdWxs
R0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBGdWxsR0NBY3Rpdml0
eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RG
dWxsR0NMZW5ndGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEZ1bGxH
Q0xlbmd0aCgpOwogfQogCiBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRl
KCkKQEAgLTg0LDMyICs4Miw0IEBAIGRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1Rp
bWVTbGljZShzaXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNfY2FzdDxk
b3VibGU+KGJ5dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckZ1bGxUaW1l
cigpLCBPcHRpb25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQogCi0jZWxz
ZQotCi1GdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpGdWxsR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAq
IGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKLXsKLX0KLQotdm9pZCBGdWxs
R0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1kb3VibGUgRnVsbEdD
QWN0aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQot
ZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17Ci0gICAgcmV0dXJu
IDA7Ci19Ci0KLWRvdWJsZSBGdWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShzaXpl
X3QpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0YpIHx8IFVTRShHTElC
KQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCA1MTA2ZWU3OTg3ODk0Yjk5OTI5OTBh
YmExMGY2OGEzOTAwOWVmZWU2Li40M2Q1M2I4YTFlMzE4MTYwYjUxZmNmZWI0NmZlZWJmYTY3OWUy
ZDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxsR0NBY3Rpdml0
eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZp
dHlDYWxsYmFjay5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEZ1
bGxHQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKICAgICB2
b2lkIHNldERpZFN5bmNHQ1JlY2VudGx5KCkgeyBtX2RpZFN5bmNHQ1JlY2VudGx5ID0gdHJ1ZTsg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgZG91YmxlIGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOworICAg
IFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGdjVGltZVNsaWNl
KHNpemVfdCBieXRlcykgb3ZlcnJpZGU7CiAgICAgZG91YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2Fs
bGJhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNr
LmNwcAppbmRleCAzODBkOTFjN2MwNmUwYzZjYjExYTljN2YwY2FkNTkwZjBiNDQ1Yjk5Li4yMTg2
YTZlNDc0NDM0NTZkM2Q5N2EzYjFjYzRhMDBmMmNjMzA1YmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTQyLDIyICs0Miwx
MiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogYm9vbCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNfc2hvdWxk
Q3JlYXRlR0NUaW1lciA9IHRydWU7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiBjb25z
dCBkb3VibGUgdGltZXJTbG9wID0gMi4wOyAvLyBGdWRnZSBmYWN0b3IgdG8gYXZvaWQgcGVyZm9y
bWFuY2UgY29zdCBvZiByZXNldHRpbmcgdGltZXIuCiAKLSNpZiBVU0UoQ0YpCi1HQ0FjdGl2aXR5
Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQotICAgIDogR0NBY3Rpdml0
eUNhbGxiYWNrKGhlYXAtPnZtKCkpCi17Ci19Ci0jZWxpZiBVU0UoR0xJQikKIEdDQWN0aXZpdHlD
YWxsYmFjazo6R0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCiAgICAgOiBHQ0FjdGl2aXR5
Q2FsbGJhY2soaGVhcC0+dm0oKSkKIHsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3Rp
bWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVS
X1NFQyk7CiB9Ci0jZW5kaWYKIAogdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB7
CkBAIC02Nyw3ICs1Nyw3IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dvcmsoKQogICAg
IAogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIobV92bSk7CiAgICAgaWYgKGhlYXAtPmlzRGVmZXJy
ZWQoKSkgewotICAgICAgICBzY2hlZHVsZVRpbWVyKDApOworICAgICAgICBzY2hlZHVsZVRpbWVy
KDBfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc1LDQyICs2NSw0OCBAQCB2b2lk
IEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkKIH0KIAogI2lmIFVTRShDRikKLXZvaWQgR0NB
Y3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBuZXdEZWxheSkKK3ZvaWQgR0NB
Y3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgbmV3RGVsYXkpCiB7CiAgICAg
aWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4gbV9kZWxheSkKICAgICAgICAgcmV0dXJuOwotICAg
IGRvdWJsZSBkZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsKKyAgICBTZWNvbmRzIGRlbHRhID0g
bV9kZWxheSAtIG5ld0RlbGF5OwogICAgIG1fZGVsYXkgPSBuZXdEZWxheTsKLSAgICBtX25leHRG
aXJlVGltZSA9IFdURjo6Y3VycmVudFRpbWUoKSArIG5ld0RlbGF5OwotICAgIENGUnVuTG9vcFRp
bWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZp
cmVEYXRlKG1fdGltZXIuZ2V0KCkpIC0gZGVsdGEpOworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4
dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1f
dGltZXIuZ2V0KCkpIC0gZGVsdGEuc2Vjb25kcygpKTsKIH0KIAogdm9pZCBHQ0FjdGl2aXR5Q2Fs
bGJhY2s6OmNhbmNlbFRpbWVyKCkKIHsKICAgICBtX2RlbGF5ID0gc19kZWNhZGU7Ci0gICAgbV9u
ZXh0RmlyZVRpbWUgPSAwOwotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGlt
ZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUpOworICAgIENG
UnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1l
R2V0Q3VycmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpKTsKK30KKworZG91YmxlIEdDQWN0aXZp
dHlDYWxsYmFjazo6bmV4dEZpcmVUaW1lKCkKK3sKKyAgICByZXR1cm4gQ0ZSdW5Mb29wVGltZXJH
ZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSk7CiB9Ci0jZWxpZiBVU0UoR0xJQikKLXZvaWQg
R0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBuZXdEZWxheSkKKyNlbHNl
Cit2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIG5ld0RlbGF5
KQogewotICAgIEFTU0VSVChuZXdEZWxheSA+PSAwKTsKICAgICBpZiAobmV3RGVsYXkgKiB0aW1l
clNsb3AgPiBtX2RlbGF5KQogICAgICAgICByZXR1cm47Ci0KLSAgICBkb3VibGUgZGVsdGEgPSBt
X2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBkZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxh
eTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAgbV9uZXh0RmlyZVRpbWUgPSBXVEY6OmN1
cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKIAotICAgIGdpbnQ2NCByZWFkeVRpbWUgPSBnX3NvdXJj
ZV9nZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpKTsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlf
dGltZShtX3RpbWVyLmdldCgpLCByZWFkeVRpbWUgLSBkZWx0YSAqIEdfVVNFQ19QRVJfU0VDKTsK
KyAgICBTZWNvbmRzIHNlY29uZHNVbnRpbEZpcmUgPSBtX3RpbWVyLnNlY29uZHNVbnRpbEZpcmUo
KTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzZWNvbmRzVW50aWxGaXJlIC0gZGVsdGEpOwog
fQogCiB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2VsVGltZXIoKQogewogICAgIG1fZGVs
YXkgPSBzX2RlY2FkZTsKLSAgICBtX25leHRGaXJlVGltZSA9IDA7Ci0gICAgZ19zb3VyY2Vfc2V0
X3JlYWR5X3RpbWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIHNfZGVj
YWRlICogR19VU0VDX1BFUl9TRUMpOworICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KHNfZGVjYWRl
KTsKK30KKworZG91YmxlIEdDQWN0aXZpdHlDYWxsYmFjazo6bmV4dEZpcmVUaW1lKCkKK3sKKyAg
ICAvLyBGSVhNRTogU2hvdWxkIHJldHVybiBNb25vdG9uaWNUaW1lLgorICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA3MjUKKyAgICByZXR1cm4gKE1vbm90
b25pYzo6bm93KCkgKyBtX3RpbWVyLnNlY29uZHNVbnRpbEZpcmUoKSkuc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpOwogfQogI2VuZGlmCiAKQEAgLTEyMSw3ICsxMTcsNyBAQCB2b2lkIEdDQWN0
aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2NhdGUoc2l6ZV90IGJ5dGVzKQogICAgIGlmICghYnl0ZXMp
CiAgICAgICAgIGJ5dGVzID0gMTsKICAgICBkb3VibGUgYnl0ZXNFeHBlY3RlZFRvUmVjbGFpbSA9
IHN0YXRpY19jYXN0PGRvdWJsZT4oYnl0ZXMpICogZGVhdGhSYXRlKCk7Ci0gICAgZG91YmxlIG5l
d0RlbGF5ID0gbGFzdEdDTGVuZ3RoKCkgLyBnY1RpbWVTbGljZShieXRlc0V4cGVjdGVkVG9SZWNs
YWltKTsKKyAgICBTZWNvbmRzIG5ld0RlbGF5ID0gbGFzdEdDTGVuZ3RoKCkgLyBnY1RpbWVTbGlj
ZShieXRlc0V4cGVjdGVkVG9SZWNsYWltKTsKICAgICBzY2hlZHVsZVRpbWVyKG5ld0RlbGF5KTsK
IH0KIApAQCAtMTM1LDMwICsxMzEsNSBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2Vs
KCkKICAgICBjYW5jZWxUaW1lcigpOwogfQogCi0jZWxzZQotCi1HQ0FjdGl2aXR5Q2FsbGJhY2s6
OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQotICAgIDogR0NBY3Rpdml0eUNhbGxiYWNr
KGhlYXAtPnZtKCkpCi17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dvcmsoKQot
ewotfQotCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZGlkQWxsb2NhdGUoc2l6ZV90KQotewot
fQotCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6d2lsbENvbGxlY3QoKQotewotfQotCi12b2lk
IEdDQWN0aXZpdHlDYWxsYmFjazo6Y2FuY2VsKCkKLXsKLX0KLQotI2VuZGlmCi0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBh
ZjQ3NTg4ZDYwMTE5YWQ4ZGQ1MTVkOGY0YTUwY2ZjNzI5NTgxMzE0Li43OTU5Yjg0NTgyYzIyZDQ2
MjA3ZDIwMjQ1OTc5Nzk0YTRkMzBjZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaApAQCAtNjAsNDggKzYwLDI4IEBAIGNsYXNzIEpTX0VY
UE9SVF9QUklWQVRFIEdDQWN0aXZpdHlDYWxsYmFjayA6IHB1YmxpYyBKU1J1bkxvb3BUaW1lciB7
CiAKICAgICBzdGF0aWMgYm9vbCBzX3Nob3VsZENyZWF0ZUdDVGltZXI7CiAKLSNpZiBVU0UoQ0Yp
IHx8IFVTRShHTElCKQotICAgIGRvdWJsZSBuZXh0RmlyZVRpbWUoKSBjb25zdCB7IHJldHVybiBt
X25leHRGaXJlVGltZTsgfQotI2VuZGlmCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgZG91YmxlIG5l
eHRGaXJlVGltZSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBkb3VibGUgbGFzdEdDTGVu
Z3RoKCkgPSAwOworICAgIHZpcnR1YWwgU2Vjb25kcyBsYXN0R0NMZW5ndGgoKSA9IDA7CiAgICAg
dmlydHVhbCBkb3VibGUgZ2NUaW1lU2xpY2Uoc2l6ZV90IGJ5dGVzKSA9IDA7CiAgICAgdmlydHVh
bCBkb3VibGUgZGVhdGhSYXRlKCkgPSAwOwogCi0jaWYgVVNFKENGKQotICAgIEdDQWN0aXZpdHlD
YWxsYmFjayhWTSogdm0pCi0gICAgICAgIDogQmFzZSh2bSkKLSAgICAgICAgLCBtX2VuYWJsZWQo
dHJ1ZSkKLSAgICAgICAgLCBtX2RlbGF5KHNfZGVjYWRlKQotICAgIHsKLSAgICB9Ci0jZWxpZiBV
U0UoR0xJQikKICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2soVk0qIHZtKQogICAgICAgICA6IEJhc2Uo
dm0pCiAgICAgICAgICwgbV9lbmFibGVkKHRydWUpCiAgICAgICAgICwgbV9kZWxheShzX2RlY2Fk
ZSkKICAgICB7CiAgICAgfQotI2Vsc2UKLSAgICBHQ0FjdGl2aXR5Q2FsbGJhY2soVk0qIHZtKQot
ICAgICAgICA6IEJhc2Uodm0pCi0gICAgICAgICwgbV9lbmFibGVkKHRydWUpCi0gICAgewotICAg
IH0KLSNlbmRpZgogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShH
TElCKQogcHJvdGVjdGVkOgogICAgIHZvaWQgY2FuY2VsVGltZXIoKTsKLSAgICB2b2lkIHNjaGVk
dWxlVGltZXIoZG91YmxlKTsKKyAgICB2b2lkIHNjaGVkdWxlVGltZXIoU2Vjb25kcyk7CiAKIHBy
aXZhdGU6Ci0gICAgZG91YmxlIG1fZGVsYXk7Ci0gICAgZG91YmxlIG1fbmV4dEZpcmVUaW1lIHsg
MCB9OwotI2VuZGlmCisgICAgU2Vjb25kcyBtX2RlbGF5OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3
ZWVwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVy
LmNwcAppbmRleCA4Y2JmYTllODA0MGRjNjFlZmIwMTliMjE0NTU0NDU1ZTJmYTgzMWI2Li4yOWJk
NGIyYTVhZDYyNGY5MzZmNWQ3MDY4OTU4ZWM4Njk4OTEwMWJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKQEAgLTM1LDcgKzM1LDcg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lU2xp
Y2UgPSAuMDE7IC8vIHNlY29uZHMKK3N0YXRpYyBjb25zdCBTZWNvbmRzIHN3ZWVwVGltZVNsaWNl
ID0gMTBfbXM7IC8vIHNlY29uZHMKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lVG90YWwg
PSAuMTA7CiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZU11bHRpcGxpZXIgPSAxLjAgLyBz
d2VlcFRpbWVUb3RhbDsKIApAQCAtNTIsMTMgKzUyLDEzIEBAIEluY3JlbWVudGFsU3dlZXBlcjo6
SW5jcmVtZW50YWxTd2VlcGVyKEhlYXAqIGhlYXApCiAKIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVy
Ojpkb1dvcmsoKQogewotICAgIGRvU3dlZXAoV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSk7CisgICAgZG9Td2VlcChNb25vdG9uaWNUaW1lOjpub3coKSk7CiB9CiAKLXZvaWQgSW5j
cmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKGRvdWJsZSBzd2VlcEJlZ2luVGltZSkKK3ZvaWQgSW5j
cmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKE1vbm90b25pY1RpbWUgc3dlZXBCZWdpblRpbWUpCiB7
CiAgICAgd2hpbGUgKHN3ZWVwTmV4dEJsb2NrKCkpIHsKLSAgICAgICAgZG91YmxlIGVsYXBzZWRU
aW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIHN3ZWVwQmVnaW5UaW1l
OworICAgICAgICBTZWNvbmRzIGVsYXBzZWRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCkgLSBz
d2VlcEJlZ2luVGltZTsKICAgICAgICAgaWYgKGVsYXBzZWRUaW1lIDwgc3dlZXBUaW1lU2xpY2Up
CiAgICAgICAgICAgICBjb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAppbmRleCA3NmQ0NTRmM2MwNGIzMWJkMTE0YjgwNzE0M2U0
ZDFlMTVhNGU1YmM1Li40ODgzNGIxM2JjNWM2M2E5YThhZjgyZWI3MzRjMWUxYjFhNjM0NTg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApA
QCAtNDUsNyArNDUsNyBAQCBjbGFzcyBJbmNyZW1lbnRhbFN3ZWVwZXIgOiBwdWJsaWMgSlNSdW5M
b29wVGltZXIgewogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RvcFN3ZWVwaW5nKCk7CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBkb1N3ZWVwKGRvdWJsZSBzdGFydFRpbWUpOworICAgIHZvaWQg
ZG9Td2VlcChNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSk7CiAgICAgdm9pZCBzY2hlZHVsZVRpbWVy
KCk7CiAgICAgCiAgICAgTWFya2VkQWxsb2NhdG9yKiBtX2N1cnJlbnRBbGxvY2F0b3I7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAK
aW5kZXggOTQwZDM5ZGUyNGFjZmQzMmQ5NmE0YWMyMWVkMmMyYTUzMTdjMjFjZC4uNjIzOTYxMDk0
NDdmNjRjZDZlZGZjZjJhOGY5ZDlhNjM1Y2RiMTNkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcApAQCAtNDgsNyArNDgsNyBA
QCB2b2lkIFN0b3BJZk5lY2Vzc2FyeVRpbWVyOjpzY2hlZHVsZVNvb24oKQogICAgICAgICBXVEY6
OmxvYWRMb2FkRmVuY2UoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBzY2hlZHVsZVRp
bWVyKDApOworICAgIHNjaGVkdWxlVGltZXIoMF9zKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1l
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAK
aW5kZXggZmQ3OWQ1OTgwNGE3ZjQ4MmVkZjk0Nzg3ZWVkZGE3NDhiZGZkMmY5My4uNjhmY2U0ZGNj
YzBiZTVlMDBiODVmM2QzZTg2NmE1NmMzNzNjODMwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcApAQCAtNDIsNiArNDIsOCBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAorY29uc3QgU2Vjb25kcyBKU1J1bkxvb3BUaW1lcjo6c19kZWNhZGUg
eyA2MCAqIDYwICogMjQgKiAzNjUgKiAxMCB9OworCiB2b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1l
ckRpZEZpcmUoKQogewogICAgIG1fYXBpTG9jay0+bG9jaygpOwpAQCAtNjMsOCArNjUsNiBAQCB2
b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmUoKQogCiAjaWYgVVNFKENGKQogCi1jb25z
dCBDRlRpbWVJbnRlcnZhbCBKU1J1bkxvb3BUaW1lcjo6c19kZWNhZGUgPSA2MCAqIDYwICogMjQg
KiAzNjUgKiAxMDsKLQogSlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVyKFZNKiB2bSkKICAg
ICA6IG1fdm0odm0pCiAgICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkpCkBAIC04NSw3ICs4
NSw3IEBAIHZvaWQgSlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3AoQ0ZSdW5Mb29wUmVmIHJ1bkxv
b3ApCiAgICAgICAgIG1fcnVuTG9vcCA9IHJ1bkxvb3A7CiAgICAgICAgIG1lbXNldCgmbV9jb250
ZXh0LCAwLCBzaXplb2YoQ0ZSdW5Mb29wVGltZXJDb250ZXh0KSk7CiAgICAgICAgIG1fY29udGV4
dC5pbmZvID0gdGhpczsKLSAgICAgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBz
X2RlY2FkZSwgc19kZWNhZGUsIDAsIDAsIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxs
YmFjaywgJm1fY29udGV4dCkpOworICAgICAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BU
aW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQo
KSArIHNfZGVjYWRlLnNlY29uZHMoKSwgc19kZWNhZGUuc2Vjb25kcygpLCAwLCAwLCBKU1J1bkxv
b3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2ssICZtX2NvbnRleHQpKTsKICAgICAgICAgQ0ZS
dW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLmdldCgpLCBtX3RpbWVyLmdldCgpLCBrQ0ZSdW5Mb29w
Q29tbW9uTW9kZXMpOwogICAgIH0KIH0KQEAgLTk1LDgyICs5NSwzNSBAQCBKU1J1bkxvb3BUaW1l
cjo6fkpTUnVuTG9vcFRpbWVyKCkKICAgICBzZXRSdW5Mb29wKDApOwogfQogCi12b2lkIEpTUnVu
TG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCog
Y29udGV4dFB0cikKLXsKLSAgICBzdGF0aWNfY2FzdDxKU1J1bkxvb3BUaW1lcio+KGNvbnRleHRQ
dHIpLT50aW1lckRpZEZpcmUoKTsKLX0KLQotdm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVU
aW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hl
ZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCiB7Ci0gICAgQ0ZSdW5Mb29wVGlt
ZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50
KCkgKyBpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURh
dGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBpbnRlcnZhbElu
U2Vjb25kcy5zZWNvbmRzKCkpOwogICAgIG1faXNTY2hlZHVsZWQgPSB0cnVlOwogfQogCiB2b2lk
IEpTUnVuTG9vcFRpbWVyOjpjYW5jZWxUaW1lcigpCiB7Ci0gICAgQ0ZSdW5Mb29wVGltZXJTZXRO
ZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBz
X2RlY2FkZSk7CisgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQo
KSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZS5zZWNvbmRzKCkpOwogICAg
IG1faXNTY2hlZHVsZWQgPSBmYWxzZTsKIH0KIAotI2VsaWYgVVNFKEdMSUIpCi0KLWNvbnN0IGxv
bmcgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlID0gNjAgKiA2MCAqIDI0ICogMzY1ICogMTA7Ci0K
LXN0YXRpYyBHU291cmNlRnVuY3MgSlNSdW5Mb29wVGltZXJTb3VyY2VGdW5jdGlvbnMgPSB7Ci0g
ICAgbnVsbHB0ciwgLy8gcHJlcGFyZQotICAgIG51bGxwdHIsIC8vIGNoZWNrCi0gICAgLy8gZGlz
cGF0Y2gKLSAgICBbXShHU291cmNlKiwgR1NvdXJjZUZ1bmMgY2FsbGJhY2ssIGdwb2ludGVyIHVz
ZXJEYXRhKSAtPiBnYm9vbGVhbgotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHVzZXJE
YXRhKTsKLSAgICB9LAotICAgIG51bGxwdHIsIC8vIGZpbmFsaXplCi0gICAgbnVsbHB0ciwgLy8g
Y2xvc3VyZV9jYWxsYmFjawotICAgIG51bGxwdHIsIC8vIGNsb3N1cmVfbWFyc2hhbGwKLX07Ci0K
LUpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCi0gICAgOiBtX3ZtKHZtKQot
ICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQotICAgICwgbV90aW1lcihhZG9wdEdSZWYo
Z19zb3VyY2VfbmV3KCZKU1J1bkxvb3BUaW1lclNvdXJjZUZ1bmN0aW9ucywgc2l6ZW9mKEdTb3Vy
Y2UpKSkpCi17Ci0gICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fdGltZXIuZ2V0KCksIFJ1bkxv
b3BTb3VyY2VQcmlvcml0eTo6SmF2YXNjcmlwdFRpbWVyKTsKLSAgICBnX3NvdXJjZV9zZXRfbmFt
ZShtX3RpbWVyLmdldCgpLCAiW0phdmFTY3JpcHRDb3JlXSBKU1J1bkxvb3BUaW1lciIpOwotICAg
IGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyLmdldCgpLCBbXShncG9pbnRlciB1c2VyRGF0
YSkgLT4gZ2Jvb2xlYW4gewotICAgICAgICBhdXRvJiBydW5Mb29wVGltZXIgPSAqc3RhdGljX2Nh
c3Q8SlNSdW5Mb29wVGltZXIqPih1c2VyRGF0YSk7Ci0gICAgICAgIGdfc291cmNlX3NldF9yZWFk
eV90aW1lKHJ1bkxvb3BUaW1lci5tX3RpbWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgp
ICsgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMpOwotICAgICAgICBy
dW5Mb29wVGltZXIudGltZXJEaWRGaXJlKCk7Ci0gICAgICAgIHJldHVybiBHX1NPVVJDRV9DT05U
SU5VRTsKLSAgICB9LCB0aGlzLCBudWxscHRyKTsKLSAgICBnX3NvdXJjZV9hdHRhY2gobV90aW1l
ci5nZXQoKSwgZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpOwotfQotCi1KU1J1
bkxvb3BUaW1lcjo6fkpTUnVuTG9vcFRpbWVyKCkKLXsKLSAgICBnX3NvdXJjZV9kZXN0cm95KG1f
dGltZXIuZ2V0KCkpOwotfQorI2Vsc2UKIAotdm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVU
aW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1l
ckRpZEZpcmVDYWxsYmFjaygpCiB7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90aW1l
ci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIGludGVydmFsSW5TZWNvbmRzICogR19V
U0VDX1BFUl9TRUMpOwotICAgIG1faXNTY2hlZHVsZWQgPSB0cnVlOworICAgIGNhbmNlbFRpbWVy
KCk7CisgICAgdGltZXJEaWRGaXJlKCk7CiB9CiAKLXZvaWQgSlNSdW5Mb29wVGltZXI6OmNhbmNl
bFRpbWVyKCkKLXsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCBn
X2dldF9tb25vdG9uaWNfdGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAg
bV9pc1NjaGVkdWxlZCA9IGZhbHNlOwotfQotCi0jZWxzZQotCi1jb25zdCBTZWNvbmRzIEpTUnVu
TG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwIH07Ci0KIEpTUnVu
TG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCiAgICAgOiBtX3ZtKHZtKQogICAgICwg
bV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQotICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50
KCksIHRoaXMsICZKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKQorICAgICwgbV90aW1lcihS
dW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2Fs
bGJhY2spCiB7CisjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkKKyAgICBtX3RpbWVyLnNldFByaW9y
aXR5KFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6SmF2YXNjcmlwdFRpbWVyKTsKKyAgICBtX3RpbWVy
LnNldE5hbWUoIltKYXZhU2NyaXB0Q29yZV0gSlNSdW5Mb29wVGltZXIiKTsKKyNlbmRpZgogICAg
IG1fdGltZXIuc3RhcnRPbmVTaG90KHNfZGVjYWRlKTsKIH0KIApAQCAtMTc4LDcgKzEzMSw3IEBA
IEpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIoKQogewogfQogCi12b2lkIEpTUnVuTG9v
cFRpbWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcykKK3ZvaWQgSlNS
dW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbEluU2Vjb25kcykKIHsK
ICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAgbV9pc1Nj
aGVkdWxlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1J1bkxvb3BUaW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5M
b29wVGltZXIuaAppbmRleCAwMGYzZTZiYmNjZWM1ODdmZDk5ZTk4ZWQxNjA1M2ZkNjU3NzU5ODA2
Li43ZTAzOGZlZWU1NTY2NWQ5YTFiMmQyNmVjMzA1ZDA3YmEwMjM2MmZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKQEAgLTM2LDEwICszNiw2
IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KICNlbmRpZgog
Ci0jaWYgVVNFKEdMSUIpCi0jaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgotI2VuZGlmCi0K
IG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBKU0xvY2s7CkBAIC00OSwxMyArNDUsMTUgQEAgY2xh
c3MgSlNSdW5Mb29wVGltZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SlNSdW5Mb29w
VGltZXI+IHsKIHB1YmxpYzoKICAgICBKU1J1bkxvb3BUaW1lcihWTSopOwogI2lmIFVTRShDRikK
LSAgICBzdGF0aWMgdm9pZCB0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1lclJlZiwg
dm9pZCopOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHRpbWVyRGlkRmlyZUNh
bGxiYWNrKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CisjZWxzZQorICAgIHZvaWQgdGltZXJE
aWRGaXJlQ2FsbGJhY2soKTsKICNlbmRpZgogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdmlydHVh
bCB+SlNSdW5Mb29wVGltZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgZG9Xb3JrKCkgPSAwOwogCi0g
ICAgdm9pZCBzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcyk7CisgICAgdm9p
ZCBzY2hlZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpOwogICAgIHZvaWQgY2Fu
Y2VsVGltZXIoKTsKICAgICBib29sIGlzU2NoZWR1bGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1Nj
aGVkdWxlZDsgfQogCkBAIC02NiwyMiArNjQsMTggQEAgY2xhc3MgSlNSdW5Mb29wVGltZXIgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SlNSdW5Mb29wVGltZXI+IHsKIHByb3RlY3RlZDoK
ICAgICBWTSogbV92bTsKIAorICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHNfZGVjYWRlOworCiAg
ICAgUmVmUHRyPEpTTG9jaz4gbV9hcGlMb2NrOwogICAgIGJvb2wgbV9pc1NjaGVkdWxlZCB7IGZh
bHNlIH07CiAjaWYgVVNFKENGKQotICAgIHN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCBzX2Rl
Y2FkZTsKLQogICAgIFJldGFpblB0cjxDRlJ1bkxvb3BUaW1lclJlZj4gbV90aW1lcjsKICAgICBS
ZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxvb3A7CiAKICAgICBDRlJ1bkxvb3BUaW1lckNv
bnRleHQgbV9jb250ZXh0OwogCiAgICAgTG9jayBtX3NodXRkb3duTXV0ZXg7Ci0jZWxpZiBVU0Uo
R0xJQikKLSAgICBzdGF0aWMgY29uc3QgbG9uZyBzX2RlY2FkZTsKLSAgICBHUmVmUHRyPEdTb3Vy
Y2U+IG1fdGltZXI7CiAjZWxzZQotICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHNfZGVjYWRlOwog
ICAgIFJ1bkxvb3A6OlRpbWVyPEpTUnVuTG9vcFRpbWVyPiBtX3RpbWVyOwogI2VuZGlmCiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJy
ZWRUaW1lci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJy
ZWRUaW1lci5jcHAKaW5kZXggMTA0NWU0NjZhYTM2MWE0YTY0YTI5Y2YwZTk0MzZlMzQ1NGNjOTJl
MS4uM2RjYWVhYWZlNWIzOGZiYTViYThhZjk3NjYwZjUxYmM2NTlmZDI0NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNw
cApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgUHJvbWlzZURlZmVycmVkVGltZXI6OnNjaGVkdWxl
V29ya1Nvb24oSlNQcm9taXNlRGVmZXJyZWQqIHRpY2tldCwgVGFzayYmIHRhCiAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV90YXNrTG9jayk7CiAgICAgbV90YXNrcy5hcHBlbmQoc3RkOjptYWtlX3R1
cGxlKHRpY2tldCwgV1RGTW92ZSh0YXNrKSkpOwogICAgIGlmICghaXNTY2hlZHVsZWQoKSAmJiAh
bV9jdXJyZW50bHlSdW5uaW5nVGFzaykKLSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsKKyAgICAg
ICAgc2NoZWR1bGVUaW1lcigwX3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApp
bmRleCA5MmNjMTUwZmRkMjk5NTA0OTUyMjIyZDA4MjY4MzdmNGJiZGIyMDM2Li4zZDA2YzNlYjg5
MzAwZDYwZmEwODM2NGJkZWVjZDZmMDllOGJhODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9SdW5Mb29wLmgKKysrIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCkBAIC05MywxMCArOTMs
MTIgQEAgY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogCiAgICAg
ICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHN0b3AoKTsKICAgICAgICAgV1RGX0VYUE9SVF9Q
UklWQVRFIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IFNlY29uZHMgc2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBmaXJlZCgpID0gMDsKIAogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCisgICAgICAgIHZvaWQg
c2V0TmFtZShjb25zdCBjaGFyKik7CiAgICAgICAgIHZvaWQgc2V0UHJpb3JpdHkoaW50KTsKICNl
bmRpZgogCkBAIC0xMDYsOCArMTA4LDExIEBAIGNsYXNzIFJ1bkxvb3AgOiBwdWJsaWMgRnVuY3Rp
b25EaXNwYXRjaGVyIHsKICAgICAgICAgUmVmPFJ1bkxvb3A+IG1fcnVuTG9vcDsKIAogI2lmIFVT
RShXSU5ET1dTX0VWRU5UX0xPT1ApCisgICAgICAgIGJvb2wgaXNBY3RpdmUoY29uc3QgQWJzdHJh
Y3RMb2NrZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29w
KiwgdWludDY0X3QgSUQpOwogICAgICAgICB1aW50NjRfdCBtX0lEOworICAgICAgICBNb25vdG9u
aWNUaW1lIG1fbmV4dEZpcmVEYXRlOworICAgICAgICBTZWNvbmRzIG1faW50ZXJ2YWw7CiAgICAg
ICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKICNlbGlmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAg
ICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwIGIvU291cmNlL1dURi93
dGYvY2YvUnVuTG9vcENGLmNwcAppbmRleCA0MWY4Zjk1NzVjNjgzMDJmMzg2MmRjMjIzZmU1NDI3
YThhZTI0NDE2Li41ZTRjODA1N2U5MTM1NDc1ODkyZDA0ZTE2NjU1NDFiYjkyNDUyODUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL2NmL1J1bkxvb3BDRi5jcHAKQEAgLTExOSw0ICsxMTksMTEgQEAgYm9vbCBSdW5Mb29wOjpU
aW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gbV90aW1lciAmJiBDRlJ1bkxv
b3BUaW1lcklzVmFsaWQobV90aW1lci5nZXQoKSk7CiB9CiAKK1NlY29uZHMgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICBpZiAoaXNBY3RpdmUoKSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KFNlY29uZHMgeyBDRlJ1bkxvb3BUaW1l
ckdldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpKSAtIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVu
dCgpIH0sIDBfcyk7CisgICAgcmV0dXJuIDBfczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwCmluZGV4IDEzZTI3MTRjMjlk
NDliZTU0Y2Q2YzhjMzQ2ZThjNzZjNzVlOTI0ZWIuLmE1NjgwZTIyODUzNWU0ZWUxYzEyYzE3YjIy
MmMyODQyMzI3MDczYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9v
cEdlbmVyaWMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMu
Y3BwCkBAIC0yOTMsNCArMjkzLDEyIEBAIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2
ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2NoZWR1bGVkVGFz
azsKIH0KIAorU2Vjb25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUoKSBj
b25zdAoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9sb29wTG9jayk7Cisg
ICAgaWYgKGlzQWN0aXZlKGxvY2tlcikpCisgICAgICAgIHJldHVybiBzdGQ6Om1heDxTZWNvbmRz
PihtX3NjaGVkdWxlZFRhc2stPnNjaGVkdWxlZFRpbWVQb2ludCgpIC0gTW9ub3RvbmljVGltZTo6
bm93KCksIDBfcyk7CisgICAgcmV0dXJuIDBfczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwCmluZGV4IGEzYjkzYzRhMjZiOGE2NGFjZjRiNmY2
OTUwYTYzNWM3ZDBiMDVjZWQuLmNlYjQ5YjMwMTIxZTVhMzFkMDg1ZGY5NTc0YjQwMTFiNTBiYzVm
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwCkBAIC0xNzYsNiArMTc2LDExIEBA
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCiAgICAgZ19zb3VyY2VfZGVzdHJveSht
X3NvdXJjZS5nZXQoKSk7CiB9CiAKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzZXROYW1lKGNv
bnN0IGNoYXIqIG5hbWUpCit7CisgICAgZ19zb3VyY2Vfc2V0X25hbWUobV9zb3VyY2UuZ2V0KCks
IG5hbWUpOworfQorCiB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0UHJpb3JpdHkoaW50IHBy
aW9yaXR5KQogewogICAgIGdfc291cmNlX3NldF9wcmlvcml0eShtX3NvdXJjZS5nZXQoKSwgcHJp
b3JpdHkpOwpAQCAtMjExLDQgKzIxNiw5IEBAIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0Fj
dGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGdfc291cmNlX2dldF9yZWFkeV90aW1lKG1fc291cmNl
LmdldCgpKSAhPSAtMTsKIH0KIAorU2Vjb25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNV
bnRpbEZpcmUoKSBjb25zdAoreworICAgIHJldHVybiBzdGQ6Om1heDxTZWNvbmRzPihTZWNvbmRz
Ojpmcm9tTWljcm9zZWNvbmRzKGdfc291cmNlX2dldF9yZWFkeV90aW1lKG1fc291cmNlLmdldCgp
KSAtIGdfZ2V0X21vbm90b25pY190aW1lKCkpLCAwX3MpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcAppbmRleCA4NzQ2YjFlZWEwMzgxNDVkZmU4NDg4
OTllNTQ1MzZhMzdjOGRlYjRmLi4zZTRjNGNlYTE3NWM2MzEyY2U0OGI4OWI0OGIyMzNlOTQ4Nzgy
NjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCkBAIC0xMzEsNyArMTMxLDggQEAgdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0
X3QgSUQpCiAgICAgICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsKICAgICAgICAgICAg
IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CiAgICAgICAgICAgICA6OktpbGxU
aW1lcihydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7Ci0gICAgICAgIH0KKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX25leHRGaXJlRGF0ZSA9IE1vbm90b25pY1RpbWU6
Om5vdygpICsgbV9pbnRlcnZhbDsKICAgICB9CiAKICAgICB0aW1lci0+ZmlyZWQoKTsKQEAgLTE2
MCw2ICsxNjEsOCBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRG
aXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9v
cC0+bV9hY3RpdmVUaW1lcnNMb2NrKTsKICAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwogICAg
IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOworICAgIG1faW50ZXJ2
YWwgPSBTZWNvbmRzKG5leHRGaXJlSW50ZXJ2YWwpOworICAgIG1fbmV4dEZpcmVEYXRlID0gTW9u
b3RvbmljVGltZTo6bm93KCkgKyBtX2ludGVydmFsOwogICAgIDo6U2V0VGltZXIobV9ydW5Mb29w
LT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwg
MCk7CiB9CiAKQEAgLTE3NCwxMCArMTc3LDI0IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dG9wKCkKICAgICA6OktpbGxUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cs
IG1fSUQpOwogfQogCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoY29uc3QgQWJz
dHJhY3RMb2NrZXImKSBjb25zdAoreworICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLmNvbnRhaW5zKG1fSUQpOworfQorCiBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoKSBjb25zdAogewogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnNMb2NrKTsKLSAgICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlu
cyhtX0lEKTsKKyAgICByZXR1cm4gaXNBY3RpdmUobG9ja2VyKTsKIH0KIAorU2Vjb25kcyBSdW5M
b29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUoKSBjb25zdAoreworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnNMb2NrKTsKKyAgICBpZiAoaXNBY3Rp
dmUobG9ja2VyKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KG1fbmV4dEZpcmVE
YXRlIC0gTW9ub3RvbmljVGltZTo6bm93KCksIDBfcyk7CisgICAgcmV0dXJuIDBfczsKK30KKwor
CiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306802</attachid>
            <date>2017-04-11 04:36:16 -0700</date>
            <delta_ts>2017-04-11 04:40:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411203615.patch</filename>
            <type>text/plain</type>
            <size>27808</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li45YWFmNjdmYWM1ODg1OGUy
M2QwNWY2ODVjODI3ZjgzYTBlNmU1OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0OSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6bmV4dEZpcmVUaW1lKToK
KyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZSk6CisgICAgICAg
ICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3JrKToK
KyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKToKKyAgICAgICAgKiBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAgICAqIGhlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuY3BwOgorICAgICAgICAoSlNDOjpTdG9wSWZOZWNlc3NhcnlUaW1lcjo6c2NoZWR1bGVT
b29uKToKKyAgICAgICAgKiBydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3ApOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BU
aW1lcjo6c2NoZWR1bGVUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpjYW5j
ZWxUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcik6
CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIpOgorICAgICAg
ICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2spOgorICAgICAgICAq
IHJ1bnRpbWUvSlNSdW5Mb29wVGltZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb21pc2VEZWZl
cnJlZFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvbWlzZURlZmVycmVkVGltZXI6OnNjaGVk
dWxlV29ya1Nvb24pOgorCisyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxvb3BUaW1lciBmb3IgSlND
T25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2E4MDQyZDVjYzIwNGFlNzUyZmIxYzk5MDVhMmQ4M2Ez
YzhlM2Y5MS4uZTY1MTBiYzAwMjQwNjVjMjNjNGFhZTJkMTg0NTQ4ZTk1MGQwMThhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsg
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcw
NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHNlY29uZHNVbnRpbEZpcmUgbWV0aG9kLiBBbmQgYWRkIHNldE5hbWUgYW5kIHNldFByaW9yaXR5
CisgICAgICAgIGZvciBHVEsgUnVuTG9vcDo6VGltZXIuCisKKyAgICAgICAgKiB3dGYvUnVuTG9v
cC5oOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAgICAqIHd0Zi9nZW5lcmlj
L1J1bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpz
ZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZSk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6CisgICAgICAgICogd3RmL3dp
bi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1l
ckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorCisyMDE3LTA0LTExICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJs
ZSBKU1J1bkxvb3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5kZXgg
MDdlNmM3YTNmMDg1NzZlMTQzN2YyODFlNTM3NWVjMzYwYzNjZDhlNy4uYjZiZGUzZGQxN2Y4NWQ0
MGMyOTdjZDM2ZDQ3NzEwN2VmMGZkNWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMxLDggKzMxLDYgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCiAgICAg
OiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKIHsKQEAgLTQzLDkgKzQxLDkgQEAgdm9pZCBFZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIG1fdm0tPmhlYXAuY29sbGVj
dEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RWRlbik7CiB9CiAKLWRvdWJsZSBFZGVuR0NBY3Rpdml0
eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
OjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RFZGVuR0NMZW5n
dGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEVkZW5HQ0xlbmd0aCgp
OwogfQogCiBkb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKQEAgLTY5
LDMyICs2Nyw0IEBAIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShz
aXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNfY2FzdDxkb3VibGU+KGJ5
dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckVkZW5UaW1lcigpLCBPcHRp
b25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQogCi0jZWxzZQotCi1FZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0g
ICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0KLQotdm9pZCBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1kb3VibGUgRWRlbkdDQWN0
aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotZG91
YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShzaXplX3Qp
Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0YpIHx8IFVTRShHTElCKQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBjYzRlOTNmY2I5ZjMwMzljYTYzNTAyNTg2
YmFkODc5ZjhhYjU4OTM0Li44NzQ4MmJkZmIzMDE4NmMwMTZiMWE2YTg0Y2JhZWQ5OTI3MDlmYzk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNh
bGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlD
YWxsYmFjay5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5H
Q0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKICAgICB2b2lk
IGRvQ29sbGVjdGlvbigpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZG91YmxlIGxhc3RH
Q0xlbmd0aCgpIG92ZXJyaWRlOworICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7
CiAgICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3ZlcnJpZGU7CiAgICAgZG91
YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5kZXggZTU3ZGQzYTFjNzk3
MTBmMTI1ODZhOTAzODcxN2FkZDRkYjY2MTM5ZC4uYTcxYzc2NjI0MGQwZjQ1YjRiMTNhYWE2Yjdj
NjUzMDZiNGQ0Mzc4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMwLDggKzMwLDYgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiAjaWYgIVBMQVRGT1JNKElPUykK
IGNvbnN0IGRvdWJsZSBwYWdpbmdUaW1lT3V0ID0gMC4xOyAvLyBUaW1lIGluIHNlY29uZHMgdG8g
YWxsb3cgb3Bwb3J0dW5pc3RpYyB0aW1lciB0byBpdGVyYXRlIG92ZXIgYWxsIGJsb2NrcyB0byBz
ZWUgaWYgdGhlIEhlYXAgaXMgcGFnZWQgb3V0LgogI2VuZGlmCkBAIC01OCw5ICs1Niw5IEBAIHZv
aWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKICAgICBoZWFwLmNvbGxl
Y3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOwogfQogCi1kb3VibGUgRnVsbEdDQWN0aXZp
dHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKK1NlY29uZHMgRnVsbEdDQWN0aXZpdHlDYWxsYmFj
azo6bGFzdEdDTGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gbV92bS0+aGVhcC5sYXN0RnVsbEdDTGVu
Z3RoKCkuc2Vjb25kcygpOworICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RGdWxsR0NMZW5ndGgo
KTsKIH0KIAogZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCkBAIC04
NCwzMiArODIsNCBAQCBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uo
c2l6ZV90IGJ5dGVzKQogICAgIHJldHVybiBzdGQ6Om1pbigoc3RhdGljX2Nhc3Q8ZG91YmxlPihi
eXRlcykgLyBNQikgKiBPcHRpb25zOjpwZXJjZW50Q1BVUGVyTUJGb3JGdWxsVGltZXIoKSwgT3B0
aW9uczo6Y29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSgpKTsKIH0KIAotI2Vsc2UKLQotRnVs
bEdDQWN0aXZpdHlDYWxsYmFjazo6RnVsbEdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQot
ICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApCi17Ci19Ci0KLXZvaWQgRnVsbEdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKLXsKLX0KLQotZG91YmxlIEZ1bGxHQ0FjdGl2aXR5
Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBG
dWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQotewotICAgIHJldHVybiAwOwotfQot
Ci1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uoc2l6ZV90KQotewot
ICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLy8gVVNFKENGKSB8fCBVU0UoR0xJQikKLQogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxs
R0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNTEwNmVlNzk4Nzg5NGI5OTkyOTkwYWJhMTBmNjhh
MzkwMDllZmVlNi4uNDNkNTNiOGExZTMxODE2MGI1MWZjZmViNDZmZWViZmE2NzllMmQzZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFj
ay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJh
Y2suaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBGdWxsR0NBY3Rp
dml0eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CiAgICAgdm9pZCBzZXRE
aWRTeW5jR0NSZWNlbnRseSgpIHsgbV9kaWRTeW5jR0NSZWNlbnRseSA9IHRydWU7IH0KIAogcHJv
dGVjdGVkOgotICAgIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSBvdmVycmlkZTsKKyAgICBTZWNvbmRz
IGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1RpbWVTbGljZShzaXplX3Qg
Ynl0ZXMpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBkZWF0aFJhdGUoKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5k
ZXggMzgwZDkxYzdjMDZlMGM2Y2IxMWE5YzdmMGNhZDU5MGYwYjQ0NWI5OS4uMjE4NmE2ZTQ3NDQz
NDU2ZDNkOTdhM2IxY2M0YTAwZjJjYzMwNWJmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCkBAIC00MiwyMiArNDIsMTIgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIGJvb2wgR0NBY3Rpdml0eUNhbGxiYWNrOjpzX3Nob3VsZENyZWF0ZUdD
VGltZXIgPSB0cnVlOwogCi0jaWYgVVNFKENGKSB8fCBVU0UoR0xJQikKLQogY29uc3QgZG91Ymxl
IHRpbWVyU2xvcCA9IDIuMDsgLy8gRnVkZ2UgZmFjdG9yIHRvIGF2b2lkIHBlcmZvcm1hbmNlIGNv
c3Qgb2YgcmVzZXR0aW5nIHRpbWVyLgogCi0jaWYgVVNFKENGKQotR0NBY3Rpdml0eUNhbGxiYWNr
OjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxsYmFj
ayhoZWFwLT52bSgpKQotewotfQotI2VsaWYgVVNFKEdMSUIpCiBHQ0FjdGl2aXR5Q2FsbGJhY2s6
OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQogICAgIDogR0NBY3Rpdml0eUNhbGxiYWNr
KGhlYXAtPnZtKCkpCiB7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQo
KSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIHNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMpOwog
fQotI2VuZGlmCiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dvcmsoKQogewpAQCAtNjcs
NyArNTcsNyBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkKICAgICAKICAgICBK
U0xvY2tIb2xkZXIgbG9ja2VyKG1fdm0pOwogICAgIGlmIChoZWFwLT5pc0RlZmVycmVkKCkpIHsK
LSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsKKyAgICAgICAgc2NoZWR1bGVUaW1lcigwX3MpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NSw0MiArNjUsNDggQEAgdm9pZCBHQ0FjdGl2
aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB9CiAKICNpZiBVU0UoQ0YpCi12b2lkIEdDQWN0aXZpdHlD
YWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCit2b2lkIEdDQWN0aXZpdHlD
YWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIG5ld0RlbGF5KQogewogICAgIGlmIChuZXdE
ZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVybjsKLSAgICBkb3VibGUg
ZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBkZWx0YSA9IG1fZGVsYXkg
LSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAgbV9uZXh0RmlyZVRpbWUg
PSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5l
eHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJlRGF0ZSht
X3RpbWVyLmdldCgpKSAtIGRlbHRhKTsKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0
ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdl
dCgpKSAtIGRlbHRhLnNlY29uZHMoKSk7CiB9CiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpj
YW5jZWxUaW1lcigpCiB7CiAgICAgbV9kZWxheSA9IHNfZGVjYWRlOwotICAgIG1fbmV4dEZpcmVU
aW1lID0gMDsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgp
LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlKTsKKyAgICBDRlJ1bkxvb3BU
aW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJl
bnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSk7Cit9CisKK2RvdWJsZSBHQ0FjdGl2aXR5Q2FsbGJh
Y2s6Om5leHRGaXJlVGltZSgpCit7CisgICAgcmV0dXJuIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZp
cmVEYXRlKG1fdGltZXIuZ2V0KCkpOwogfQotI2VsaWYgVVNFKEdMSUIpCi12b2lkIEdDQWN0aXZp
dHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCisjZWxzZQordm9pZCBH
Q0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBuZXdEZWxheSkKIHsKLSAg
ICBBU1NFUlQobmV3RGVsYXkgPj0gMCk7CiAgICAgaWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4g
bV9kZWxheSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgZG91YmxlIGRlbHRhID0gbV9kZWxheSAt
IG5ld0RlbGF5OworICAgIFNlY29uZHMgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CiAgICAg
bV9kZWxheSA9IG5ld0RlbGF5OwotICAgIG1fbmV4dEZpcmVUaW1lID0gV1RGOjpjdXJyZW50VGlt
ZSgpICsgbmV3RGVsYXk7CiAKLSAgICBnaW50NjQgcmVhZHlUaW1lID0gZ19zb3VyY2VfZ2V0X3Jl
YWR5X3RpbWUobV90aW1lci5nZXQoKSk7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90
aW1lci5nZXQoKSwgcmVhZHlUaW1lIC0gZGVsdGEgKiBHX1VTRUNfUEVSX1NFQyk7CisgICAgU2Vj
b25kcyBzZWNvbmRzVW50aWxGaXJlID0gbV90aW1lci5zZWNvbmRzVW50aWxGaXJlKCk7CisgICAg
bV90aW1lci5zdGFydE9uZVNob3Qoc2Vjb25kc1VudGlsRmlyZSAtIGRlbHRhKTsKIH0KIAogdm9p
ZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbFRpbWVyKCkKIHsKICAgICBtX2RlbGF5ID0gc19k
ZWNhZGU7Ci0gICAgbV9uZXh0RmlyZVRpbWUgPSAwOwotICAgIGdfc291cmNlX3NldF9yZWFkeV90
aW1lKG1fdGltZXIuZ2V0KCksIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBzX2RlY2FkZSAqIEdf
VVNFQ19QRVJfU0VDKTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7Cit9CisK
K2RvdWJsZSBHQ0FjdGl2aXR5Q2FsbGJhY2s6Om5leHRGaXJlVGltZSgpCit7CisgICAgLy8gRklY
TUU6IFNob3VsZCByZXR1cm4gTW9ub3RvbmljVGltZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzI1CisgICAgcmV0dXJuIChNb25vdG9uaWM6Om5v
dygpICsgbV90aW1lci5zZWNvbmRzVW50aWxGaXJlKCkpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFs
dWUoKTsKIH0KICNlbmRpZgogCkBAIC0xMjEsNyArMTE3LDcgQEAgdm9pZCBHQ0FjdGl2aXR5Q2Fs
bGJhY2s6OmRpZEFsbG9jYXRlKHNpemVfdCBieXRlcykKICAgICBpZiAoIWJ5dGVzKQogICAgICAg
ICBieXRlcyA9IDE7CiAgICAgZG91YmxlIGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0gPSBzdGF0aWNf
Y2FzdDxkb3VibGU+KGJ5dGVzKSAqIGRlYXRoUmF0ZSgpOwotICAgIGRvdWJsZSBuZXdEZWxheSA9
IGxhc3RHQ0xlbmd0aCgpIC8gZ2NUaW1lU2xpY2UoYnl0ZXNFeHBlY3RlZFRvUmVjbGFpbSk7Cisg
ICAgU2Vjb25kcyBuZXdEZWxheSA9IGxhc3RHQ0xlbmd0aCgpIC8gZ2NUaW1lU2xpY2UoYnl0ZXNF
eHBlY3RlZFRvUmVjbGFpbSk7CiAgICAgc2NoZWR1bGVUaW1lcihuZXdEZWxheSk7CiB9CiAKQEAg
LTEzNSwzMCArMTMxLDUgQEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbCgpCiAgICAg
Y2FuY2VsVGltZXIoKTsKIH0KIAotI2Vsc2UKLQotR0NBY3Rpdml0eUNhbGxiYWNrOjpHQ0FjdGl2
aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxsYmFjayhoZWFwLT52
bSgpKQotewotfQotCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkKLXsKLX0KLQot
dm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRpZEFsbG9jYXRlKHNpemVfdCkKLXsKLX0KLQotdm9p
ZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OndpbGxDb2xsZWN0KCkKLXsKLX0KLQotdm9pZCBHQ0FjdGl2
aXR5Q2FsbGJhY2s6OmNhbmNlbCgpCi17Ci19Ci0KLSNlbmRpZgotCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggYWY0NzU4OGQ2
MDExOWFkOGRkNTE1ZDhmNGE1MGNmYzcyOTU4MTMxNC4uNzk1OWI4NDU4MmMyMmQ0NjIwN2QyMDI0
NTk3OTc5NGE0ZDMwY2ViMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
R0NBY3Rpdml0eUNhbGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NB
Y3Rpdml0eUNhbGxiYWNrLmgKQEAgLTYwLDQ4ICs2MCwyOCBAQCBjbGFzcyBKU19FWFBPUlRfUFJJ
VkFURSBHQ0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgSlNSdW5Mb29wVGltZXIgewogCiAgICAg
c3RhdGljIGJvb2wgc19zaG91bGRDcmVhdGVHQ1RpbWVyOwogCi0jaWYgVVNFKENGKSB8fCBVU0Uo
R0xJQikKLSAgICBkb3VibGUgbmV4dEZpcmVUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9uZXh0Rmly
ZVRpbWU7IH0KLSNlbmRpZgorICAgIEpTX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBuZXh0RmlyZVRp
bWUoKTsKIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgZG91YmxlIGxhc3RHQ0xlbmd0aCgpID0g
MDsKKyAgICB2aXJ0dWFsIFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgPSAwOwogICAgIHZpcnR1YWwg
ZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgPSAwOwogICAgIHZpcnR1YWwgZG91Ymxl
IGRlYXRoUmF0ZSgpID0gMDsKIAotI2lmIFVTRShDRikKLSAgICBHQ0FjdGl2aXR5Q2FsbGJhY2so
Vk0qIHZtKQotICAgICAgICA6IEJhc2Uodm0pCi0gICAgICAgICwgbV9lbmFibGVkKHRydWUpCi0g
ICAgICAgICwgbV9kZWxheShzX2RlY2FkZSkKLSAgICB7Ci0gICAgfQotI2VsaWYgVVNFKEdMSUIp
CiAgICAgR0NBY3Rpdml0eUNhbGxiYWNrKFZNKiB2bSkKICAgICAgICAgOiBCYXNlKHZtKQogICAg
ICAgICAsIG1fZW5hYmxlZCh0cnVlKQogICAgICAgICAsIG1fZGVsYXkoc19kZWNhZGUpCiAgICAg
ewogICAgIH0KLSNlbHNlCi0gICAgR0NBY3Rpdml0eUNhbGxiYWNrKFZNKiB2bSkKLSAgICAgICAg
OiBCYXNlKHZtKQotICAgICAgICAsIG1fZW5hYmxlZCh0cnVlKQotICAgIHsKLSAgICB9Ci0jZW5k
aWYKIAogICAgIGJvb2wgbV9lbmFibGVkOwogCi0jaWYgVVNFKENGKSB8fCBVU0UoR0xJQikKIHBy
b3RlY3RlZDoKICAgICB2b2lkIGNhbmNlbFRpbWVyKCk7Ci0gICAgdm9pZCBzY2hlZHVsZVRpbWVy
KGRvdWJsZSk7CisgICAgdm9pZCBzY2hlZHVsZVRpbWVyKFNlY29uZHMpOwogCiBwcml2YXRlOgot
ICAgIGRvdWJsZSBtX2RlbGF5OwotICAgIGRvdWJsZSBtX25leHRGaXJlVGltZSB7IDAgfTsKLSNl
bmRpZgorICAgIFNlY29uZHMgbV9kZWxheTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKaW5k
ZXggOGNiZmE5ZTgwNDBkYzYxZWZiMDE5YjIxNDU1NDQ1NWUyZmE4MzFiNi4uMjliZDRiMmE1YWQ2
MjRmOTM2ZjVkNzA2ODk1OGVjODY5ODkxMDFiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1zdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVNsaWNlID0gLjAx
OyAvLyBzZWNvbmRzCitzdGF0aWMgY29uc3QgU2Vjb25kcyBzd2VlcFRpbWVTbGljZSA9IDEwX21z
OyAvLyBzZWNvbmRzCiBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGltZVRvdGFsID0gLjEwOwog
c3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVNdWx0aXBsaWVyID0gMS4wIC8gc3dlZXBUaW1l
VG90YWw7CiAKQEAgLTUyLDEzICs1MiwxMyBAQCBJbmNyZW1lbnRhbFN3ZWVwZXI6OkluY3JlbWVu
dGFsU3dlZXBlcihIZWFwKiBoZWFwKQogCiB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3Jr
KCkKIHsKLSAgICBkb1N3ZWVwKFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwor
ICAgIGRvU3dlZXAoTW9ub3RvbmljVGltZTo6bm93KCkpOwogfQogCi12b2lkIEluY3JlbWVudGFs
U3dlZXBlcjo6ZG9Td2VlcChkb3VibGUgc3dlZXBCZWdpblRpbWUpCit2b2lkIEluY3JlbWVudGFs
U3dlZXBlcjo6ZG9Td2VlcChNb25vdG9uaWNUaW1lIHN3ZWVwQmVnaW5UaW1lKQogewogICAgIHdo
aWxlIChzd2VlcE5leHRCbG9jaygpKSB7Ci0gICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZSA9IFdU
Rjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBzd2VlcEJlZ2luVGltZTsKKyAgICAg
ICAgU2Vjb25kcyBlbGFwc2VkVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3dlZXBCZWdp
blRpbWU7CiAgICAgICAgIGlmIChlbGFwc2VkVGltZSA8IHN3ZWVwVGltZVNsaWNlKQogICAgICAg
ICAgICAgY29udGludWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0luY3JlbWVudGFsU3dlZXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVt
ZW50YWxTd2VlcGVyLmgKaW5kZXggNzZkNDU0ZjNjMDRiMzFiZDExNGI4MDcxNDNlNGQxZTE1YTRl
NWJjNS4uNDg4MzRiMTNiYzVjNjNhOWE4YWY4MmViNzM0YzFlMWIxYTYzNDU4OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgY2xhc3MgSW5jcmVtZW50YWxTd2VlcGVyIDogcHVibGljIEpTUnVuTG9vcFRpbWVy
IHsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN0b3BTd2VlcGluZygpOwogCiBwcml2YXRl
OgotICAgIHZvaWQgZG9Td2VlcChkb3VibGUgc3RhcnRUaW1lKTsKKyAgICB2b2lkIGRvU3dlZXAo
TW9ub3RvbmljVGltZSBzdGFydFRpbWUpOwogICAgIHZvaWQgc2NoZWR1bGVUaW1lcigpOwogICAg
IAogICAgIE1hcmtlZEFsbG9jYXRvciogbV9jdXJyZW50QWxsb2NhdG9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCmluZGV4IDk0
MGQzOWRlMjRhY2ZkMzJkOTZhNGFjMjFlZDJjMmE1MzE3YzIxY2QuLjYyMzk2MTA5NDQ3ZjY0Y2Q2
ZWRmY2YyYThmOWQ5YTYzNWNkYjEzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBT
dG9wSWZOZWNlc3NhcnlUaW1lcjo6c2NoZWR1bGVTb29uKCkKICAgICAgICAgV1RGOjpsb2FkTG9h
ZEZlbmNlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgc2NoZWR1bGVUaW1lcigwKTsK
KyAgICBzY2hlZHVsZVRpbWVyKDBfcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCmluZGV4IGZk
NzlkNTk4MDRhN2Y0ODJlZGY5NDc4N2VlZGRhNzQ4YmRmZDJmOTMuLjRjMzEzOTE1MjUxMGQ0YWJi
MWM1NmY4Yzk4NGU4NjhmYmJjZjRjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAKQEAgLTQyLDYgKzQyLDggQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKK2NvbnN0IFNlY29uZHMgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlIHsgNjAgKiA2
MCAqIDI0ICogMzY1ICogMTAgfTsKKwogdm9pZCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJl
KCkKIHsKICAgICBtX2FwaUxvY2stPmxvY2soKTsKQEAgLTYzLDggKzY1LDYgQEAgdm9pZCBKU1J1
bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKCkKIAogI2lmIFVTRShDRikKIAotY29uc3QgQ0ZUaW1l
SW50ZXJ2YWwgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlID0gNjAgKiA2MCAqIDI0ICogMzY1ICog
MTA7Ci0KIEpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCiAgICAgOiBtX3Zt
KHZtKQogICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQpAQCAtODUsNyArODUsNyBAQCB2
b2lkIEpTUnVuTG9vcFRpbWVyOjpzZXRSdW5Mb29wKENGUnVuTG9vcFJlZiBydW5Mb29wKQogICAg
ICAgICBtX3J1bkxvb3AgPSBydW5Mb29wOwogICAgICAgICBtZW1zZXQoJm1fY29udGV4dCwgMCwg
c2l6ZW9mKENGUnVuTG9vcFRpbWVyQ29udGV4dCkpOwogICAgICAgICBtX2NvbnRleHQuaW5mbyA9
IHRoaXM7Ci0gICAgICAgIG1fdGltZXIgPSBhZG9wdENGKENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUs
IHNfZGVjYWRlLCAwLCAwLCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2ssICZt
X2NvbnRleHQpKTsKKyAgICAgICAgbV90aW1lciA9IGFkb3B0Q0YoQ0ZSdW5Mb29wVGltZXJDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2Rl
Y2FkZS5zZWNvbmRzKCksIHNfZGVjYWRlLnNlY29uZHMoKSwgMCwgMCwgSlNSdW5Mb29wVGltZXI6
OnRpbWVyRGlkRmlyZUNhbGxiYWNrLCAmbV9jb250ZXh0KSk7CiAgICAgICAgIENGUnVuTG9vcEFk
ZFRpbWVyKG1fcnVuTG9vcC5nZXQoKSwgbV90aW1lci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1v
ZGVzKTsKICAgICB9CiB9CkBAIC0xMDAsODUgKzEwMCw0MyBAQCB2b2lkIEpTUnVuTG9vcFRpbWVy
Ojp0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCogY29udGV4dFB0
cikKICAgICBzdGF0aWNfY2FzdDxKU1J1bkxvb3BUaW1lcio+KGNvbnRleHRQdHIpLT50aW1lckRp
ZEZpcmUoKTsKIH0KIAotdm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVUaW1lcihkb3VibGUg
aW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKFNl
Y29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCiB7Ci0gICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0Rmly
ZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBpbnRlcnZh
bEluU2Vjb25kcyk7CisgICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5n
ZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBpbnRlcnZhbEluU2Vjb25kcy5zZWNv
bmRzKCkpOwogICAgIG1faXNTY2hlZHVsZWQgPSB0cnVlOwogfQogCiB2b2lkIEpTUnVuTG9vcFRp
bWVyOjpjYW5jZWxUaW1lcigpCiB7Ci0gICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUo
bV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZSk7Cisg
ICAgQ0ZSdW5Mb29wVGltZXJTZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQoKSwgQ0ZBYnNvbHV0
ZVRpbWVHZXRDdXJyZW50KCkgKyBzX2RlY2FkZS5zZWNvbmRzKCkpOwogICAgIG1faXNTY2hlZHVs
ZWQgPSBmYWxzZTsKIH0KIAotI2VsaWYgVVNFKEdMSUIpCi0KLWNvbnN0IGxvbmcgSlNSdW5Mb29w
VGltZXI6OnNfZGVjYWRlID0gNjAgKiA2MCAqIDI0ICogMzY1ICogMTA7Ci0KLXN0YXRpYyBHU291
cmNlRnVuY3MgSlNSdW5Mb29wVGltZXJTb3VyY2VGdW5jdGlvbnMgPSB7Ci0gICAgbnVsbHB0ciwg
Ly8gcHJlcGFyZQotICAgIG51bGxwdHIsIC8vIGNoZWNrCi0gICAgLy8gZGlzcGF0Y2gKLSAgICBb
XShHU291cmNlKiwgR1NvdXJjZUZ1bmMgY2FsbGJhY2ssIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBn
Ym9vbGVhbgotICAgIHsKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHVzZXJEYXRhKTsKLSAgICB9
LAotICAgIG51bGxwdHIsIC8vIGZpbmFsaXplCi0gICAgbnVsbHB0ciwgLy8gY2xvc3VyZV9jYWxs
YmFjawotICAgIG51bGxwdHIsIC8vIGNsb3N1cmVfbWFyc2hhbGwKLX07CisjZWxzZQogCiBKU1J1
bkxvb3BUaW1lcjo6SlNSdW5Mb29wVGltZXIoVk0qIHZtKQogICAgIDogbV92bSh2bSkKICAgICAs
IG1fYXBpTG9jaygmdm0tPmFwaUxvY2soKSkKLSAgICAsIG1fdGltZXIoYWRvcHRHUmVmKGdfc291
cmNlX25ldygmSlNSdW5Mb29wVGltZXJTb3VyY2VGdW5jdGlvbnMsIHNpemVvZihHU291cmNlKSkp
KQorICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZKU1J1bkxvb3BUaW1l
cjo6dGltZXJEaWRGaXJlQ2FsbGJhY2spCiB7Ci0gICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1f
dGltZXIuZ2V0KCksIFJ1bkxvb3BTb3VyY2VQcmlvcml0eTo6SmF2YXNjcmlwdFRpbWVyKTsKLSAg
ICBnX3NvdXJjZV9zZXRfbmFtZShtX3RpbWVyLmdldCgpLCAiW0phdmFTY3JpcHRDb3JlXSBKU1J1
bkxvb3BUaW1lciIpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyLmdldCgpLCBb
XShncG9pbnRlciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4gewotICAgICAgICBhdXRvJiBydW5Mb29w
VGltZXIgPSAqc3RhdGljX2Nhc3Q8SlNSdW5Mb29wVGltZXIqPih1c2VyRGF0YSk7Ci0gICAgICAg
IGdfc291cmNlX3NldF9yZWFkeV90aW1lKHJ1bkxvb3BUaW1lci5tX3RpbWVyLmdldCgpLCBnX2dl
dF9tb25vdG9uaWNfdGltZSgpICsgSlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlICogR19VU0VDX1BF
Ul9TRUMpOwotICAgICAgICBydW5Mb29wVGltZXIudGltZXJEaWRGaXJlKCk7Ci0gICAgICAgIHJl
dHVybiBHX1NPVVJDRV9DT05USU5VRTsKLSAgICB9LCB0aGlzLCBudWxscHRyKTsKLSAgICBnX3Nv
dXJjZV9hdHRhY2gobV90aW1lci5nZXQoKSwgZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZh
dWx0KCkpOworI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCisgICAgbV90aW1lci5zZXRQcmlvcml0
eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OkphdmFzY3JpcHRUaW1lcik7CisgICAgbV90aW1lci5z
ZXROYW1lKCJbSmF2YVNjcmlwdENvcmVdIEpTUnVuTG9vcFRpbWVyIik7CisjZW5kaWYKKyAgICBt
X3RpbWVyLnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7CiB9CiAKIEpTUnVuTG9vcFRpbWVyOjp+SlNS
dW5Mb29wVGltZXIoKQogewotICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lci5nZXQoKSk7Ci19
Ci0KLXZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoZG91YmxlIGludGVydmFsSW5T
ZWNvbmRzKQotewotICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fdGltZXIuZ2V0KCksIGdf
Z2V0X21vbm90b25pY190aW1lKCkgKyBpbnRlcnZhbEluU2Vjb25kcyAqIEdfVVNFQ19QRVJfU0VD
KTsKLSAgICBtX2lzU2NoZWR1bGVkID0gdHJ1ZTsKLX0KLQotdm9pZCBKU1J1bkxvb3BUaW1lcjo6
Y2FuY2VsVGltZXIoKQotewotICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fdGltZXIuZ2V0
KCksIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBzX2RlY2FkZSAqIEdfVVNFQ19QRVJfU0VDKTsK
LSAgICBtX2lzU2NoZWR1bGVkID0gZmFsc2U7CiB9CiAKLSNlbHNlCi0KLWNvbnN0IFNlY29uZHMg
SlNSdW5Mb29wVGltZXI6OnNfZGVjYWRlIHsgNjAgKiA2MCAqIDI0ICogMzY1ICogMTAgfTsKLQot
SlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVyKFZNKiB2bSkKLSAgICA6IG1fdm0odm0pCi0g
ICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkpCi0gICAgLCBtX3RpbWVyKFJ1bkxvb3A6OmN1
cnJlbnQoKSwgdGhpcywgJkpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmUpCi17Ci0gICAgbV90
aW1lci5zdGFydE9uZVNob3Qoc19kZWNhZGUpOwotfQotCi1KU1J1bkxvb3BUaW1lcjo6fkpTUnVu
TG9vcFRpbWVyKCkKK3ZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNrKCkK
IHsKKyAgICBjYW5jZWxUaW1lcigpOworICAgIHRpbWVyRGlkRmlyZSgpOwogfQogCi12b2lkIEpT
UnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcykKK3Zv
aWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbEluU2Vjb25k
cykKIHsKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAg
bV9pc1NjaGVkdWxlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1J1bkxvb3BUaW1lci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNSdW5Mb29wVGltZXIuaAppbmRleCAwMGYzZTZiYmNjZWM1ODdmZDk5ZTk4ZWQxNjA1M2ZkNjU3
NzU5ODA2Li5kOGVjZTkyMDc5M2ZjMzAzMzFkYzhmYWNkNTE5ZmJlNzZjOTZhOWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKQEAgLTM2LDEw
ICszNiw2IEBACiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KICNl
bmRpZgogCi0jaWYgVVNFKEdMSUIpCi0jaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBKU0xvY2s7CkBAIC01MCwxMiArNDYsMTQg
QEAgY2xhc3MgSlNSdW5Mb29wVGltZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SlNS
dW5Mb29wVGltZXI+IHsKICAgICBKU1J1bkxvb3BUaW1lcihWTSopOwogI2lmIFVTRShDRikKICAg
ICBzdGF0aWMgdm9pZCB0aW1lckRpZEZpcmVDYWxsYmFjayhDRlJ1bkxvb3BUaW1lclJlZiwgdm9p
ZCopOworI2Vsc2UKKyAgICB2b2lkIHRpbWVyRGlkRmlyZUNhbGxiYWNrKCk7CiAjZW5kaWYKIAog
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZpcnR1YWwgfkpTUnVuTG9vcFRpbWVyKCk7CiAgICAgdmly
dHVhbCB2b2lkIGRvV29yaygpID0gMDsKIAotICAgIHZvaWQgc2NoZWR1bGVUaW1lcihkb3VibGUg
aW50ZXJ2YWxJblNlY29uZHMpOworICAgIHZvaWQgc2NoZWR1bGVUaW1lcihTZWNvbmRzIGludGVy
dmFsSW5TZWNvbmRzKTsKICAgICB2b2lkIGNhbmNlbFRpbWVyKCk7CiAgICAgYm9vbCBpc1NjaGVk
dWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTY2hlZHVsZWQ7IH0KIApAQCAtNjYsMjIgKzY0LDE4
IEBAIGNsYXNzIEpTUnVuTG9vcFRpbWVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEpT
UnVuTG9vcFRpbWVyPiB7CiBwcm90ZWN0ZWQ6CiAgICAgVk0qIG1fdm07CiAKKyAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBzX2RlY2FkZTsKKwogICAgIFJlZlB0cjxKU0xvY2s+IG1fYXBpTG9jazsK
ICAgICBib29sIG1faXNTY2hlZHVsZWQgeyBmYWxzZSB9OwogI2lmIFVTRShDRikKLSAgICBzdGF0
aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgc19kZWNhZGU7Ci0KICAgICBSZXRhaW5QdHI8Q0ZSdW5M
b29wVGltZXJSZWY+IG1fdGltZXI7CiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFJlZj4gbV9ydW5M
b29wOwogCiAgICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IG1fY29udGV4dDsKIAogICAgIExvY2sg
bV9zaHV0ZG93bk11dGV4OwotI2VsaWYgVVNFKEdMSUIpCi0gICAgc3RhdGljIGNvbnN0IGxvbmcg
c19kZWNhZGU7Ci0gICAgR1JlZlB0cjxHU291cmNlPiBtX3RpbWVyOwogI2Vsc2UKLSAgICBzdGF0
aWMgY29uc3QgU2Vjb25kcyBzX2RlY2FkZTsKICAgICBSdW5Mb29wOjpUaW1lcjxKU1J1bkxvb3BU
aW1lcj4gbV90aW1lcjsKICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCmluZGV4IDEwNDVlNDY2YWEz
NjFhNGE2NGEyOWNmMGU5NDM2ZTM0NTRjYzkyZTEuLjNkY2FlYWFmZTViMzhmYmE1YmE4YWY5NzY2
MGY1MWJjNjU5ZmQyNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5jcHAKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lkIFBy
b21pc2VEZWZlcnJlZFRpbWVyOjpzY2hlZHVsZVdvcmtTb29uKEpTUHJvbWlzZURlZmVycmVkKiB0
aWNrZXQsIFRhc2smJiB0YQogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fdGFza0xvY2spOwogICAg
IG1fdGFza3MuYXBwZW5kKHN0ZDo6bWFrZV90dXBsZSh0aWNrZXQsIFdURk1vdmUodGFzaykpKTsK
ICAgICBpZiAoIWlzU2NoZWR1bGVkKCkgJiYgIW1fY3VycmVudGx5UnVubmluZ1Rhc2spCi0gICAg
ICAgIHNjaGVkdWxlVGltZXIoMCk7CisgICAgICAgIHNjaGVkdWxlVGltZXIoMF9zKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKaW5kZXggOTJjYzE1MGZkZDI5OTUwNDk1MjIyMmQw
ODI2ODM3ZjRiYmRiMjAzNi4uM2QwNmMzZWI4OTMwMGQ2MGZhMDgzNjRiZGVlY2Q2ZjA5ZThiYTg5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1J1bkxvb3AuaApAQCAtOTMsMTAgKzkzLDEyIEBAIGNsYXNzIFJ1bkxvb3AgOiBwdWJsaWMg
RnVuY3Rpb25EaXNwYXRjaGVyIHsKIAogICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
dG9wKCk7CiAgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzQWN0aXZlKCkgY29uc3Q7
CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSBTZWNvbmRzIHNlY29uZHNVbnRpbEZpcmUoKSBj
b25zdDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CiAKICNpZiBVU0UoR0xJ
Ql9FVkVOVF9MT09QKQorICAgICAgICB2b2lkIHNldE5hbWUoY29uc3QgY2hhciopOwogICAgICAg
ICB2b2lkIHNldFByaW9yaXR5KGludCk7CiAjZW5kaWYKIApAQCAtMTA2LDggKzEwOCwxMSBAQCBj
bGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAgICAgICAgIFJlZjxS
dW5Mb29wPiBtX3J1bkxvb3A7CiAKICNpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQorICAgICAg
ICBib29sIGlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3Q7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsKICAgICAgICAgdWlu
dDY0X3QgbV9JRDsKKyAgICAgICAgTW9ub3RvbmljVGltZSBtX25leHRGaXJlRGF0ZTsKKyAgICAg
ICAgU2Vjb25kcyBtX2ludGVydmFsOwogICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7CiAjZWxp
ZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKICAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChD
RlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY2Yv
UnVuTG9vcENGLmNwcCBiL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAKaW5kZXggNDFm
OGY5NTc1YzY4MzAyZjM4NjJkYzIyM2ZlNTQyN2E4YWUyNDQxNi4uNWU0YzgwNTdlOTEzNTQ3NTg5
MmQwNGUxNjY1NTQxYmI5MjQ1Mjg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2YvUnVu
TG9vcENGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCkBAIC0xMTks
NCArMTE5LDExIEBAIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIuZ2V0KCkp
OwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNv
bnN0Cit7CisgICAgaWYgKGlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1heDxTZWNv
bmRzPihTZWNvbmRzIHsgQ0ZSdW5Mb29wVGltZXJHZXROZXh0RmlyZURhdGUobV90aW1lci5nZXQo
KSkgLSBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSB9LCAwX3MpOworICAgIHJldHVybiAwX3M7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2Vu
ZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BH
ZW5lcmljLmNwcAppbmRleCAxM2UyNzE0YzI5ZDQ5YmU1NGNkNmM4YzM0NmU4Yzc2Yzc1ZTkyNGVi
Li5hNTY4MGUyMjg1MzVlNGVlMWMxMmMxN2IyMjJjMjg0MjMyNzA3M2FmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9nZW5lcmljL1J1bkxvb3BHZW5lcmljLmNwcApAQCAtMjkzLDQgKzI5MywxMiBAQCBib29s
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBjb25z
dAogICAgIHJldHVybiBtX3NjaGVkdWxlZFRhc2s7CiB9CiAKK1NlY29uZHMgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX3J1bkxvb3AtPm1fbG9vcExvY2spOworICAgIGlmIChpc0FjdGl2ZShsb2NrZXIpKQorICAg
ICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9zY2hlZHVsZWRUYXNrLT5zY2hlZHVsZWRU
aW1lUG9pbnQoKSAtIE1vbm90b25pY1RpbWU6Om5vdygpLCAwX3MpOworICAgIHJldHVybiAwX3M7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xp
Yi9SdW5Mb29wR0xpYi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BHTGliLmNwcApp
bmRleCBhM2I5M2M0YTI2YjhhNjRhY2Y0YjZmNjk1MGE2MzVjN2QwYjA1Y2VkLi5jZWI0OWIzMDEy
MWU1YTMxZDA4NWRmOTU3NGI0MDExYjUwYmM1ZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9nbGliL1J1bkxvb3BHTGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BH
TGliLmNwcApAQCAtMTc2LDYgKzE3NiwxMSBAQCBSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJh
c2UoKQogICAgIGdfc291cmNlX2Rlc3Ryb3kobV9zb3VyY2UuZ2V0KCkpOwogfQogCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZShjb25zdCBjaGFyKiBuYW1lKQoreworICAgIGdfc291
cmNlX3NldF9uYW1lKG1fc291cmNlLmdldCgpLCBuYW1lKTsKK30KKwogdm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnNldFByaW9yaXR5KGludCBwcmlvcml0eSkKIHsKICAgICBnX3NvdXJjZV9zZXRf
cHJpb3JpdHkobV9zb3VyY2UuZ2V0KCksIHByaW9yaXR5KTsKQEAgLTIxMSw0ICsyMTYsOSBAQCBi
b29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiBnX3Nv
dXJjZV9nZXRfcmVhZHlfdGltZShtX3NvdXJjZS5nZXQoKSkgIT0gLTE7CiB9CiAKK1NlY29uZHMg
UnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxGaXJlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gc3RkOjptYXg8U2Vjb25kcz4oU2Vjb25kczo6ZnJvbU1pY3Jvc2Vjb25kcyhnX3NvdXJjZV9n
ZXRfcmVhZHlfdGltZShtX3NvdXJjZS5nZXQoKSkgLSBnX2dldF9tb25vdG9uaWNfdGltZSgpKSwg
MF9zKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAK
aW5kZXggODc0NmIxZWVhMDM4MTQ1ZGZlODQ4ODk5ZTU0NTM2YTM3YzhkZWI0Zi4uM2U0YzRjZWEx
NzVjNjMxMmNlNDhiODliNDhiMjMzZTk0ODc4MjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvd2luL1J1bkxvb3BXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2lu
LmNwcApAQCAtMTMxLDcgKzEzMSw4IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZp
cmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElEKQogICAgICAgICBpZiAoIXRpbWVyLT5t
X2lzUmVwZWF0aW5nKSB7CiAgICAgICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1v
dmUoaXQpOwogICAgICAgICAgICAgOjpLaWxsVGltZXIocnVuTG9vcC0+bV9ydW5Mb29wTWVzc2Fn
ZVdpbmRvdywgSUQpOwotICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9u
ZXh0RmlyZURhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIG1faW50ZXJ2YWw7CiAgICAgfQog
CiAgICAgdGltZXItPmZpcmVkKCk7CkBAIC0xNjAsNiArMTYxLDggQEAgdm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzTG9jayk7CiAgICAg
bV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKICAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNl
dChtX0lELCB0aGlzKTsKKyAgICBtX2ludGVydmFsID0gU2Vjb25kcyhuZXh0RmlyZUludGVydmFs
KTsKKyAgICBtX25leHRGaXJlRGF0ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpICsgbV9pbnRlcnZh
bDsKICAgICA6OlNldFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9J
RCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAsIDApOwogfQogCkBAIC0xNzQsMTAgKzE3NywyNCBA
QCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCiAgICAgOjpLaWxsVGltZXIobV9ydW5M
b29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKIH0KIAorYm9vbCBSdW5Mb29wOjpU
aW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKK30KKwogYm9v
bCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKIHsKICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzTG9jayk7Ci0gICAgcmV0dXJuIG1fcnVu
TG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7CisgICAgcmV0dXJuIGlzQWN0aXZl
KGxvY2tlcik7CiB9CiAKK1NlY29uZHMgUnVuTG9vcDo6VGltZXJCYXNlOjpzZWNvbmRzVW50aWxG
aXJlKCkgY29uc3QKK3sKKyAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3J1bkxvb3AtPm1fYWN0aXZl
VGltZXJzTG9jayk7CisgICAgaWYgKGlzQWN0aXZlKGxvY2tlcikpCisgICAgICAgIHJldHVybiBz
dGQ6Om1heDxTZWNvbmRzPihtX25leHRGaXJlRGF0ZSAtIE1vbm90b25pY1RpbWU6Om5vdygpLCAw
X3MpOworICAgIHJldHVybiAwX3M7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV1RGCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306803</attachid>
            <date>2017-04-11 04:40:19 -0700</date>
            <delta_ts>2017-04-11 05:22:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411204018.patch</filename>
            <type>text/plain</type>
            <size>27812</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li45YWFmNjdmYWM1ODg1OGUy
M2QwNWY2ODVjODI3ZjgzYTBlNmU1OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0OSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6bmV4dEZpcmVUaW1lKToK
KyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZSk6CisgICAgICAg
ICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3JrKToK
KyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKToKKyAgICAgICAgKiBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAgICAqIGhlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuY3BwOgorICAgICAgICAoSlNDOjpTdG9wSWZOZWNlc3NhcnlUaW1lcjo6c2NoZWR1bGVT
b29uKToKKyAgICAgICAgKiBydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3ApOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BU
aW1lcjo6c2NoZWR1bGVUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpjYW5j
ZWxUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcik6
CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIpOgorICAgICAg
ICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2spOgorICAgICAgICAq
IHJ1bnRpbWUvSlNSdW5Mb29wVGltZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb21pc2VEZWZl
cnJlZFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvbWlzZURlZmVycmVkVGltZXI6OnNjaGVk
dWxlV29ya1Nvb24pOgorCisyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxvb3BUaW1lciBmb3IgSlND
T25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2E4MDQyZDVjYzIwNGFlNzUyZmIxYzk5MDVhMmQ4M2Ez
YzhlM2Y5MS4uZTY1MTBiYzAwMjQwNjVjMjNjNGFhZTJkMTg0NTQ4ZTk1MGQwMThhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsg
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcw
NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHNlY29uZHNVbnRpbEZpcmUgbWV0aG9kLiBBbmQgYWRkIHNldE5hbWUgYW5kIHNldFByaW9yaXR5
CisgICAgICAgIGZvciBHVEsgUnVuTG9vcDo6VGltZXIuCisKKyAgICAgICAgKiB3dGYvUnVuTG9v
cC5oOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAgICAqIHd0Zi9nZW5lcmlj
L1J1bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpz
ZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZSk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6CisgICAgICAgICogd3RmL3dp
bi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1l
ckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorCisyMDE3LTA0LTExICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJs
ZSBKU1J1bkxvb3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5kZXgg
MDdlNmM3YTNmMDg1NzZlMTQzN2YyODFlNTM3NWVjMzYwYzNjZDhlNy4uYjZiZGUzZGQxN2Y4NWQ0
MGMyOTdjZDM2ZDQ3NzEwN2VmMGZkNWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMxLDggKzMxLDYgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCiAgICAg
OiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKIHsKQEAgLTQzLDkgKzQxLDkgQEAgdm9pZCBFZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIG1fdm0tPmhlYXAuY29sbGVj
dEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RWRlbik7CiB9CiAKLWRvdWJsZSBFZGVuR0NBY3Rpdml0
eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
OjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RFZGVuR0NMZW5n
dGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEVkZW5HQ0xlbmd0aCgp
OwogfQogCiBkb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKQEAgLTY5
LDMyICs2Nyw0IEBAIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShz
aXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNfY2FzdDxkb3VibGU+KGJ5
dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckVkZW5UaW1lcigpLCBPcHRp
b25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQogCi0jZWxzZQotCi1FZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0g
ICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0KLQotdm9pZCBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1kb3VibGUgRWRlbkdDQWN0
aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotZG91
YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShzaXplX3Qp
Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0YpIHx8IFVTRShHTElCKQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBjYzRlOTNmY2I5ZjMwMzljYTYzNTAyNTg2
YmFkODc5ZjhhYjU4OTM0Li44NzQ4MmJkZmIzMDE4NmMwMTZiMWE2YTg0Y2JhZWQ5OTI3MDlmYzk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNh
bGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlD
YWxsYmFjay5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5H
Q0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKICAgICB2b2lk
IGRvQ29sbGVjdGlvbigpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZG91YmxlIGxhc3RH
Q0xlbmd0aCgpIG92ZXJyaWRlOworICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7
CiAgICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3ZlcnJpZGU7CiAgICAgZG91
YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5kZXggZTU3ZGQzYTFjNzk3
MTBmMTI1ODZhOTAzODcxN2FkZDRkYjY2MTM5ZC4uYTcxYzc2NjI0MGQwZjQ1YjRiMTNhYWE2Yjdj
NjUzMDZiNGQ0Mzc4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMwLDggKzMwLDYgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiAjaWYgIVBMQVRGT1JNKElPUykK
IGNvbnN0IGRvdWJsZSBwYWdpbmdUaW1lT3V0ID0gMC4xOyAvLyBUaW1lIGluIHNlY29uZHMgdG8g
YWxsb3cgb3Bwb3J0dW5pc3RpYyB0aW1lciB0byBpdGVyYXRlIG92ZXIgYWxsIGJsb2NrcyB0byBz
ZWUgaWYgdGhlIEhlYXAgaXMgcGFnZWQgb3V0LgogI2VuZGlmCkBAIC01OCw5ICs1Niw5IEBAIHZv
aWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKICAgICBoZWFwLmNvbGxl
Y3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOwogfQogCi1kb3VibGUgRnVsbEdDQWN0aXZp
dHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKK1NlY29uZHMgRnVsbEdDQWN0aXZpdHlDYWxsYmFj
azo6bGFzdEdDTGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gbV92bS0+aGVhcC5sYXN0RnVsbEdDTGVu
Z3RoKCkuc2Vjb25kcygpOworICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RGdWxsR0NMZW5ndGgo
KTsKIH0KIAogZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCkBAIC04
NCwzMiArODIsNCBAQCBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uo
c2l6ZV90IGJ5dGVzKQogICAgIHJldHVybiBzdGQ6Om1pbigoc3RhdGljX2Nhc3Q8ZG91YmxlPihi
eXRlcykgLyBNQikgKiBPcHRpb25zOjpwZXJjZW50Q1BVUGVyTUJGb3JGdWxsVGltZXIoKSwgT3B0
aW9uczo6Y29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSgpKTsKIH0KIAotI2Vsc2UKLQotRnVs
bEdDQWN0aXZpdHlDYWxsYmFjazo6RnVsbEdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQot
ICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApCi17Ci19Ci0KLXZvaWQgRnVsbEdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKLXsKLX0KLQotZG91YmxlIEZ1bGxHQ0FjdGl2aXR5
Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBG
dWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQotewotICAgIHJldHVybiAwOwotfQot
Ci1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uoc2l6ZV90KQotewot
ICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLy8gVVNFKENGKSB8fCBVU0UoR0xJQikKLQogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxs
R0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNTEwNmVlNzk4Nzg5NGI5OTkyOTkwYWJhMTBmNjhh
MzkwMDllZmVlNi4uNDNkNTNiOGExZTMxODE2MGI1MWZjZmViNDZmZWViZmE2NzllMmQzZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFj
ay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJh
Y2suaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBGdWxsR0NBY3Rp
dml0eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CiAgICAgdm9pZCBzZXRE
aWRTeW5jR0NSZWNlbnRseSgpIHsgbV9kaWRTeW5jR0NSZWNlbnRseSA9IHRydWU7IH0KIAogcHJv
dGVjdGVkOgotICAgIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSBvdmVycmlkZTsKKyAgICBTZWNvbmRz
IGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1RpbWVTbGljZShzaXplX3Qg
Ynl0ZXMpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBkZWF0aFJhdGUoKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5k
ZXggMzgwZDkxYzdjMDZlMGM2Y2IxMWE5YzdmMGNhZDU5MGYwYjQ0NWI5OS4uZTZmZDIzODY1YzQ0
NWRkNjEyNjFiYjdjNTNhM2JlYTg4OGRiOTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCkBAIC00MiwyMiArNDIsMTIgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIGJvb2wgR0NBY3Rpdml0eUNhbGxiYWNrOjpzX3Nob3VsZENyZWF0ZUdD
VGltZXIgPSB0cnVlOwogCi0jaWYgVVNFKENGKSB8fCBVU0UoR0xJQikKLQogY29uc3QgZG91Ymxl
IHRpbWVyU2xvcCA9IDIuMDsgLy8gRnVkZ2UgZmFjdG9yIHRvIGF2b2lkIHBlcmZvcm1hbmNlIGNv
c3Qgb2YgcmVzZXR0aW5nIHRpbWVyLgogCi0jaWYgVVNFKENGKQotR0NBY3Rpdml0eUNhbGxiYWNr
OjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxsYmFj
ayhoZWFwLT52bSgpKQotewotfQotI2VsaWYgVVNFKEdMSUIpCiBHQ0FjdGl2aXR5Q2FsbGJhY2s6
OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQogICAgIDogR0NBY3Rpdml0eUNhbGxiYWNr
KGhlYXAtPnZtKCkpCiB7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQo
KSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIHNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMpOwog
fQotI2VuZGlmCiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dvcmsoKQogewpAQCAtNjcs
NyArNTcsNyBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkKICAgICAKICAgICBK
U0xvY2tIb2xkZXIgbG9ja2VyKG1fdm0pOwogICAgIGlmIChoZWFwLT5pc0RlZmVycmVkKCkpIHsK
LSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsKKyAgICAgICAgc2NoZWR1bGVUaW1lcigwX3MpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NSw0MiArNjUsNDggQEAgdm9pZCBHQ0FjdGl2
aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB9CiAKICNpZiBVU0UoQ0YpCi12b2lkIEdDQWN0aXZpdHlD
YWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCit2b2lkIEdDQWN0aXZpdHlD
YWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIG5ld0RlbGF5KQogewogICAgIGlmIChuZXdE
ZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVybjsKLSAgICBkb3VibGUg
ZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBkZWx0YSA9IG1fZGVsYXkg
LSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAgbV9uZXh0RmlyZVRpbWUg
PSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5l
eHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJlRGF0ZSht
X3RpbWVyLmdldCgpKSAtIGRlbHRhKTsKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0
ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdl
dCgpKSAtIGRlbHRhLnNlY29uZHMoKSk7CiB9CiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpj
YW5jZWxUaW1lcigpCiB7CiAgICAgbV9kZWxheSA9IHNfZGVjYWRlOwotICAgIG1fbmV4dEZpcmVU
aW1lID0gMDsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgp
LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlKTsKKyAgICBDRlJ1bkxvb3BU
aW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJl
bnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSk7Cit9CisKK2RvdWJsZSBHQ0FjdGl2aXR5Q2FsbGJh
Y2s6Om5leHRGaXJlVGltZSgpCit7CisgICAgcmV0dXJuIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZp
cmVEYXRlKG1fdGltZXIuZ2V0KCkpOwogfQotI2VsaWYgVVNFKEdMSUIpCi12b2lkIEdDQWN0aXZp
dHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCisjZWxzZQordm9pZCBH
Q0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBuZXdEZWxheSkKIHsKLSAg
ICBBU1NFUlQobmV3RGVsYXkgPj0gMCk7CiAgICAgaWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4g
bV9kZWxheSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgZG91YmxlIGRlbHRhID0gbV9kZWxheSAt
IG5ld0RlbGF5OworICAgIFNlY29uZHMgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CiAgICAg
bV9kZWxheSA9IG5ld0RlbGF5OwotICAgIG1fbmV4dEZpcmVUaW1lID0gV1RGOjpjdXJyZW50VGlt
ZSgpICsgbmV3RGVsYXk7CiAKLSAgICBnaW50NjQgcmVhZHlUaW1lID0gZ19zb3VyY2VfZ2V0X3Jl
YWR5X3RpbWUobV90aW1lci5nZXQoKSk7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90
aW1lci5nZXQoKSwgcmVhZHlUaW1lIC0gZGVsdGEgKiBHX1VTRUNfUEVSX1NFQyk7CisgICAgU2Vj
b25kcyBzZWNvbmRzVW50aWxGaXJlID0gbV90aW1lci5zZWNvbmRzVW50aWxGaXJlKCk7CisgICAg
bV90aW1lci5zdGFydE9uZVNob3Qoc2Vjb25kc1VudGlsRmlyZSAtIGRlbHRhKTsKIH0KIAogdm9p
ZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbFRpbWVyKCkKIHsKICAgICBtX2RlbGF5ID0gc19k
ZWNhZGU7Ci0gICAgbV9uZXh0RmlyZVRpbWUgPSAwOwotICAgIGdfc291cmNlX3NldF9yZWFkeV90
aW1lKG1fdGltZXIuZ2V0KCksIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBzX2RlY2FkZSAqIEdf
VVNFQ19QRVJfU0VDKTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7Cit9CisK
K2RvdWJsZSBHQ0FjdGl2aXR5Q2FsbGJhY2s6Om5leHRGaXJlVGltZSgpCit7CisgICAgLy8gRklY
TUU6IFNob3VsZCByZXR1cm4gTW9ub3RvbmljVGltZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzI1CisgICAgcmV0dXJuIChNb25vdG9uaWNUaW1l
Ojpub3coKSArIG1fdGltZXIuc2Vjb25kc1VudGlsRmlyZSgpKS5zZWNvbmRzU2luY2VFcG9jaCgp
LnZhbHVlKCk7CiB9CiAjZW5kaWYKIApAQCAtMTIxLDcgKzExNyw3IEBAIHZvaWQgR0NBY3Rpdml0
eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXplX3QgYnl0ZXMpCiAgICAgaWYgKCFieXRlcykKICAg
ICAgICAgYnl0ZXMgPSAxOwogICAgIGRvdWJsZSBieXRlc0V4cGVjdGVkVG9SZWNsYWltID0gc3Rh
dGljX2Nhc3Q8ZG91YmxlPihieXRlcykgKiBkZWF0aFJhdGUoKTsKLSAgICBkb3VibGUgbmV3RGVs
YXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNlKGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0p
OworICAgIFNlY29uZHMgbmV3RGVsYXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNlKGJ5
dGVzRXhwZWN0ZWRUb1JlY2xhaW0pOwogICAgIHNjaGVkdWxlVGltZXIobmV3RGVsYXkpOwogfQog
CkBAIC0xMzUsMzAgKzEzMSw1IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQog
ICAgIGNhbmNlbFRpbWVyKCk7CiB9CiAKLSNlbHNlCi0KLUdDQWN0aXZpdHlDYWxsYmFjazo6R0NB
Y3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVh
cC0+dm0oKSkKLXsKLX0KLQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCi17Ci19
Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXplX3QpCi17Ci19Ci0K
LXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjp3aWxsQ29sbGVjdCgpCi17Ci19Ci0KLXZvaWQgR0NB
Y3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQotewotfQotCi0jZW5kaWYKLQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGFmNDc1
ODhkNjAxMTlhZDhkZDUxNWQ4ZjRhNTBjZmM3Mjk1ODEzMTQuLjc5NTliODQ1ODJjMjJkNDYyMDdk
MjAyNDU5Nzk3OTRhNGQzMGNlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0dDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC02MCw0OCArNjAsMjggQEAgY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIAog
ICAgIHN0YXRpYyBib29sIHNfc2hvdWxkQ3JlYXRlR0NUaW1lcjsKIAotI2lmIFVTRShDRikgfHwg
VVNFKEdMSUIpCi0gICAgZG91YmxlIG5leHRGaXJlVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4
dEZpcmVUaW1lOyB9Ci0jZW5kaWYKKyAgICBKU19FWFBPUlRfUFJJVkFURSBkb3VibGUgbmV4dEZp
cmVUaW1lKCk7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIGRvdWJsZSBsYXN0R0NMZW5ndGgo
KSA9IDA7CisgICAgdmlydHVhbCBTZWNvbmRzIGxhc3RHQ0xlbmd0aCgpID0gMDsKICAgICB2aXJ0
dWFsIGRvdWJsZSBnY1RpbWVTbGljZShzaXplX3QgYnl0ZXMpID0gMDsKICAgICB2aXJ0dWFsIGRv
dWJsZSBkZWF0aFJhdGUoKSA9IDA7CiAKLSNpZiBVU0UoQ0YpCi0gICAgR0NBY3Rpdml0eUNhbGxi
YWNrKFZNKiB2bSkKLSAgICAgICAgOiBCYXNlKHZtKQotICAgICAgICAsIG1fZW5hYmxlZCh0cnVl
KQotICAgICAgICAsIG1fZGVsYXkoc19kZWNhZGUpCi0gICAgewotICAgIH0KLSNlbGlmIFVTRShH
TElCKQogICAgIEdDQWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCiAgICAgICAgIDogQmFzZSh2bSkK
ICAgICAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKICAgICAgICAgLCBtX2RlbGF5KHNfZGVjYWRlKQog
ICAgIHsKICAgICB9Ci0jZWxzZQotICAgIEdDQWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCi0gICAg
ICAgIDogQmFzZSh2bSkKLSAgICAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKLSAgICB7Ci0gICAgfQot
I2VuZGlmCiAKICAgICBib29sIG1fZW5hYmxlZDsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIp
CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjYW5jZWxUaW1lcigpOwotICAgIHZvaWQgc2NoZWR1bGVU
aW1lcihkb3VibGUpOworICAgIHZvaWQgc2NoZWR1bGVUaW1lcihTZWNvbmRzKTsKIAogcHJpdmF0
ZToKLSAgICBkb3VibGUgbV9kZWxheTsKLSAgICBkb3VibGUgbV9uZXh0RmlyZVRpbWUgeyAwIH07
Ci0jZW5kaWYKKyAgICBTZWNvbmRzIG1fZGVsYXk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3Bw
CmluZGV4IDhjYmZhOWU4MDQwZGM2MWVmYjAxOWIyMTQ1NTQ0NTVlMmZhODMxYjYuLjI5YmQ0YjJh
NWFkNjI0ZjkzNmY1ZDcwNjg5NThlYzg2OTg5MTAxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcApAQCAtMzUsNyArMzUsNyBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVTbGljZSA9
IC4wMTsgLy8gc2Vjb25kcworc3RhdGljIGNvbnN0IFNlY29uZHMgc3dlZXBUaW1lU2xpY2UgPSAx
MF9tczsgLy8gc2Vjb25kcwogc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVUb3RhbCA9IC4x
MDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lTXVsdGlwbGllciA9IDEuMCAvIHN3ZWVw
VGltZVRvdGFsOwogCkBAIC01MiwxMyArNTIsMTMgQEAgSW5jcmVtZW50YWxTd2VlcGVyOjpJbmNy
ZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVhcCkKIAogdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRv
V29yaygpCiB7Ci0gICAgZG9Td2VlcChXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
KTsKKyAgICBkb1N3ZWVwKE1vbm90b25pY1RpbWU6Om5vdygpKTsKIH0KIAotdm9pZCBJbmNyZW1l
bnRhbFN3ZWVwZXI6OmRvU3dlZXAoZG91YmxlIHN3ZWVwQmVnaW5UaW1lKQordm9pZCBJbmNyZW1l
bnRhbFN3ZWVwZXI6OmRvU3dlZXAoTW9ub3RvbmljVGltZSBzd2VlcEJlZ2luVGltZSkKIHsKICAg
ICB3aGlsZSAoc3dlZXBOZXh0QmxvY2soKSkgewotICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUg
PSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3dlZXBCZWdpblRpbWU7Cisg
ICAgICAgIFNlY29uZHMgZWxhcHNlZFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN3ZWVw
QmVnaW5UaW1lOwogICAgICAgICBpZiAoZWxhcHNlZFRpbWUgPCBzd2VlcFRpbWVTbGljZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lu
Y3JlbWVudGFsU3dlZXBlci5oCmluZGV4IDc2ZDQ1NGYzYzA0YjMxYmQxMTRiODA3MTQzZTRkMWUx
NWE0ZTViYzUuLjQ4ODM0YjEzYmM1YzYzYTlhOGFmODJlYjczNGMxZTFiMWE2MzQ1ODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC00
NSw3ICs0NSw3IEBAIGNsYXNzIEluY3JlbWVudGFsU3dlZXBlciA6IHB1YmxpYyBKU1J1bkxvb3BU
aW1lciB7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdG9wU3dlZXBpbmcoKTsKIAogcHJp
dmF0ZToKLSAgICB2b2lkIGRvU3dlZXAoZG91YmxlIHN0YXJ0VGltZSk7CisgICAgdm9pZCBkb1N3
ZWVwKE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIHNjaGVkdWxlVGltZXIoKTsK
ICAgICAKICAgICBNYXJrZWRBbGxvY2F0b3IqIG1fY3VycmVudEFsbG9jYXRvcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcAppbmRl
eCA5NDBkMzlkZTI0YWNmZDMyZDk2YTRhYzIxZWQyYzJhNTMxN2MyMWNkLi42MjM5NjEwOTQ0N2Y2
NGNkNmVkZmNmMmE4ZjlkOWE2MzVjZGIxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZv
aWQgU3RvcElmTmVjZXNzYXJ5VGltZXI6OnNjaGVkdWxlU29vbigpCiAgICAgICAgIFdURjo6bG9h
ZExvYWRGZW5jZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNjaGVkdWxlVGltZXIo
MCk7CisgICAgc2NoZWR1bGVUaW1lcigwX3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcAppbmRl
eCBmZDc5ZDU5ODA0YTdmNDgyZWRmOTQ3ODdlZWRkYTc0OGJkZmQyZjkzLi40YzMxMzkxNTI1MTBk
NGFiYjFjNTZmOGM5ODRlODY4ZmJiY2Y0YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCkBAIC00Miw2ICs0Miw4IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCitjb25zdCBTZWNvbmRzIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYw
ICogNjAgKiAyNCAqIDM2NSAqIDEwIH07CisKIHZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlk
RmlyZSgpCiB7CiAgICAgbV9hcGlMb2NrLT5sb2NrKCk7CkBAIC02Myw4ICs2NSw2IEBAIHZvaWQg
SlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZSgpCiAKICNpZiBVU0UoQ0YpCiAKLWNvbnN0IENG
VGltZUludGVydmFsIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSA9IDYwICogNjAgKiAyNCAqIDM2
NSAqIDEwOwotCiBKU1J1bkxvb3BUaW1lcjo6SlNSdW5Mb29wVGltZXIoVk0qIHZtKQogICAgIDog
bV92bSh2bSkKICAgICAsIG1fYXBpTG9jaygmdm0tPmFwaUxvY2soKSkKQEAgLTg1LDcgKzg1LDcg
QEAgdm9pZCBKU1J1bkxvb3BUaW1lcjo6c2V0UnVuTG9vcChDRlJ1bkxvb3BSZWYgcnVuTG9vcCkK
ICAgICAgICAgbV9ydW5Mb29wID0gcnVuTG9vcDsKICAgICAgICAgbWVtc2V0KCZtX2NvbnRleHQs
IDAsIHNpemVvZihDRlJ1bkxvb3BUaW1lckNvbnRleHQpKTsKICAgICAgICAgbV9jb250ZXh0Lmlu
Zm8gPSB0aGlzOwotICAgICAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVj
YWRlLCBzX2RlY2FkZSwgMCwgMCwgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNr
LCAmbV9jb250ZXh0KSk7CisgICAgICAgIG1fdGltZXIgPSBhZG9wdENGKENGUnVuTG9vcFRpbWVy
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsg
c19kZWNhZGUuc2Vjb25kcygpLCBzX2RlY2FkZS5zZWNvbmRzKCksIDAsIDAsIEpTUnVuTG9vcFRp
bWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaywgJm1fY29udGV4dCkpOwogICAgICAgICBDRlJ1bkxv
b3BBZGRUaW1lcihtX3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21t
b25Nb2Rlcyk7CiAgICAgfQogfQpAQCAtMTAwLDg1ICsxMDAsNDMgQEAgdm9pZCBKU1J1bkxvb3BU
aW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGNvbnRl
eHRQdHIpCiAgICAgc3RhdGljX2Nhc3Q8SlNSdW5Mb29wVGltZXIqPihjb250ZXh0UHRyKS0+dGlt
ZXJEaWRGaXJlKCk7CiB9CiAKLXZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoZG91
YmxlIGludGVydmFsSW5TZWNvbmRzKQordm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVUaW1l
cihTZWNvbmRzIGludGVydmFsSW5TZWNvbmRzKQogewotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4
dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgaW50
ZXJ2YWxJblNlY29uZHMpOworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGlt
ZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgaW50ZXJ2YWxJblNlY29uZHMu
c2Vjb25kcygpKTsKICAgICBtX2lzU2NoZWR1bGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBKU1J1bkxv
b3BUaW1lcjo6Y2FuY2VsVGltZXIoKQogewotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVE
YXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUp
OworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpKTsKICAgICBtX2lzU2No
ZWR1bGVkID0gZmFsc2U7CiB9CiAKLSNlbGlmIFVTRShHTElCKQotCi1jb25zdCBsb25nIEpTUnVu
TG9vcFRpbWVyOjpzX2RlY2FkZSA9IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwOwotCi1zdGF0aWMg
R1NvdXJjZUZ1bmNzIEpTUnVuTG9vcFRpbWVyU291cmNlRnVuY3Rpb25zID0gewotICAgIG51bGxw
dHIsIC8vIHByZXBhcmUKLSAgICBudWxscHRyLCAvLyBjaGVjawotICAgIC8vIGRpc3BhdGNoCi0g
ICAgW10oR1NvdXJjZSosIEdTb3VyY2VGdW5jIGNhbGxiYWNrLCBncG9pbnRlciB1c2VyRGF0YSkg
LT4gZ2Jvb2xlYW4KLSAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayh1c2VyRGF0YSk7Ci0g
ICAgfSwKLSAgICBudWxscHRyLCAvLyBmaW5hbGl6ZQotICAgIG51bGxwdHIsIC8vIGNsb3N1cmVf
Y2FsbGJhY2sKLSAgICBudWxscHRyLCAvLyBjbG9zdXJlX21hcnNoYWxsCi19OworI2Vsc2UKIAog
SlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVyKFZNKiB2bSkKICAgICA6IG1fdm0odm0pCiAg
ICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkpCi0gICAgLCBtX3RpbWVyKGFkb3B0R1JlZihn
X3NvdXJjZV9uZXcoJkpTUnVuTG9vcFRpbWVyU291cmNlRnVuY3Rpb25zLCBzaXplb2YoR1NvdXJj
ZSkpKSkKKyAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmSlNSdW5Mb29w
VGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNrKQogewotICAgIGdfc291cmNlX3NldF9wcmlvcml0
eShtX3RpbWVyLmdldCgpLCBSdW5Mb29wU291cmNlUHJpb3JpdHk6OkphdmFzY3JpcHRUaW1lcik7
Ci0gICAgZ19zb3VyY2Vfc2V0X25hbWUobV90aW1lci5nZXQoKSwgIltKYXZhU2NyaXB0Q29yZV0g
SlNSdW5Mb29wVGltZXIiKTsKLSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lci5nZXQo
KSwgW10oZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuIHsKLSAgICAgICAgYXV0byYgcnVu
TG9vcFRpbWVyID0gKnN0YXRpY19jYXN0PEpTUnVuTG9vcFRpbWVyKj4odXNlckRhdGEpOwotICAg
ICAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShydW5Mb29wVGltZXIubV90aW1lci5nZXQoKSwg
Z19nZXRfbW9ub3RvbmljX3RpbWUoKSArIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSAqIEdfVVNF
Q19QRVJfU0VDKTsKLSAgICAgICAgcnVuTG9vcFRpbWVyLnRpbWVyRGlkRmlyZSgpOwotICAgICAg
ICByZXR1cm4gR19TT1VSQ0VfQ09OVElOVUU7Ci0gICAgfSwgdGhpcywgbnVsbHB0cik7Ci0gICAg
Z19zb3VyY2VfYXR0YWNoKG1fdGltZXIuZ2V0KCksIGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRf
ZGVmYXVsdCgpKTsKKyNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKQorICAgIG1fdGltZXIuc2V0UHJp
b3JpdHkoUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpKYXZhc2NyaXB0VGltZXIpOworICAgIG1fdGlt
ZXIuc2V0TmFtZSgiW0phdmFTY3JpcHRDb3JlXSBKU1J1bkxvb3BUaW1lciIpOworI2VuZGlmCisg
ICAgbV90aW1lci5zdGFydE9uZVNob3Qoc19kZWNhZGUpOwogfQogCiBKU1J1bkxvb3BUaW1lcjo6
fkpTUnVuTG9vcFRpbWVyKCkKIHsKLSAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXIuZ2V0KCkp
OwotfQotCi12b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZh
bEluU2Vjb25kcykKLXsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgp
LCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgaW50ZXJ2YWxJblNlY29uZHMgKiBHX1VTRUNfUEVS
X1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxlZCA9IHRydWU7Ci19Ci0KLXZvaWQgSlNSdW5Mb29wVGlt
ZXI6OmNhbmNlbFRpbWVyKCkKLXsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVy
LmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVSX1NF
Qyk7Ci0gICAgbV9pc1NjaGVkdWxlZCA9IGZhbHNlOwogfQogCi0jZWxzZQotCi1jb25zdCBTZWNv
bmRzIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwIH07
Ci0KLUpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCi0gICAgOiBtX3ZtKHZt
KQotICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQotICAgICwgbV90aW1lcihSdW5Mb29w
OjpjdXJyZW50KCksIHRoaXMsICZKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKQotewotICAg
IG1fdGltZXIuc3RhcnRPbmVTaG90KHNfZGVjYWRlKTsKLX0KLQotSlNSdW5Mb29wVGltZXI6On5K
U1J1bkxvb3BUaW1lcigpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFj
aygpCiB7CisgICAgY2FuY2VsVGltZXIoKTsKKyAgICB0aW1lckRpZEZpcmUoKTsKIH0KIAotdm9p
ZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVUaW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMp
Cit2b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNl
Y29uZHMpCiB7CiAgICAgbV90aW1lci5zdGFydE9uZVNob3QoaW50ZXJ2YWxJblNlY29uZHMpOwog
ICAgIG1faXNTY2hlZHVsZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUnVuTG9vcFRpbWVyLmgKaW5kZXggMDBmM2U2YmJjY2VjNTg3ZmQ5OWU5OGVkMTYwNTNm
ZDY1Nzc1OTgwNi4uZDhlY2U5MjA3OTNmYzMwMzMxZGM4ZmFjZDUxOWZiZTc2Yzk2YTliNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oCkBAIC0z
NiwxMCArMzYsNiBAQAogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+
CiAjZW5kaWYKIAotI2lmIFVTRShHTElCKQotI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
LSNlbmRpZgotCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNMb2NrOwpAQCAtNTAsMTIgKzQ2
LDE0IEBAIGNsYXNzIEpTUnVuTG9vcFRpbWVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PEpTUnVuTG9vcFRpbWVyPiB7CiAgICAgSlNSdW5Mb29wVGltZXIoVk0qKTsKICNpZiBVU0UoQ0Yp
CiAgICAgc3RhdGljIHZvaWQgdGltZXJEaWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYs
IHZvaWQqKTsKKyNlbHNlCisgICAgdm9pZCB0aW1lckRpZEZpcmVDYWxsYmFjaygpOwogI2VuZGlm
CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5KU1J1bkxvb3BUaW1lcigpOwogICAg
IHZpcnR1YWwgdm9pZCBkb1dvcmsoKSA9IDA7CiAKLSAgICB2b2lkIHNjaGVkdWxlVGltZXIoZG91
YmxlIGludGVydmFsSW5TZWNvbmRzKTsKKyAgICB2b2lkIHNjaGVkdWxlVGltZXIoU2Vjb25kcyBp
bnRlcnZhbEluU2Vjb25kcyk7CiAgICAgdm9pZCBjYW5jZWxUaW1lcigpOwogICAgIGJvb2wgaXNT
Y2hlZHVsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU2NoZWR1bGVkOyB9CiAKQEAgLTY2LDIyICs2
NCwxOCBAQCBjbGFzcyBKU1J1bkxvb3BUaW1lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxKU1J1bkxvb3BUaW1lcj4gewogcHJvdGVjdGVkOgogICAgIFZNKiBtX3ZtOwogCisgICAgc3Rh
dGljIGNvbnN0IFNlY29uZHMgc19kZWNhZGU7CisKICAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxv
Y2s7CiAgICAgYm9vbCBtX2lzU2NoZWR1bGVkIHsgZmFsc2UgfTsKICNpZiBVU0UoQ0YpCi0gICAg
c3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHNfZGVjYWRlOwotCiAgICAgUmV0YWluUHRyPENG
UnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVyOwogICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1f
cnVuTG9vcDsKIAogICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBtX2NvbnRleHQ7CiAKICAgICBM
b2NrIG1fc2h1dGRvd25NdXRleDsKLSNlbGlmIFVTRShHTElCKQotICAgIHN0YXRpYyBjb25zdCBs
b25nIHNfZGVjYWRlOwotICAgIEdSZWZQdHI8R1NvdXJjZT4gbV90aW1lcjsKICNlbHNlCi0gICAg
c3RhdGljIGNvbnN0IFNlY29uZHMgc19kZWNhZGU7CiAgICAgUnVuTG9vcDo6VGltZXI8SlNSdW5M
b29wVGltZXI+IG1fdGltZXI7CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAppbmRleCAxMDQ1ZTQ2
NmFhMzYxYTRhNjRhMjljZjBlOTQzNmUzNDU0Y2M5MmUxLi4zZGNhZWFhZmU1YjM4ZmJhNWJhOGFm
OTc2NjBmNTFiYzY1OWZkMjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9p
ZCBQcm9taXNlRGVmZXJyZWRUaW1lcjo6c2NoZWR1bGVXb3JrU29vbihKU1Byb21pc2VEZWZlcnJl
ZCogdGlja2V0LCBUYXNrJiYgdGEKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2NrKTsK
ICAgICBtX3Rhc2tzLmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUodGlja2V0LCBXVEZNb3ZlKHRhc2sp
KSk7CiAgICAgaWYgKCFpc1NjaGVkdWxlZCgpICYmICFtX2N1cnJlbnRseVJ1bm5pbmdUYXNrKQot
ICAgICAgICBzY2hlZHVsZVRpbWVyKDApOworICAgICAgICBzY2hlZHVsZVRpbWVyKDBfcyk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9v
cC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmluZGV4IDkyY2MxNTBmZGQyOTk1MDQ5NTIy
MjJkMDgyNjgzN2Y0YmJkYjIwMzYuLjNkMDZjM2ViODkzMDBkNjBmYTA4MzY0YmRlZWNkNmYwOWU4
YmE4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTkzLDEwICs5MywxMiBAQCBjbGFzcyBSdW5Mb29wIDogcHVi
bGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAKICAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgc3RvcCgpOwogICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0OworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU2Vjb25kcyBzZWNvbmRzVW50aWxGaXJl
KCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwogCiAjaWYgVVNF
KEdMSUJfRVZFTlRfTE9PUCkKKyAgICAgICAgdm9pZCBzZXROYW1lKGNvbnN0IGNoYXIqKTsKICAg
ICAgICAgdm9pZCBzZXRQcmlvcml0eShpbnQpOwogI2VuZGlmCiAKQEAgLTEwNiw4ICsxMDgsMTEg
QEAgY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogICAgICAgICBS
ZWY8UnVuTG9vcD4gbV9ydW5Mb29wOwogCiAjaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkKKyAg
ICAgICAgYm9vbCBpc0FjdGl2ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0OwogICAgICAg
ICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCB1aW50NjRfdCBJRCk7CiAgICAgICAg
IHVpbnQ2NF90IG1fSUQ7CisgICAgICAgIE1vbm90b25pY1RpbWUgbV9uZXh0RmlyZURhdGU7Cisg
ICAgICAgIFNlY29uZHMgbV9pbnRlcnZhbDsKICAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwog
I2VsaWYgVVNFKENPQ09BX0VWRU5UX0xPT1ApCiAgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmly
ZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCmluZGV4
IDQxZjhmOTU3NWM2ODMwMmYzODYyZGMyMjNmZTU0MjdhOGFlMjQ0MTYuLjVlNGM4MDU3ZTkxMzU0
NzU4OTJkMDRlMTY2NTU0MWJiOTI0NTI4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2Nm
L1J1bkxvb3BDRi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcApAQCAt
MTE5LDQgKzExOSwxMSBAQCBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25z
dAogICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyLmdl
dCgpKTsKIH0KIAorU2Vjb25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUo
KSBjb25zdAoreworICAgIGlmIChpc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm4gc3RkOjptYXg8
U2Vjb25kcz4oU2Vjb25kcyB7IENGUnVuTG9vcFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1fdGltZXIu
Z2V0KCkpIC0gQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgfSwgMF9zKTsKKyAgICByZXR1cm4g
MF9zOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5M
b29wR2VuZXJpYy5jcHAKaW5kZXggMTNlMjcxNGMyOWQ0OWJlNTRjZDZjOGMzNDZlOGM3NmM3NWU5
MjRlYi4uYTU2ODBlMjI4NTM1ZTRlZTFjMTJjMTdiMjIyYzI4NDIzMjcwNzNhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKQEAgLTI5Myw0ICsyOTMsMTIgQEAg
Ym9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikg
Y29uc3QKICAgICByZXR1cm4gbV9zY2hlZHVsZWRUYXNrOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKKyAgICBpZiAoaXNBY3RpdmUobG9ja2VyKSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KG1fc2NoZWR1bGVkVGFzay0+c2NoZWR1
bGVkVGltZVBvaW50KCkgLSBNb25vdG9uaWNUaW1lOjpub3coKSwgMF9zKTsKKyAgICByZXR1cm4g
MF9zOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L2dsaWIvUnVuTG9vcEdMaWIuY3BwIGIvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5j
cHAKaW5kZXggYTNiOTNjNGEyNmI4YTY0YWNmNGI2ZjY5NTBhNjM1YzdkMGIwNWNlZC4uY2ViNDli
MzAxMjFlNWEzMWQwODVkZjk1NzRiNDAxMWI1MGJjNWY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9SdW5M
b29wR0xpYi5jcHAKQEAgLTE3Niw2ICsxNzYsMTEgQEAgUnVuTG9vcDo6VGltZXJCYXNlOjp+VGlt
ZXJCYXNlKCkKICAgICBnX3NvdXJjZV9kZXN0cm95KG1fc291cmNlLmdldCgpKTsKIH0KIAordm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnNldE5hbWUoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBn
X3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgbmFtZSk7Cit9CisKIHZvaWQgUnVuTG9v
cDo6VGltZXJCYXNlOjpzZXRQcmlvcml0eShpbnQgcHJpb3JpdHkpCiB7CiAgICAgZ19zb3VyY2Vf
c2V0X3ByaW9yaXR5KG1fc291cmNlLmdldCgpLCBwcmlvcml0eSk7CkBAIC0yMTEsNCArMjE2LDkg
QEAgYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4g
Z19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUobV9zb3VyY2UuZ2V0KCkpICE9IC0xOwogfQogCitTZWNv
bmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoZ19zb3Vy
Y2VfZ2V0X3JlYWR5X3RpbWUobV9zb3VyY2UuZ2V0KCkpIC0gZ19nZXRfbW9ub3RvbmljX3RpbWUo
KSksIDBfcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4u
Y3BwCmluZGV4IDg3NDZiMWVlYTAzODE0NWRmZTg0ODg5OWU1NDUzNmEzN2M4ZGViNGYuLjNlNGM0
Y2VhMTc1YzYzMTJjZTQ4Yjg5YjQ4YjIzM2U5NDg3ODI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9v
cFdpbi5jcHAKQEAgLTEzMSw3ICsxMzEsOCBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGlt
ZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKICAgICAgICAgaWYgKCF0aW1l
ci0+bV9pc1JlcGVhdGluZykgewogICAgICAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
cmVtb3ZlKGl0KTsKICAgICAgICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1l
c3NhZ2VXaW5kb3csIElEKTsKLSAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IG1fbmV4dEZpcmVEYXRlID0gTW9ub3RvbmljVGltZTo6bm93KCkgKyBtX2ludGVydmFsOwogICAg
IH0KIAogICAgIHRpbWVyLT5maXJlZCgpOwpAQCAtMTYwLDYgKzE2MSw4IEBAIHZvaWQgUnVuTG9v
cDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQp
CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOwog
ICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CiAgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5zZXQobV9JRCwgdGhpcyk7CisgICAgbV9pbnRlcnZhbCA9IFNlY29uZHMobmV4dEZpcmVJbnRl
cnZhbCk7CisgICAgbV9uZXh0RmlyZURhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIG1faW50
ZXJ2YWw7CiAgICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cs
IG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsKIH0KIApAQCAtMTc0LDEwICsxNzcs
MjQgQEAgdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQogICAgIDo6S2lsbFRpbWVyKG1f
cnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCk7CiB9CiAKK2Jvb2wgUnVuTG9v
cDo6VGltZXJCYXNlOjppc0FjdGl2ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9CisK
IGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0CiB7CiAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOwotICAgIHJldHVybiBt
X3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOworICAgIHJldHVybiBpc0Fj
dGl2ZShsb2NrZXIpOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1Vu
dGlsRmlyZSgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2Fj
dGl2ZVRpbWVyc0xvY2spOworICAgIGlmIChpc0FjdGl2ZShsb2NrZXIpKQorICAgICAgICByZXR1
cm4gc3RkOjptYXg8U2Vjb25kcz4obV9uZXh0RmlyZURhdGUgLSBNb25vdG9uaWNUaW1lOjpub3co
KSwgMF9zKTsKKyAgICByZXR1cm4gMF9zOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306805</attachid>
            <date>2017-04-11 05:13:46 -0700</date>
            <delta_ts>2017-04-11 05:17:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411211345.patch</filename>
            <type>text/plain</type>
            <size>27986</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li45YWFmNjdmYWM1ODg1OGUy
M2QwNWY2ODVjODI3ZjgzYTBlNmU1OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0OSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6bmV4dEZpcmVUaW1lKToK
KyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZSk6CisgICAgICAg
ICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3JrKToK
KyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKToKKyAgICAgICAgKiBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAgICAqIGhlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuY3BwOgorICAgICAgICAoSlNDOjpTdG9wSWZOZWNlc3NhcnlUaW1lcjo6c2NoZWR1bGVT
b29uKToKKyAgICAgICAgKiBydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3ApOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BU
aW1lcjo6c2NoZWR1bGVUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpjYW5j
ZWxUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcik6
CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIpOgorICAgICAg
ICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2spOgorICAgICAgICAq
IHJ1bnRpbWUvSlNSdW5Mb29wVGltZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb21pc2VEZWZl
cnJlZFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvbWlzZURlZmVycmVkVGltZXI6OnNjaGVk
dWxlV29ya1Nvb24pOgorCisyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxvb3BUaW1lciBmb3IgSlND
T25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2E4MDQyZDVjYzIwNGFlNzUyZmIxYzk5MDVhMmQ4M2Ez
YzhlM2Y5MS4uZTY1MTBiYzAwMjQwNjVjMjNjNGFhZTJkMTg0NTQ4ZTk1MGQwMThhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsg
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcw
NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHNlY29uZHNVbnRpbEZpcmUgbWV0aG9kLiBBbmQgYWRkIHNldE5hbWUgYW5kIHNldFByaW9yaXR5
CisgICAgICAgIGZvciBHVEsgUnVuTG9vcDo6VGltZXIuCisKKyAgICAgICAgKiB3dGYvUnVuTG9v
cC5oOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAgICAqIHd0Zi9nZW5lcmlj
L1J1bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpz
ZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZSk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6CisgICAgICAgICogd3RmL3dp
bi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1l
ckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorCisyMDE3LTA0LTExICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJs
ZSBKU1J1bkxvb3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5kZXgg
MDdlNmM3YTNmMDg1NzZlMTQzN2YyODFlNTM3NWVjMzYwYzNjZDhlNy4uYjZiZGUzZGQxN2Y4NWQ0
MGMyOTdjZDM2ZDQ3NzEwN2VmMGZkNWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMxLDggKzMxLDYgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCiAgICAg
OiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKIHsKQEAgLTQzLDkgKzQxLDkgQEAgdm9pZCBFZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIG1fdm0tPmhlYXAuY29sbGVj
dEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RWRlbik7CiB9CiAKLWRvdWJsZSBFZGVuR0NBY3Rpdml0
eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
OjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RFZGVuR0NMZW5n
dGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEVkZW5HQ0xlbmd0aCgp
OwogfQogCiBkb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKQEAgLTY5
LDMyICs2Nyw0IEBAIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShz
aXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNfY2FzdDxkb3VibGU+KGJ5
dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckVkZW5UaW1lcigpLCBPcHRp
b25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQogCi0jZWxzZQotCi1FZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0g
ICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0KLQotdm9pZCBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1kb3VibGUgRWRlbkdDQWN0
aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotZG91
YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShzaXplX3Qp
Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0YpIHx8IFVTRShHTElCKQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBjYzRlOTNmY2I5ZjMwMzljYTYzNTAyNTg2
YmFkODc5ZjhhYjU4OTM0Li44NzQ4MmJkZmIzMDE4NmMwMTZiMWE2YTg0Y2JhZWQ5OTI3MDlmYzk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNh
bGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlD
YWxsYmFjay5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5H
Q0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKICAgICB2b2lk
IGRvQ29sbGVjdGlvbigpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZG91YmxlIGxhc3RH
Q0xlbmd0aCgpIG92ZXJyaWRlOworICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7
CiAgICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3ZlcnJpZGU7CiAgICAgZG91
YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5kZXggZTU3ZGQzYTFjNzk3
MTBmMTI1ODZhOTAzODcxN2FkZDRkYjY2MTM5ZC4uYTcxYzc2NjI0MGQwZjQ1YjRiMTNhYWE2Yjdj
NjUzMDZiNGQ0Mzc4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMwLDggKzMwLDYgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiAjaWYgIVBMQVRGT1JNKElPUykK
IGNvbnN0IGRvdWJsZSBwYWdpbmdUaW1lT3V0ID0gMC4xOyAvLyBUaW1lIGluIHNlY29uZHMgdG8g
YWxsb3cgb3Bwb3J0dW5pc3RpYyB0aW1lciB0byBpdGVyYXRlIG92ZXIgYWxsIGJsb2NrcyB0byBz
ZWUgaWYgdGhlIEhlYXAgaXMgcGFnZWQgb3V0LgogI2VuZGlmCkBAIC01OCw5ICs1Niw5IEBAIHZv
aWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKICAgICBoZWFwLmNvbGxl
Y3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOwogfQogCi1kb3VibGUgRnVsbEdDQWN0aXZp
dHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKK1NlY29uZHMgRnVsbEdDQWN0aXZpdHlDYWxsYmFj
azo6bGFzdEdDTGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gbV92bS0+aGVhcC5sYXN0RnVsbEdDTGVu
Z3RoKCkuc2Vjb25kcygpOworICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RGdWxsR0NMZW5ndGgo
KTsKIH0KIAogZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCkBAIC04
NCwzMiArODIsNCBAQCBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uo
c2l6ZV90IGJ5dGVzKQogICAgIHJldHVybiBzdGQ6Om1pbigoc3RhdGljX2Nhc3Q8ZG91YmxlPihi
eXRlcykgLyBNQikgKiBPcHRpb25zOjpwZXJjZW50Q1BVUGVyTUJGb3JGdWxsVGltZXIoKSwgT3B0
aW9uczo6Y29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSgpKTsKIH0KIAotI2Vsc2UKLQotRnVs
bEdDQWN0aXZpdHlDYWxsYmFjazo6RnVsbEdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQot
ICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApCi17Ci19Ci0KLXZvaWQgRnVsbEdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKLXsKLX0KLQotZG91YmxlIEZ1bGxHQ0FjdGl2aXR5
Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBG
dWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQotewotICAgIHJldHVybiAwOwotfQot
Ci1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uoc2l6ZV90KQotewot
ICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLy8gVVNFKENGKSB8fCBVU0UoR0xJQikKLQogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxs
R0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNTEwNmVlNzk4Nzg5NGI5OTkyOTkwYWJhMTBmNjhh
MzkwMDllZmVlNi4uNDNkNTNiOGExZTMxODE2MGI1MWZjZmViNDZmZWViZmE2NzllMmQzZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFj
ay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJh
Y2suaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBGdWxsR0NBY3Rp
dml0eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CiAgICAgdm9pZCBzZXRE
aWRTeW5jR0NSZWNlbnRseSgpIHsgbV9kaWRTeW5jR0NSZWNlbnRseSA9IHRydWU7IH0KIAogcHJv
dGVjdGVkOgotICAgIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSBvdmVycmlkZTsKKyAgICBTZWNvbmRz
IGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1RpbWVTbGljZShzaXplX3Qg
Ynl0ZXMpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBkZWF0aFJhdGUoKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5k
ZXggMzgwZDkxYzdjMDZlMGM2Y2IxMWE5YzdmMGNhZDU5MGYwYjQ0NWI5OS4uZTZmZDIzODY1YzQ0
NWRkNjEyNjFiYjdjNTNhM2JlYTg4OGRiOTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCkBAIC00MiwyMiArNDIsMTIgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIGJvb2wgR0NBY3Rpdml0eUNhbGxiYWNrOjpzX3Nob3VsZENyZWF0ZUdD
VGltZXIgPSB0cnVlOwogCi0jaWYgVVNFKENGKSB8fCBVU0UoR0xJQikKLQogY29uc3QgZG91Ymxl
IHRpbWVyU2xvcCA9IDIuMDsgLy8gRnVkZ2UgZmFjdG9yIHRvIGF2b2lkIHBlcmZvcm1hbmNlIGNv
c3Qgb2YgcmVzZXR0aW5nIHRpbWVyLgogCi0jaWYgVVNFKENGKQotR0NBY3Rpdml0eUNhbGxiYWNr
OjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCogaGVhcCkKLSAgICA6IEdDQWN0aXZpdHlDYWxsYmFj
ayhoZWFwLT52bSgpKQotewotfQotI2VsaWYgVVNFKEdMSUIpCiBHQ0FjdGl2aXR5Q2FsbGJhY2s6
OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQogICAgIDogR0NBY3Rpdml0eUNhbGxiYWNr
KGhlYXAtPnZtKCkpCiB7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQo
KSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIHNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMpOwog
fQotI2VuZGlmCiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkb1dvcmsoKQogewpAQCAtNjcs
NyArNTcsNyBAQCB2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKCkKICAgICAKICAgICBK
U0xvY2tIb2xkZXIgbG9ja2VyKG1fdm0pOwogICAgIGlmIChoZWFwLT5pc0RlZmVycmVkKCkpIHsK
LSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsKKyAgICAgICAgc2NoZWR1bGVUaW1lcigwX3MpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NSw0MiArNjUsNDggQEAgdm9pZCBHQ0FjdGl2
aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB9CiAKICNpZiBVU0UoQ0YpCi12b2lkIEdDQWN0aXZpdHlD
YWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCit2b2lkIEdDQWN0aXZpdHlD
YWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIG5ld0RlbGF5KQogewogICAgIGlmIChuZXdE
ZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkpCiAgICAgICAgIHJldHVybjsKLSAgICBkb3VibGUg
ZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CisgICAgU2Vjb25kcyBkZWx0YSA9IG1fZGVsYXkg
LSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0gbmV3RGVsYXk7Ci0gICAgbV9uZXh0RmlyZVRpbWUg
PSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdEZWxheTsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5l
eHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJlRGF0ZSht
X3RpbWVyLmdldCgpKSAtIGRlbHRhKTsKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0
ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BUaW1lckdldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdl
dCgpKSAtIGRlbHRhLnNlY29uZHMoKSk7CiB9CiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpj
YW5jZWxUaW1lcigpCiB7CiAgICAgbV9kZWxheSA9IHNfZGVjYWRlOwotICAgIG1fbmV4dEZpcmVU
aW1lID0gMDsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgp
LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlKTsKKyAgICBDRlJ1bkxvb3BU
aW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJl
bnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSk7Cit9CisKK2RvdWJsZSBHQ0FjdGl2aXR5Q2FsbGJh
Y2s6Om5leHRGaXJlVGltZSgpCit7CisgICAgcmV0dXJuIENGUnVuTG9vcFRpbWVyR2V0TmV4dEZp
cmVEYXRlKG1fdGltZXIuZ2V0KCkpOwogfQotI2VsaWYgVVNFKEdMSUIpCi12b2lkIEdDQWN0aXZp
dHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3VibGUgbmV3RGVsYXkpCisjZWxzZQordm9pZCBH
Q0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxlVGltZXIoU2Vjb25kcyBuZXdEZWxheSkKIHsKLSAg
ICBBU1NFUlQobmV3RGVsYXkgPj0gMCk7CiAgICAgaWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4g
bV9kZWxheSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgZG91YmxlIGRlbHRhID0gbV9kZWxheSAt
IG5ld0RlbGF5OworICAgIFNlY29uZHMgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CiAgICAg
bV9kZWxheSA9IG5ld0RlbGF5OwotICAgIG1fbmV4dEZpcmVUaW1lID0gV1RGOjpjdXJyZW50VGlt
ZSgpICsgbmV3RGVsYXk7CiAKLSAgICBnaW50NjQgcmVhZHlUaW1lID0gZ19zb3VyY2VfZ2V0X3Jl
YWR5X3RpbWUobV90aW1lci5nZXQoKSk7Ci0gICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90
aW1lci5nZXQoKSwgcmVhZHlUaW1lIC0gZGVsdGEgKiBHX1VTRUNfUEVSX1NFQyk7CisgICAgU2Vj
b25kcyBzZWNvbmRzVW50aWxGaXJlID0gbV90aW1lci5zZWNvbmRzVW50aWxGaXJlKCk7CisgICAg
bV90aW1lci5zdGFydE9uZVNob3Qoc2Vjb25kc1VudGlsRmlyZSAtIGRlbHRhKTsKIH0KIAogdm9p
ZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNlbFRpbWVyKCkKIHsKICAgICBtX2RlbGF5ID0gc19k
ZWNhZGU7Ci0gICAgbV9uZXh0RmlyZVRpbWUgPSAwOwotICAgIGdfc291cmNlX3NldF9yZWFkeV90
aW1lKG1fdGltZXIuZ2V0KCksIGdfZ2V0X21vbm90b25pY190aW1lKCkgKyBzX2RlY2FkZSAqIEdf
VVNFQ19QRVJfU0VDKTsKKyAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7Cit9CisK
K2RvdWJsZSBHQ0FjdGl2aXR5Q2FsbGJhY2s6Om5leHRGaXJlVGltZSgpCit7CisgICAgLy8gRklY
TUU6IFNob3VsZCByZXR1cm4gTW9ub3RvbmljVGltZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzI1CisgICAgcmV0dXJuIChNb25vdG9uaWNUaW1l
Ojpub3coKSArIG1fdGltZXIuc2Vjb25kc1VudGlsRmlyZSgpKS5zZWNvbmRzU2luY2VFcG9jaCgp
LnZhbHVlKCk7CiB9CiAjZW5kaWYKIApAQCAtMTIxLDcgKzExNyw3IEBAIHZvaWQgR0NBY3Rpdml0
eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXplX3QgYnl0ZXMpCiAgICAgaWYgKCFieXRlcykKICAg
ICAgICAgYnl0ZXMgPSAxOwogICAgIGRvdWJsZSBieXRlc0V4cGVjdGVkVG9SZWNsYWltID0gc3Rh
dGljX2Nhc3Q8ZG91YmxlPihieXRlcykgKiBkZWF0aFJhdGUoKTsKLSAgICBkb3VibGUgbmV3RGVs
YXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNlKGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0p
OworICAgIFNlY29uZHMgbmV3RGVsYXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNlKGJ5
dGVzRXhwZWN0ZWRUb1JlY2xhaW0pOwogICAgIHNjaGVkdWxlVGltZXIobmV3RGVsYXkpOwogfQog
CkBAIC0xMzUsMzAgKzEzMSw1IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQog
ICAgIGNhbmNlbFRpbWVyKCk7CiB9CiAKLSNlbHNlCi0KLUdDQWN0aXZpdHlDYWxsYmFjazo6R0NB
Y3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVh
cC0+dm0oKSkKLXsKLX0KLQotdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCi17Ci19
Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXplX3QpCi17Ci19Ci0K
LXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjp3aWxsQ29sbGVjdCgpCi17Ci19Ci0KLXZvaWQgR0NB
Y3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQotewotfQotCi0jZW5kaWYKLQogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGFmNDc1
ODhkNjAxMTlhZDhkZDUxNWQ4ZjRhNTBjZmM3Mjk1ODEzMTQuLjc5NTliODQ1ODJjMjJkNDYyMDdk
MjAyNDU5Nzk3OTRhNGQzMGNlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0dDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC02MCw0OCArNjAsMjggQEAgY2xhc3MgSlNfRVhQT1JU
X1BSSVZBVEUgR0NBY3Rpdml0eUNhbGxiYWNrIDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIAog
ICAgIHN0YXRpYyBib29sIHNfc2hvdWxkQ3JlYXRlR0NUaW1lcjsKIAotI2lmIFVTRShDRikgfHwg
VVNFKEdMSUIpCi0gICAgZG91YmxlIG5leHRGaXJlVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4
dEZpcmVUaW1lOyB9Ci0jZW5kaWYKKyAgICBKU19FWFBPUlRfUFJJVkFURSBkb3VibGUgbmV4dEZp
cmVUaW1lKCk7CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIGRvdWJsZSBsYXN0R0NMZW5ndGgo
KSA9IDA7CisgICAgdmlydHVhbCBTZWNvbmRzIGxhc3RHQ0xlbmd0aCgpID0gMDsKICAgICB2aXJ0
dWFsIGRvdWJsZSBnY1RpbWVTbGljZShzaXplX3QgYnl0ZXMpID0gMDsKICAgICB2aXJ0dWFsIGRv
dWJsZSBkZWF0aFJhdGUoKSA9IDA7CiAKLSNpZiBVU0UoQ0YpCi0gICAgR0NBY3Rpdml0eUNhbGxi
YWNrKFZNKiB2bSkKLSAgICAgICAgOiBCYXNlKHZtKQotICAgICAgICAsIG1fZW5hYmxlZCh0cnVl
KQotICAgICAgICAsIG1fZGVsYXkoc19kZWNhZGUpCi0gICAgewotICAgIH0KLSNlbGlmIFVTRShH
TElCKQogICAgIEdDQWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCiAgICAgICAgIDogQmFzZSh2bSkK
ICAgICAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKICAgICAgICAgLCBtX2RlbGF5KHNfZGVjYWRlKQog
ICAgIHsKICAgICB9Ci0jZWxzZQotICAgIEdDQWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCi0gICAg
ICAgIDogQmFzZSh2bSkKLSAgICAgICAgLCBtX2VuYWJsZWQodHJ1ZSkKLSAgICB7Ci0gICAgfQot
I2VuZGlmCiAKICAgICBib29sIG1fZW5hYmxlZDsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIp
CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjYW5jZWxUaW1lcigpOwotICAgIHZvaWQgc2NoZWR1bGVU
aW1lcihkb3VibGUpOworICAgIHZvaWQgc2NoZWR1bGVUaW1lcihTZWNvbmRzKTsKIAogcHJpdmF0
ZToKLSAgICBkb3VibGUgbV9kZWxheTsKLSAgICBkb3VibGUgbV9uZXh0RmlyZVRpbWUgeyAwIH07
Ci0jZW5kaWYKKyAgICBTZWNvbmRzIG1fZGVsYXk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBl
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3Bw
CmluZGV4IDhjYmZhOWU4MDQwZGM2MWVmYjAxOWIyMTQ1NTQ0NTVlMmZhODMxYjYuLjI5YmQ0YjJh
NWFkNjI0ZjkzNmY1ZDcwNjg5NThlYzg2OTg5MTAxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcApAQCAtMzUsNyArMzUsNyBAQAog
CiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVTbGljZSA9
IC4wMTsgLy8gc2Vjb25kcworc3RhdGljIGNvbnN0IFNlY29uZHMgc3dlZXBUaW1lU2xpY2UgPSAx
MF9tczsgLy8gc2Vjb25kcwogc3RhdGljIGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVUb3RhbCA9IC4x
MDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dlZXBUaW1lTXVsdGlwbGllciA9IDEuMCAvIHN3ZWVw
VGltZVRvdGFsOwogCkBAIC01MiwxMyArNTIsMTMgQEAgSW5jcmVtZW50YWxTd2VlcGVyOjpJbmNy
ZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVhcCkKIAogdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRv
V29yaygpCiB7Ci0gICAgZG9Td2VlcChXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
KTsKKyAgICBkb1N3ZWVwKE1vbm90b25pY1RpbWU6Om5vdygpKTsKIH0KIAotdm9pZCBJbmNyZW1l
bnRhbFN3ZWVwZXI6OmRvU3dlZXAoZG91YmxlIHN3ZWVwQmVnaW5UaW1lKQordm9pZCBJbmNyZW1l
bnRhbFN3ZWVwZXI6OmRvU3dlZXAoTW9ub3RvbmljVGltZSBzd2VlcEJlZ2luVGltZSkKIHsKICAg
ICB3aGlsZSAoc3dlZXBOZXh0QmxvY2soKSkgewotICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUg
PSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3dlZXBCZWdpblRpbWU7Cisg
ICAgICAgIFNlY29uZHMgZWxhcHNlZFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN3ZWVw
QmVnaW5UaW1lOwogICAgICAgICBpZiAoZWxhcHNlZFRpbWUgPCBzd2VlcFRpbWVTbGljZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lu
Y3JlbWVudGFsU3dlZXBlci5oCmluZGV4IDc2ZDQ1NGYzYzA0YjMxYmQxMTRiODA3MTQzZTRkMWUx
NWE0ZTViYzUuLjQ4ODM0YjEzYmM1YzYzYTlhOGFmODJlYjczNGMxZTFiMWE2MzQ1ODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC00
NSw3ICs0NSw3IEBAIGNsYXNzIEluY3JlbWVudGFsU3dlZXBlciA6IHB1YmxpYyBKU1J1bkxvb3BU
aW1lciB7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdG9wU3dlZXBpbmcoKTsKIAogcHJp
dmF0ZToKLSAgICB2b2lkIGRvU3dlZXAoZG91YmxlIHN0YXJ0VGltZSk7CisgICAgdm9pZCBkb1N3
ZWVwKE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIHNjaGVkdWxlVGltZXIoKTsK
ICAgICAKICAgICBNYXJrZWRBbGxvY2F0b3IqIG1fY3VycmVudEFsbG9jYXRvcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcAppbmRl
eCA5NDBkMzlkZTI0YWNmZDMyZDk2YTRhYzIxZWQyYzJhNTMxN2MyMWNkLi42MjM5NjEwOTQ0N2Y2
NGNkNmVkZmNmMmE4ZjlkOWE2MzVjZGIxM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZv
aWQgU3RvcElmTmVjZXNzYXJ5VGltZXI6OnNjaGVkdWxlU29vbigpCiAgICAgICAgIFdURjo6bG9h
ZExvYWRGZW5jZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIHNjaGVkdWxlVGltZXIo
MCk7CisgICAgc2NoZWR1bGVUaW1lcigwX3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcAppbmRl
eCBmZDc5ZDU5ODA0YTdmNDgyZWRmOTQ3ODdlZWRkYTc0OGJkZmQyZjkzLi5jMWU2OTAzYjYxN2Fl
ZWQ5NTAzMjI0NjRiY2UyZWFiNzdmZTEyZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCkBAIC0zNSwxMyArMzUsMTUgQEAKICNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAotI2lm
IFVTRShHTElCKQorI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCiAjaW5jbHVkZSA8Z2xpYi5oPgog
I2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oPgogI2VuZGlmCiAKIG5h
bWVzcGFjZSBKU0MgewogCitjb25zdCBTZWNvbmRzIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7
IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwIH07CisKIHZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVy
RGlkRmlyZSgpCiB7CiAgICAgbV9hcGlMb2NrLT5sb2NrKCk7CkBAIC02Myw4ICs2NSw2IEBAIHZv
aWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZSgpCiAKICNpZiBVU0UoQ0YpCiAKLWNvbnN0
IENGVGltZUludGVydmFsIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSA9IDYwICogNjAgKiAyNCAq
IDM2NSAqIDEwOwotCiBKU1J1bkxvb3BUaW1lcjo6SlNSdW5Mb29wVGltZXIoVk0qIHZtKQogICAg
IDogbV92bSh2bSkKICAgICAsIG1fYXBpTG9jaygmdm0tPmFwaUxvY2soKSkKQEAgLTg1LDcgKzg1
LDcgQEAgdm9pZCBKU1J1bkxvb3BUaW1lcjo6c2V0UnVuTG9vcChDRlJ1bkxvb3BSZWYgcnVuTG9v
cCkKICAgICAgICAgbV9ydW5Mb29wID0gcnVuTG9vcDsKICAgICAgICAgbWVtc2V0KCZtX2NvbnRl
eHQsIDAsIHNpemVvZihDRlJ1bkxvb3BUaW1lckNvbnRleHQpKTsKICAgICAgICAgbV9jb250ZXh0
LmluZm8gPSB0aGlzOwotICAgICAgICBtX3RpbWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNf
ZGVjYWRlLCBzX2RlY2FkZSwgMCwgMCwgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxi
YWNrLCAmbV9jb250ZXh0KSk7CisgICAgICAgIG1fdGltZXIgPSBhZG9wdENGKENGUnVuTG9vcFRp
bWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgp
ICsgc19kZWNhZGUuc2Vjb25kcygpLCBzX2RlY2FkZS5zZWNvbmRzKCksIDAsIDAsIEpTUnVuTG9v
cFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaywgJm1fY29udGV4dCkpOwogICAgICAgICBDRlJ1
bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AuZ2V0KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BD
b21tb25Nb2Rlcyk7CiAgICAgfQogfQpAQCAtMTAwLDg1ICsxMDAsNDMgQEAgdm9pZCBKU1J1bkxv
b3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGNv
bnRleHRQdHIpCiAgICAgc3RhdGljX2Nhc3Q8SlNSdW5Mb29wVGltZXIqPihjb250ZXh0UHRyKS0+
dGltZXJEaWRGaXJlKCk7CiB9CiAKLXZvaWQgSlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIo
ZG91YmxlIGludGVydmFsSW5TZWNvbmRzKQordm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVU
aW1lcihTZWNvbmRzIGludGVydmFsSW5TZWNvbmRzKQogewotICAgIENGUnVuTG9vcFRpbWVyU2V0
TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsg
aW50ZXJ2YWxJblNlY29uZHMpOworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1f
dGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgaW50ZXJ2YWxJblNlY29u
ZHMuc2Vjb25kcygpKTsKICAgICBtX2lzU2NoZWR1bGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBKU1J1
bkxvb3BUaW1lcjo6Y2FuY2VsVGltZXIoKQogewotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZp
cmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNh
ZGUpOworICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENG
QWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpKTsKICAgICBtX2lz
U2NoZWR1bGVkID0gZmFsc2U7CiB9CiAKLSNlbGlmIFVTRShHTElCKQotCi1jb25zdCBsb25nIEpT
UnVuTG9vcFRpbWVyOjpzX2RlY2FkZSA9IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwOwotCi1zdGF0
aWMgR1NvdXJjZUZ1bmNzIEpTUnVuTG9vcFRpbWVyU291cmNlRnVuY3Rpb25zID0gewotICAgIG51
bGxwdHIsIC8vIHByZXBhcmUKLSAgICBudWxscHRyLCAvLyBjaGVjawotICAgIC8vIGRpc3BhdGNo
Ci0gICAgW10oR1NvdXJjZSosIEdTb3VyY2VGdW5jIGNhbGxiYWNrLCBncG9pbnRlciB1c2VyRGF0
YSkgLT4gZ2Jvb2xlYW4KLSAgICB7Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayh1c2VyRGF0YSk7
Ci0gICAgfSwKLSAgICBudWxscHRyLCAvLyBmaW5hbGl6ZQotICAgIG51bGxwdHIsIC8vIGNsb3N1
cmVfY2FsbGJhY2sKLSAgICBudWxscHRyLCAvLyBjbG9zdXJlX21hcnNoYWxsCi19OworI2Vsc2UK
IAogSlNSdW5Mb29wVGltZXI6OkpTUnVuTG9vcFRpbWVyKFZNKiB2bSkKICAgICA6IG1fdm0odm0p
CiAgICAgLCBtX2FwaUxvY2soJnZtLT5hcGlMb2NrKCkpCi0gICAgLCBtX3RpbWVyKGFkb3B0R1Jl
ZihnX3NvdXJjZV9uZXcoJkpTUnVuTG9vcFRpbWVyU291cmNlRnVuY3Rpb25zLCBzaXplb2YoR1Nv
dXJjZSkpKSkKKyAgICAsIG1fdGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmSlNSdW5M
b29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNrKQogewotICAgIGdfc291cmNlX3NldF9wcmlv
cml0eShtX3RpbWVyLmdldCgpLCBSdW5Mb29wU291cmNlUHJpb3JpdHk6OkphdmFzY3JpcHRUaW1l
cik7Ci0gICAgZ19zb3VyY2Vfc2V0X25hbWUobV90aW1lci5nZXQoKSwgIltKYXZhU2NyaXB0Q29y
ZV0gSlNSdW5Mb29wVGltZXIiKTsKLSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lci5n
ZXQoKSwgW10oZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29sZWFuIHsKLSAgICAgICAgYXV0byYg
cnVuTG9vcFRpbWVyID0gKnN0YXRpY19jYXN0PEpTUnVuTG9vcFRpbWVyKj4odXNlckRhdGEpOwot
ICAgICAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShydW5Mb29wVGltZXIubV90aW1lci5nZXQo
KSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSArIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSAqIEdf
VVNFQ19QRVJfU0VDKTsKLSAgICAgICAgcnVuTG9vcFRpbWVyLnRpbWVyRGlkRmlyZSgpOwotICAg
ICAgICByZXR1cm4gR19TT1VSQ0VfQ09OVElOVUU7Ci0gICAgfSwgdGhpcywgbnVsbHB0cik7Ci0g
ICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXIuZ2V0KCksIGdfbWFpbl9jb250ZXh0X2dldF90aHJl
YWRfZGVmYXVsdCgpKTsKKyNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKQorICAgIG1fdGltZXIuc2V0
UHJpb3JpdHkoUnVuTG9vcFNvdXJjZVByaW9yaXR5OjpKYXZhc2NyaXB0VGltZXIpOworICAgIG1f
dGltZXIuc2V0TmFtZSgiW0phdmFTY3JpcHRDb3JlXSBKU1J1bkxvb3BUaW1lciIpOworI2VuZGlm
CisgICAgbV90aW1lci5zdGFydE9uZVNob3Qoc19kZWNhZGUpOwogfQogCiBKU1J1bkxvb3BUaW1l
cjo6fkpTUnVuTG9vcFRpbWVyKCkKIHsKLSAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXIuZ2V0
KCkpOwotfQotCi12b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRl
cnZhbEluU2Vjb25kcykKLXsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdl
dCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgaW50ZXJ2YWxJblNlY29uZHMgKiBHX1VTRUNf
UEVSX1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxlZCA9IHRydWU7Ci19Ci0KLXZvaWQgSlNSdW5Mb29w
VGltZXI6OmNhbmNlbFRpbWVyKCkKLXsKLSAgICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3Rp
bWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVS
X1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxlZCA9IGZhbHNlOwogfQogCi0jZWxzZQotCi1jb25zdCBT
ZWNvbmRzIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEw
IH07Ci0KLUpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcihWTSogdm0pCi0gICAgOiBtX3Zt
KHZtKQotICAgICwgbV9hcGlMb2NrKCZ2bS0+YXBpTG9jaygpKQotICAgICwgbV90aW1lcihSdW5M
b29wOjpjdXJyZW50KCksIHRoaXMsICZKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKQotewot
ICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KHNfZGVjYWRlKTsKLX0KLQotSlNSdW5Mb29wVGltZXI6
On5KU1J1bkxvb3BUaW1lcigpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxs
YmFjaygpCiB7CisgICAgY2FuY2VsVGltZXIoKTsKKyAgICB0aW1lckRpZEZpcmUoKTsKIH0KIAot
dm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVUaW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29u
ZHMpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjpzY2hlZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJ
blNlY29uZHMpCiB7CiAgICAgbV90aW1lci5zdGFydE9uZVNob3QoaW50ZXJ2YWxJblNlY29uZHMp
OwogICAgIG1faXNTY2hlZHVsZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKaW5kZXggMDBmM2U2YmJjY2VjNTg3ZmQ5OWU5OGVkMTYw
NTNmZDY1Nzc1OTgwNi4uZDhlY2U5MjA3OTNmYzMwMzMxZGM4ZmFjZDUxOWZiZTc2Yzk2YTliNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oCkBA
IC0zNiwxMCArMzYsNiBAQAogI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9u
Lmg+CiAjZW5kaWYKIAotI2lmIFVTRShHTElCKQotI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIu
aD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNMb2NrOwpAQCAtNTAsMTIg
KzQ2LDE0IEBAIGNsYXNzIEpTUnVuTG9vcFRpbWVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPEpTUnVuTG9vcFRpbWVyPiB7CiAgICAgSlNSdW5Mb29wVGltZXIoVk0qKTsKICNpZiBVU0Uo
Q0YpCiAgICAgc3RhdGljIHZvaWQgdGltZXJEaWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJS
ZWYsIHZvaWQqKTsKKyNlbHNlCisgICAgdm9pZCB0aW1lckRpZEZpcmVDYWxsYmFjaygpOwogI2Vu
ZGlmCiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIH5KU1J1bkxvb3BUaW1lcigpOwog
ICAgIHZpcnR1YWwgdm9pZCBkb1dvcmsoKSA9IDA7CiAKLSAgICB2b2lkIHNjaGVkdWxlVGltZXIo
ZG91YmxlIGludGVydmFsSW5TZWNvbmRzKTsKKyAgICB2b2lkIHNjaGVkdWxlVGltZXIoU2Vjb25k
cyBpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAgdm9pZCBjYW5jZWxUaW1lcigpOwogICAgIGJvb2wg
aXNTY2hlZHVsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU2NoZWR1bGVkOyB9CiAKQEAgLTY2LDIy
ICs2NCwxOCBAQCBjbGFzcyBKU1J1bkxvb3BUaW1lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxKU1J1bkxvb3BUaW1lcj4gewogcHJvdGVjdGVkOgogICAgIFZNKiBtX3ZtOwogCisgICAg
c3RhdGljIGNvbnN0IFNlY29uZHMgc19kZWNhZGU7CisKICAgICBSZWZQdHI8SlNMb2NrPiBtX2Fw
aUxvY2s7CiAgICAgYm9vbCBtX2lzU2NoZWR1bGVkIHsgZmFsc2UgfTsKICNpZiBVU0UoQ0YpCi0g
ICAgc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHNfZGVjYWRlOwotCiAgICAgUmV0YWluUHRy
PENGUnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVyOwogICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+
IG1fcnVuTG9vcDsKIAogICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBtX2NvbnRleHQ7CiAKICAg
ICBMb2NrIG1fc2h1dGRvd25NdXRleDsKLSNlbGlmIFVTRShHTElCKQotICAgIHN0YXRpYyBjb25z
dCBsb25nIHNfZGVjYWRlOwotICAgIEdSZWZQdHI8R1NvdXJjZT4gbV90aW1lcjsKICNlbHNlCi0g
ICAgc3RhdGljIGNvbnN0IFNlY29uZHMgc19kZWNhZGU7CiAgICAgUnVuTG9vcDo6VGltZXI8SlNS
dW5Mb29wVGltZXI+IG1fdGltZXI7CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21pc2VEZWZlcnJlZFRpbWVyLmNwcAppbmRleCAxMDQ1
ZTQ2NmFhMzYxYTRhNjRhMjljZjBlOTQzNmUzNDU0Y2M5MmUxLi4zZGNhZWFhZmU1YjM4ZmJhNWJh
OGFmOTc2NjBmNTFiYzY1OWZkMjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVkVGltZXIuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAg
dm9pZCBQcm9taXNlRGVmZXJyZWRUaW1lcjo6c2NoZWR1bGVXb3JrU29vbihKU1Byb21pc2VEZWZl
cnJlZCogdGlja2V0LCBUYXNrJiYgdGEKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2Nr
KTsKICAgICBtX3Rhc2tzLmFwcGVuZChzdGQ6Om1ha2VfdHVwbGUodGlja2V0LCBXVEZNb3ZlKHRh
c2spKSk7CiAgICAgaWYgKCFpc1NjaGVkdWxlZCgpICYmICFtX2N1cnJlbnRseVJ1bm5pbmdUYXNr
KQotICAgICAgICBzY2hlZHVsZVRpbWVyKDApOworICAgICAgICBzY2hlZHVsZVRpbWVyKDBfcyk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVu
TG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmluZGV4IDkyY2MxNTBmZGQyOTk1MDQ5
NTIyMjJkMDgyNjgzN2Y0YmJkYjIwMzYuLjNkMDZjM2ViODkzMDBkNjBmYTA4MzY0YmRlZWNkNmYw
OWU4YmE4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTkzLDEwICs5MywxMiBAQCBjbGFzcyBSdW5Mb29wIDog
cHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7CiAKICAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgc3RvcCgpOwogICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0OworICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU2Vjb25kcyBzZWNvbmRzVW50aWxG
aXJlKCkgY29uc3Q7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwogCiAjaWYg
VVNFKEdMSUJfRVZFTlRfTE9PUCkKKyAgICAgICAgdm9pZCBzZXROYW1lKGNvbnN0IGNoYXIqKTsK
ICAgICAgICAgdm9pZCBzZXRQcmlvcml0eShpbnQpOwogI2VuZGlmCiAKQEAgLTEwNiw4ICsxMDgs
MTEgQEAgY2xhc3MgUnVuTG9vcCA6IHB1YmxpYyBGdW5jdGlvbkRpc3BhdGNoZXIgewogICAgICAg
ICBSZWY8UnVuTG9vcD4gbV9ydW5Mb29wOwogCiAjaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkK
KyAgICAgICAgYm9vbCBpc0FjdGl2ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0OwogICAg
ICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCB1aW50NjRfdCBJRCk7CiAgICAg
ICAgIHVpbnQ2NF90IG1fSUQ7CisgICAgICAgIE1vbm90b25pY1RpbWUgbV9uZXh0RmlyZURhdGU7
CisgICAgICAgIFNlY29uZHMgbV9pbnRlcnZhbDsKICAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5n
OwogI2VsaWYgVVNFKENPQ09BX0VWRU5UX0xPT1ApCiAgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVy
RmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCmlu
ZGV4IDQxZjhmOTU3NWM2ODMwMmYzODYyZGMyMjNmZTU0MjdhOGFlMjQ0MTYuLjVlNGM4MDU3ZTkx
MzU0NzU4OTJkMDRlMTY2NTU0MWJiOTI0NTI4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L2NmL1J1bkxvb3BDRi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcApA
QCAtMTE5LDQgKzExOSwxMSBAQCBib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAogICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVy
LmdldCgpKTsKIH0KIAorU2Vjb25kcyBSdW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZp
cmUoKSBjb25zdAoreworICAgIGlmIChpc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm4gc3RkOjpt
YXg8U2Vjb25kcz4oU2Vjb25kcyB7IENGUnVuTG9vcFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1fdGlt
ZXIuZ2V0KCkpIC0gQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgfSwgMF9zKTsKKyAgICByZXR1
cm4gMF9zOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9S
dW5Mb29wR2VuZXJpYy5jcHAKaW5kZXggMTNlMjcxNGMyOWQ0OWJlNTRjZDZjOGMzNDZlOGM3NmM3
NWU5MjRlYi4uYTU2ODBlMjI4NTM1ZTRlZTFjMTJjMTdiMjIyYzI4NDIzMjcwNzNhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKQEAgLTI5Myw0ICsyOTMsMTIg
QEAgYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2Vy
JikgY29uc3QKICAgICByZXR1cm4gbV9zY2hlZHVsZWRUYXNrOwogfQogCitTZWNvbmRzIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BMb2NrKTsKKyAgICBpZiAoaXNBY3RpdmUobG9ja2Vy
KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KG1fc2NoZWR1bGVkVGFzay0+c2No
ZWR1bGVkVGltZVBvaW50KCkgLSBNb25vdG9uaWNUaW1lOjpub3coKSwgMF9zKTsKKyAgICByZXR1
cm4gMF9zOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwIGIvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKaW5kZXggYTNiOTNjNGEyNmI4YTY0YWNmNGI2ZjY5NTBhNjM1YzdkMGIwNWNlZC4uY2Vi
NDliMzAxMjFlNWEzMWQwODVkZjk1NzRiNDAxMWI1MGJjNWY0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9S
dW5Mb29wR0xpYi5jcHAKQEAgLTE3Niw2ICsxNzYsMTEgQEAgUnVuTG9vcDo6VGltZXJCYXNlOjp+
VGltZXJCYXNlKCkKICAgICBnX3NvdXJjZV9kZXN0cm95KG1fc291cmNlLmdldCgpKTsKIH0KIAor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnNldE5hbWUoY29uc3QgY2hhciogbmFtZSkKK3sKKyAg
ICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgbmFtZSk7Cit9CisKIHZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjpzZXRQcmlvcml0eShpbnQgcHJpb3JpdHkpCiB7CiAgICAgZ19zb3Vy
Y2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdldCgpLCBwcmlvcml0eSk7CkBAIC0yMTEsNCArMjE2
LDkgQEAgYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1
cm4gZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUobV9zb3VyY2UuZ2V0KCkpICE9IC0xOwogfQogCitT
ZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+KFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoZ19z
b3VyY2VfZ2V0X3JlYWR5X3RpbWUobV9zb3VyY2UuZ2V0KCkpIC0gZ19nZXRfbW9ub3RvbmljX3Rp
bWUoKSksIDBfcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BX
aW4uY3BwCmluZGV4IDg3NDZiMWVlYTAzODE0NWRmZTg0ODg5OWU1NDUzNmEzN2M4ZGViNGYuLjNl
NGM0Y2VhMTc1YzYzMTJjZTQ4Yjg5YjQ4YjIzM2U5NDg3ODI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVu
TG9vcFdpbi5jcHAKQEAgLTEzMSw3ICsxMzEsOCBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKICAgICAgICAgaWYgKCF0
aW1lci0+bV9pc1JlcGVhdGluZykgewogICAgICAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1l
cnMucmVtb3ZlKGl0KTsKICAgICAgICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9v
cE1lc3NhZ2VXaW5kb3csIElEKTsKLSAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIG1fbmV4dEZpcmVEYXRlID0gTW9ub3RvbmljVGltZTo6bm93KCkgKyBtX2ludGVydmFsOwog
ICAgIH0KIAogICAgIHRpbWVyLT5maXJlZCgpOwpAQCAtMTYwLDYgKzE2MSw4IEBAIHZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBl
YXQpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2sp
OwogICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CiAgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRp
bWVycy5zZXQobV9JRCwgdGhpcyk7CisgICAgbV9pbnRlcnZhbCA9IFNlY29uZHMobmV4dEZpcmVJ
bnRlcnZhbCk7CisgICAgbV9uZXh0RmlyZURhdGUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIG1f
aW50ZXJ2YWw7CiAgICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsKIH0KIApAQCAtMTc0LDEwICsx
NzcsMjQgQEAgdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQogICAgIDo6S2lsbFRpbWVy
KG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCk7CiB9CiAKK2Jvb2wgUnVu
TG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZShjb25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9
CisKIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0CiB7CiAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOwotICAgIHJldHVy
biBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmNvbnRhaW5zKG1fSUQpOworICAgIHJldHVybiBp
c0FjdGl2ZShsb2NrZXIpOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25k
c1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5t
X2FjdGl2ZVRpbWVyc0xvY2spOworICAgIGlmIChpc0FjdGl2ZShsb2NrZXIpKQorICAgICAgICBy
ZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9uZXh0RmlyZURhdGUgLSBNb25vdG9uaWNUaW1lOjpu
b3coKSwgMF9zKTsKKyAgICByZXR1cm4gMF9zOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306806</attachid>
            <date>2017-04-11 05:18:01 -0700</date>
            <delta_ts>2017-04-11 05:28:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170723-20170411211759.patch</filename>
            <type>text/plain</type>
            <size>28073</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZGM3ZmM0MzMyZmE1M2UxYzg3NWRkMDIyYTJkNWY5MmU4OTgwYjc4Li45YWFmNjdmYWM1ODg1OGUy
M2QwNWY2ODVjODI3ZjgzYTBlNmU1OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0OSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsgcG9y
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBtYWtlcyBHVEsgcG9ydCB1c2UgUnVuTG9vcDo6VGltZXIgZm9yIEpTUnVuTG9vcFRpbWVy
LgorICAgICAgICBPbmx5IENvY29hLWJhc2VkIHBvcnRzIHVzZSBwbGF0Zm9ybS1zcGVjaWZpYyBU
aW1lciBiZWNhdXNlIGl0CisgICAgICAgIGhhcyBhZGRpdGlvbmFsIGZlYXR1cmUgdGhhdCBjaGFu
Z2VzIFJ1bkxvb3AgdG8gdGhlIFdlYlRocmVhZCBvbmUuCisKKyAgICAgICAgQW5kIHdlIGVuYWJs
ZSBIZWFwIHRpbWVycyBpbiBhbGwgdGhlIHBvcnRzIGluY2x1ZGluZyBKU0NPbmx5IHBvcnQuCisK
KyAgICAgICAgKiBoZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlND
OjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgpOgorICAgICAgICAqIGhlYXAv
RWRlbkdDQWN0aXZpdHlDYWxsYmFjay5oOgorICAgICAgICAqIGhlYXAvRnVsbEdDQWN0aXZpdHlD
YWxsYmFjay5jcHA6CisgICAgICAgIChKU0M6OkZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6Omxhc3RH
Q0xlbmd0aCk6CisgICAgICAgICogaGVhcC9GdWxsR0NBY3Rpdml0eUNhbGxiYWNrLmg6CisgICAg
ICAgICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwOgorICAgICAgICAoSlNDOjpHQ0FjdGl2
aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayk6CisgICAgICAgIChKU0M6OkdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Xb3JrKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpz
Y2hlZHVsZVRpbWVyKToKKyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxU
aW1lcik6CisgICAgICAgIChKU0M6OkdDQWN0aXZpdHlDYWxsYmFjazo6bmV4dEZpcmVUaW1lKToK
KyAgICAgICAgKEpTQzo6R0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZSk6CisgICAgICAg
ICogaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaDoKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVudGFsU3dlZXBlcjo6ZG9Xb3JrKToK
KyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKToKKyAgICAgICAgKiBo
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAgICAqIGhlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuY3BwOgorICAgICAgICAoSlNDOjpTdG9wSWZOZWNlc3NhcnlUaW1lcjo6c2NoZWR1bGVT
b29uKToKKyAgICAgICAgKiBydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNSdW5Mb29wVGltZXI6OnNldFJ1bkxvb3ApOgorICAgICAgICAoSlNDOjpKU1J1bkxvb3BU
aW1lcjo6c2NoZWR1bGVUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpjYW5j
ZWxUaW1lcik6CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjpKU1J1bkxvb3BUaW1lcik6
CisgICAgICAgIChKU0M6OkpTUnVuTG9vcFRpbWVyOjp+SlNSdW5Mb29wVGltZXIpOgorICAgICAg
ICAoSlNDOjpKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJhY2spOgorICAgICAgICAq
IHJ1bnRpbWUvSlNSdW5Mb29wVGltZXIuaDoKKyAgICAgICAgKiBydW50aW1lL1Byb21pc2VEZWZl
cnJlZFRpbWVyLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvbWlzZURlZmVycmVkVGltZXI6OnNjaGVk
dWxlV29ya1Nvb24pOgorCisyMDE3LTA0LTExICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJsZSBKU1J1bkxvb3BUaW1lciBmb3IgSlND
T25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggY2E4MDQyZDVjYzIwNGFlNzUyZmIxYzk5MDVhMmQ4M2Ez
YzhlM2Y5MS4uZTY1MTBiYzAwMjQwNjVjMjNjNGFhZTJkMTg0NTQ4ZTk1MGQwMThhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwyOSBAQAogMjAxNy0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdt
YWlsLmNvbT4KIAorICAgICAgICBbSlNDXVtHVEtdIFVzZSBSdW5Mb29wOjpUaW1lciBpbiBHVEsg
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcw
NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHNlY29uZHNVbnRpbEZpcmUgbWV0aG9kLiBBbmQgYWRkIHNldE5hbWUgYW5kIHNldFByaW9yaXR5
CisgICAgICAgIGZvciBHVEsgUnVuTG9vcDo6VGltZXIuCisKKyAgICAgICAgKiB3dGYvUnVuTG9v
cC5oOgorICAgICAgICAqIHd0Zi9jZi9SdW5Mb29wQ0YuY3BwOgorICAgICAgICAoV1RGOjpSdW5M
b29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorICAgICAgICAqIHd0Zi9nZW5lcmlj
L1J1bkxvb3BHZW5lcmljLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpz
ZWNvbmRzVW50aWxGaXJlKToKKyAgICAgICAgKiB3dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHA6Cisg
ICAgICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2V0TmFtZSk6CisgICAgICAgIChXVEY6
OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSk6CisgICAgICAgICogd3RmL3dp
bi9SdW5Mb29wV2luLmNwcDoKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1l
ckZpcmVkKToKKyAgICAgICAgKFdURjo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAg
ICAgIChXVEY6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUpOgorICAgICAgICAoV1RGOjpS
dW5Mb29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUpOgorCisyMDE3LTA0LTExICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEVuYWJs
ZSBKU1J1bkxvb3BUaW1lciBmb3IgSlNDT25seSBhbmQgV2luZG93cwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU1CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5kZXgg
MDdlNmM3YTNmMDg1NzZlMTQzN2YyODFlNTM3NWVjMzYwYzNjZDhlNy4uYjZiZGUzZGQxN2Y4NWQ0
MGMyOTdjZDM2ZDQ3NzEwN2VmMGZkNWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMxLDggKzMxLDYgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCiAgICAg
OiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcCkKIHsKQEAgLTQzLDkgKzQxLDkgQEAgdm9pZCBFZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQogICAgIG1fdm0tPmhlYXAuY29sbGVj
dEFzeW5jKENvbGxlY3Rpb25TY29wZTo6RWRlbik7CiB9CiAKLWRvdWJsZSBFZGVuR0NBY3Rpdml0
eUNhbGxiYWNrOjpsYXN0R0NMZW5ndGgoKQorU2Vjb25kcyBFZGVuR0NBY3Rpdml0eUNhbGxiYWNr
OjpsYXN0R0NMZW5ndGgoKQogewotICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RFZGVuR0NMZW5n
dGgoKS5zZWNvbmRzKCk7CisgICAgcmV0dXJuIG1fdm0tPmhlYXAubGFzdEVkZW5HQ0xlbmd0aCgp
OwogfQogCiBkb3VibGUgRWRlbkdDQWN0aXZpdHlDYWxsYmFjazo6ZGVhdGhSYXRlKCkKQEAgLTY5
LDMyICs2Nyw0IEBAIGRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShz
aXplX3QgYnl0ZXMpCiAgICAgcmV0dXJuIHN0ZDo6bWluKChzdGF0aWNfY2FzdDxkb3VibGU+KGJ5
dGVzKSAvIE1CKSAqIE9wdGlvbnM6OnBlcmNlbnRDUFVQZXJNQkZvckVkZW5UaW1lcigpLCBPcHRp
b25zOjpjb2xsZWN0aW9uVGltZXJNYXhQZXJjZW50Q1BVKCkpOwogfQogCi0jZWxzZQotCi1FZGVu
R0NBY3Rpdml0eUNhbGxiYWNrOjpFZGVuR0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXApCi0g
ICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0KLQotdm9pZCBFZGVuR0NB
Y3Rpdml0eUNhbGxiYWNrOjpkb0NvbGxlY3Rpb24oKQotewotfQotCi1kb3VibGUgRWRlbkdDQWN0
aXZpdHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotZG91
YmxlIEVkZW5HQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCi17Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWRvdWJsZSBFZGVuR0NBY3Rpdml0eUNhbGxiYWNrOjpnY1RpbWVTbGljZShzaXplX3Qp
Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQ0YpIHx8IFVTRShHTElCKQot
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0VkZW5HQ0FjdGl2aXR5Q2FsbGJhY2suaAppbmRleCBjYzRlOTNmY2I5ZjMwMzljYTYzNTAyNTg2
YmFkODc5ZjhhYjU4OTM0Li44NzQ4MmJkZmIzMDE4NmMwMTZiMWE2YTg0Y2JhZWQ5OTI3MDlmYzk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9FZGVuR0NBY3Rpdml0eUNh
bGxiYWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRWRlbkdDQWN0aXZpdHlD
YWxsYmFjay5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIEVkZW5H
Q0FjdGl2aXR5Q2FsbGJhY2sgOiBwdWJsaWMgR0NBY3Rpdml0eUNhbGxiYWNrIHsKICAgICB2b2lk
IGRvQ29sbGVjdGlvbigpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZG91YmxlIGxhc3RH
Q0xlbmd0aCgpIG92ZXJyaWRlOworICAgIFNlY29uZHMgbGFzdEdDTGVuZ3RoKCkgb3ZlcnJpZGU7
CiAgICAgZG91YmxlIGdjVGltZVNsaWNlKHNpemVfdCBieXRlcykgb3ZlcnJpZGU7CiAgICAgZG91
YmxlIGRlYXRoUmF0ZSgpIG92ZXJyaWRlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5kZXggZTU3ZGQzYTFjNzk3
MTBmMTI1ODZhOTAzODcxN2FkZDRkYjY2MTM5ZC4uYTcxYzc2NjI0MGQwZjQ1YjRiMTNhYWE2Yjdj
NjUzMDZiNGQ0Mzc4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVs
bEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
RnVsbEdDQWN0aXZpdHlDYWxsYmFjay5jcHAKQEAgLTMwLDggKzMwLDYgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLSNpZiBVU0UoQ0YpIHx8IFVTRShHTElCKQotCiAjaWYgIVBMQVRGT1JNKElPUykK
IGNvbnN0IGRvdWJsZSBwYWdpbmdUaW1lT3V0ID0gMC4xOyAvLyBUaW1lIGluIHNlY29uZHMgdG8g
YWxsb3cgb3Bwb3J0dW5pc3RpYyB0aW1lciB0byBpdGVyYXRlIG92ZXIgYWxsIGJsb2NrcyB0byBz
ZWUgaWYgdGhlIEhlYXAgaXMgcGFnZWQgb3V0LgogI2VuZGlmCkBAIC01OCw5ICs1Niw5IEBAIHZv
aWQgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKICAgICBoZWFwLmNvbGxl
Y3RBc3luYyhDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOwogfQogCi1kb3VibGUgRnVsbEdDQWN0aXZp
dHlDYWxsYmFjazo6bGFzdEdDTGVuZ3RoKCkKK1NlY29uZHMgRnVsbEdDQWN0aXZpdHlDYWxsYmFj
azo6bGFzdEdDTGVuZ3RoKCkKIHsKLSAgICByZXR1cm4gbV92bS0+aGVhcC5sYXN0RnVsbEdDTGVu
Z3RoKCkuc2Vjb25kcygpOworICAgIHJldHVybiBtX3ZtLT5oZWFwLmxhc3RGdWxsR0NMZW5ndGgo
KTsKIH0KIAogZG91YmxlIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRlYXRoUmF0ZSgpCkBAIC04
NCwzMiArODIsNCBAQCBkb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uo
c2l6ZV90IGJ5dGVzKQogICAgIHJldHVybiBzdGQ6Om1pbigoc3RhdGljX2Nhc3Q8ZG91YmxlPihi
eXRlcykgLyBNQikgKiBPcHRpb25zOjpwZXJjZW50Q1BVUGVyTUJGb3JGdWxsVGltZXIoKSwgT3B0
aW9uczo6Y29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSgpKTsKIH0KIAotI2Vsc2UKLQotRnVs
bEdDQWN0aXZpdHlDYWxsYmFjazo6RnVsbEdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBoZWFwKQot
ICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXApCi17Ci19Ci0KLXZvaWQgRnVsbEdDQWN0aXZp
dHlDYWxsYmFjazo6ZG9Db2xsZWN0aW9uKCkKLXsKLX0KLQotZG91YmxlIEZ1bGxHQ0FjdGl2aXR5
Q2FsbGJhY2s6Omxhc3RHQ0xlbmd0aCgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWRvdWJsZSBG
dWxsR0NBY3Rpdml0eUNhbGxiYWNrOjpkZWF0aFJhdGUoKQotewotICAgIHJldHVybiAwOwotfQot
Ci1kb3VibGUgRnVsbEdDQWN0aXZpdHlDYWxsYmFjazo6Z2NUaW1lU2xpY2Uoc2l6ZV90KQotewot
ICAgIHJldHVybiAwOwotfQotCi0jZW5kaWYgLy8gVVNFKENGKSB8fCBVU0UoR0xJQikKLQogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9G
dWxsR0NBY3Rpdml0eUNhbGxiYWNrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GdWxs
R0NBY3Rpdml0eUNhbGxiYWNrLmgKaW5kZXggNTEwNmVlNzk4Nzg5NGI5OTkyOTkwYWJhMTBmNjhh
MzkwMDllZmVlNi4uNDNkNTNiOGExZTMxODE2MGI1MWZjZmViNDZmZWViZmE2NzllMmQzZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvRnVsbEdDQWN0aXZpdHlDYWxsYmFj
ay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Z1bGxHQ0FjdGl2aXR5Q2FsbGJh
Y2suaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBKU19FWFBPUlRfUFJJVkFURSBGdWxsR0NBY3Rp
dml0eUNhbGxiYWNrIDogcHVibGljIEdDQWN0aXZpdHlDYWxsYmFjayB7CiAgICAgdm9pZCBzZXRE
aWRTeW5jR0NSZWNlbnRseSgpIHsgbV9kaWRTeW5jR0NSZWNlbnRseSA9IHRydWU7IH0KIAogcHJv
dGVjdGVkOgotICAgIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSBvdmVycmlkZTsKKyAgICBTZWNvbmRz
IGxhc3RHQ0xlbmd0aCgpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBnY1RpbWVTbGljZShzaXplX3Qg
Ynl0ZXMpIG92ZXJyaWRlOwogICAgIGRvdWJsZSBkZWF0aFJhdGUoKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAKaW5k
ZXggMzgwZDkxYzdjMDZlMGM2Y2IxMWE5YzdmMGNhZDU5MGYwYjQ0NWI5OS4uZmJkYmQ2ODRhOGM3
OTBlYTE1ZDYzZWNhMGVlZjQyYTk3NDIyZDE2NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCkBAIC0zNCwzMCArMzQsMTYgQEAKICNp
bmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlZNLmgiCiAKLSNpZiBVU0UoR0xJQikKLSNp
bmNsdWRlIDxnbGliLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIEpTQyB7CiAKIGJvb2wgR0NBY3Rp
dml0eUNhbGxiYWNrOjpzX3Nob3VsZENyZWF0ZUdDVGltZXIgPSB0cnVlOwogCi0jaWYgVVNFKENG
KSB8fCBVU0UoR0xJQikKLQogY29uc3QgZG91YmxlIHRpbWVyU2xvcCA9IDIuMDsgLy8gRnVkZ2Ug
ZmFjdG9yIHRvIGF2b2lkIHBlcmZvcm1hbmNlIGNvc3Qgb2YgcmVzZXR0aW5nIHRpbWVyLgogCi0j
aWYgVVNFKENGKQogR0NBY3Rpdml0eUNhbGxiYWNrOjpHQ0FjdGl2aXR5Q2FsbGJhY2soSGVhcCog
aGVhcCkKICAgICA6IEdDQWN0aXZpdHlDYWxsYmFjayhoZWFwLT52bSgpKQogewogfQotI2VsaWYg
VVNFKEdMSUIpCi1HQ0FjdGl2aXR5Q2FsbGJhY2s6OkdDQWN0aXZpdHlDYWxsYmFjayhIZWFwKiBo
ZWFwKQotICAgIDogR0NBY3Rpdml0eUNhbGxiYWNrKGhlYXAtPnZtKCkpCi17Ci0gICAgZ19zb3Vy
Y2Vfc2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSAr
IHNfZGVjYWRlICogR19VU0VDX1BFUl9TRUMpOwotfQotI2VuZGlmCiAKIHZvaWQgR0NBY3Rpdml0
eUNhbGxiYWNrOjpkb1dvcmsoKQogewpAQCAtNjcsNyArNTMsNyBAQCB2b2lkIEdDQWN0aXZpdHlD
YWxsYmFjazo6ZG9Xb3JrKCkKICAgICAKICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKG1fdm0pOwog
ICAgIGlmIChoZWFwLT5pc0RlZmVycmVkKCkpIHsKLSAgICAgICAgc2NoZWR1bGVUaW1lcigwKTsK
KyAgICAgICAgc2NoZWR1bGVUaW1lcigwX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC03NSw0MiArNjEsNDggQEAgdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCiB9CiAK
ICNpZiBVU0UoQ0YpCi12b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihkb3Vi
bGUgbmV3RGVsYXkpCit2b2lkIEdDQWN0aXZpdHlDYWxsYmFjazo6c2NoZWR1bGVUaW1lcihTZWNv
bmRzIG5ld0RlbGF5KQogewogICAgIGlmIChuZXdEZWxheSAqIHRpbWVyU2xvcCA+IG1fZGVsYXkp
CiAgICAgICAgIHJldHVybjsKLSAgICBkb3VibGUgZGVsdGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7
CisgICAgU2Vjb25kcyBkZWx0YSA9IG1fZGVsYXkgLSBuZXdEZWxheTsKICAgICBtX2RlbGF5ID0g
bmV3RGVsYXk7Ci0gICAgbV9uZXh0RmlyZVRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCkgKyBuZXdE
ZWxheTsKLSAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBD
RlJ1bkxvb3BUaW1lckdldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhKTsKKyAg
ICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRlJ1bkxvb3BU
aW1lckdldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpKSAtIGRlbHRhLnNlY29uZHMoKSk7CiB9
CiAKIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWxUaW1lcigpCiB7CiAgICAgbV9kZWxh
eSA9IHNfZGVjYWRlOwotICAgIG1fbmV4dEZpcmVUaW1lID0gMDsKLSAgICBDRlJ1bkxvb3BUaW1l
clNldE5leHRGaXJlRGF0ZShtX3RpbWVyLmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQo
KSArIHNfZGVjYWRlKTsKKyAgICBDRlJ1bkxvb3BUaW1lclNldE5leHRGaXJlRGF0ZShtX3RpbWVy
LmdldCgpLCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLnNlY29uZHMoKSk7
CiB9Ci0jZWxpZiBVU0UoR0xJQikKLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpzY2hlZHVsZVRp
bWVyKGRvdWJsZSBuZXdEZWxheSkKKworZG91YmxlIEdDQWN0aXZpdHlDYWxsYmFjazo6bmV4dEZp
cmVUaW1lKCkKK3sKKyAgICByZXR1cm4gQ0ZSdW5Mb29wVGltZXJHZXROZXh0RmlyZURhdGUobV90
aW1lci5nZXQoKSk7Cit9CisjZWxzZQordm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OnNjaGVkdWxl
VGltZXIoU2Vjb25kcyBuZXdEZWxheSkKIHsKLSAgICBBU1NFUlQobmV3RGVsYXkgPj0gMCk7CiAg
ICAgaWYgKG5ld0RlbGF5ICogdGltZXJTbG9wID4gbV9kZWxheSkKICAgICAgICAgcmV0dXJuOwot
Ci0gICAgZG91YmxlIGRlbHRhID0gbV9kZWxheSAtIG5ld0RlbGF5OworICAgIFNlY29uZHMgZGVs
dGEgPSBtX2RlbGF5IC0gbmV3RGVsYXk7CiAgICAgbV9kZWxheSA9IG5ld0RlbGF5OwotICAgIG1f
bmV4dEZpcmVUaW1lID0gV1RGOjpjdXJyZW50VGltZSgpICsgbmV3RGVsYXk7CiAKLSAgICBnaW50
NjQgcmVhZHlUaW1lID0gZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQoKSk7Ci0g
ICAgZ19zb3VyY2Vfc2V0X3JlYWR5X3RpbWUobV90aW1lci5nZXQoKSwgcmVhZHlUaW1lIC0gZGVs
dGEgKiBHX1VTRUNfUEVSX1NFQyk7CisgICAgU2Vjb25kcyBzZWNvbmRzVW50aWxGaXJlID0gbV90
aW1lci5zZWNvbmRzVW50aWxGaXJlKCk7CisgICAgbV90aW1lci5zdGFydE9uZVNob3Qoc2Vjb25k
c1VudGlsRmlyZSAtIGRlbHRhKTsKIH0KIAogdm9pZCBHQ0FjdGl2aXR5Q2FsbGJhY2s6OmNhbmNl
bFRpbWVyKCkKIHsKICAgICBtX2RlbGF5ID0gc19kZWNhZGU7Ci0gICAgbV9uZXh0RmlyZVRpbWUg
PSAwOwotICAgIGdfc291cmNlX3NldF9yZWFkeV90aW1lKG1fdGltZXIuZ2V0KCksIGdfZ2V0X21v
bm90b25pY190aW1lKCkgKyBzX2RlY2FkZSAqIEdfVVNFQ19QRVJfU0VDKTsKKyAgICBtX3RpbWVy
LnN0YXJ0T25lU2hvdChzX2RlY2FkZSk7Cit9CisKK2RvdWJsZSBHQ0FjdGl2aXR5Q2FsbGJhY2s6
Om5leHRGaXJlVGltZSgpCit7CisgICAgLy8gRklYTUU6IFNob3VsZCByZXR1cm4gTW9ub3Rvbmlj
VGltZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcw
NzI1CisgICAgcmV0dXJuIChNb25vdG9uaWNUaW1lOjpub3coKSArIG1fdGltZXIuc2Vjb25kc1Vu
dGlsRmlyZSgpKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CiB9CiAjZW5kaWYKIApAQCAt
MTIxLDcgKzExMyw3IEBAIHZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpkaWRBbGxvY2F0ZShzaXpl
X3QgYnl0ZXMpCiAgICAgaWYgKCFieXRlcykKICAgICAgICAgYnl0ZXMgPSAxOwogICAgIGRvdWJs
ZSBieXRlc0V4cGVjdGVkVG9SZWNsYWltID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihieXRlcykgKiBk
ZWF0aFJhdGUoKTsKLSAgICBkb3VibGUgbmV3RGVsYXkgPSBsYXN0R0NMZW5ndGgoKSAvIGdjVGlt
ZVNsaWNlKGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0pOworICAgIFNlY29uZHMgbmV3RGVsYXkgPSBs
YXN0R0NMZW5ndGgoKSAvIGdjVGltZVNsaWNlKGJ5dGVzRXhwZWN0ZWRUb1JlY2xhaW0pOwogICAg
IHNjaGVkdWxlVGltZXIobmV3RGVsYXkpOwogfQogCkBAIC0xMzUsMzAgKzEyNyw1IEBAIHZvaWQg
R0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQogICAgIGNhbmNlbFRpbWVyKCk7CiB9CiAKLSNl
bHNlCi0KLUdDQWN0aXZpdHlDYWxsYmFjazo6R0NBY3Rpdml0eUNhbGxiYWNrKEhlYXAqIGhlYXAp
Ci0gICAgOiBHQ0FjdGl2aXR5Q2FsbGJhY2soaGVhcC0+dm0oKSkKLXsKLX0KLQotdm9pZCBHQ0Fj
dGl2aXR5Q2FsbGJhY2s6OmRvV29yaygpCi17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNr
OjpkaWRBbGxvY2F0ZShzaXplX3QpCi17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjp3
aWxsQ29sbGVjdCgpCi17Ci19Ci0KLXZvaWQgR0NBY3Rpdml0eUNhbGxiYWNrOjpjYW5jZWwoKQot
ewotfQotCi0jZW5kaWYKLQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9HQ0FjdGl2aXR5Q2FsbGJhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dD
QWN0aXZpdHlDYWxsYmFjay5oCmluZGV4IGFmNDc1ODhkNjAxMTlhZDhkZDUxNWQ4ZjRhNTBjZmM3
Mjk1ODEzMTQuLjc5NTliODQ1ODJjMjJkNDYyMDdkMjAyNDU5Nzk3OTRhNGQzMGNlYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQWN0aXZpdHlDYWxsYmFjay5oCkBAIC02
MCw0OCArNjAsMjggQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgR0NBY3Rpdml0eUNhbGxiYWNr
IDogcHVibGljIEpTUnVuTG9vcFRpbWVyIHsKIAogICAgIHN0YXRpYyBib29sIHNfc2hvdWxkQ3Jl
YXRlR0NUaW1lcjsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCi0gICAgZG91YmxlIG5leHRG
aXJlVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dEZpcmVUaW1lOyB9Ci0jZW5kaWYKKyAgICBK
U19FWFBPUlRfUFJJVkFURSBkb3VibGUgbmV4dEZpcmVUaW1lKCk7CiAKIHByb3RlY3RlZDoKLSAg
ICB2aXJ0dWFsIGRvdWJsZSBsYXN0R0NMZW5ndGgoKSA9IDA7CisgICAgdmlydHVhbCBTZWNvbmRz
IGxhc3RHQ0xlbmd0aCgpID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBnY1RpbWVTbGljZShzaXpl
X3QgYnl0ZXMpID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWF0aFJhdGUoKSA9IDA7CiAKLSNp
ZiBVU0UoQ0YpCi0gICAgR0NBY3Rpdml0eUNhbGxiYWNrKFZNKiB2bSkKLSAgICAgICAgOiBCYXNl
KHZtKQotICAgICAgICAsIG1fZW5hYmxlZCh0cnVlKQotICAgICAgICAsIG1fZGVsYXkoc19kZWNh
ZGUpCi0gICAgewotICAgIH0KLSNlbGlmIFVTRShHTElCKQogICAgIEdDQWN0aXZpdHlDYWxsYmFj
ayhWTSogdm0pCiAgICAgICAgIDogQmFzZSh2bSkKICAgICAgICAgLCBtX2VuYWJsZWQodHJ1ZSkK
ICAgICAgICAgLCBtX2RlbGF5KHNfZGVjYWRlKQogICAgIHsKICAgICB9Ci0jZWxzZQotICAgIEdD
QWN0aXZpdHlDYWxsYmFjayhWTSogdm0pCi0gICAgICAgIDogQmFzZSh2bSkKLSAgICAgICAgLCBt
X2VuYWJsZWQodHJ1ZSkKLSAgICB7Ci0gICAgfQotI2VuZGlmCiAKICAgICBib29sIG1fZW5hYmxl
ZDsKIAotI2lmIFVTRShDRikgfHwgVVNFKEdMSUIpCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjYW5j
ZWxUaW1lcigpOwotICAgIHZvaWQgc2NoZWR1bGVUaW1lcihkb3VibGUpOworICAgIHZvaWQgc2No
ZWR1bGVUaW1lcihTZWNvbmRzKTsKIAogcHJpdmF0ZToKLSAgICBkb3VibGUgbV9kZWxheTsKLSAg
ICBkb3VibGUgbV9uZXh0RmlyZVRpbWUgeyAwIH07Ci0jZW5kaWYKKyAgICBTZWNvbmRzIG1fZGVs
YXk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCmluZGV4IDhjYmZhOWU4MDQwZGM2MWVmYjAx
OWIyMTQ1NTQ0NTVlMmZhODMxYjYuLjI5YmQ0YjJhNWFkNjI0ZjkzNmY1ZDcwNjg5NThlYzg2OTg5
MTAxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxT
d2VlcGVyLmNwcApAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGlj
IGNvbnN0IGRvdWJsZSBzd2VlcFRpbWVTbGljZSA9IC4wMTsgLy8gc2Vjb25kcworc3RhdGljIGNv
bnN0IFNlY29uZHMgc3dlZXBUaW1lU2xpY2UgPSAxMF9tczsgLy8gc2Vjb25kcwogc3RhdGljIGNv
bnN0IGRvdWJsZSBzd2VlcFRpbWVUb3RhbCA9IC4xMDsKIHN0YXRpYyBjb25zdCBkb3VibGUgc3dl
ZXBUaW1lTXVsdGlwbGllciA9IDEuMCAvIHN3ZWVwVGltZVRvdGFsOwogCkBAIC01MiwxMyArNTIs
MTMgQEAgSW5jcmVtZW50YWxTd2VlcGVyOjpJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVhcCkK
IAogdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvV29yaygpCiB7Ci0gICAgZG9Td2VlcChXVEY6
Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKTsKKyAgICBkb1N3ZWVwKE1vbm90b25pY1Rp
bWU6Om5vdygpKTsKIH0KIAotdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoZG91Ymxl
IHN3ZWVwQmVnaW5UaW1lKQordm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoTW9ub3Rv
bmljVGltZSBzd2VlcEJlZ2luVGltZSkKIHsKICAgICB3aGlsZSAoc3dlZXBOZXh0QmxvY2soKSkg
ewotICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpIC0gc3dlZXBCZWdpblRpbWU7CisgICAgICAgIFNlY29uZHMgZWxhcHNlZFRpbWUg
PSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHN3ZWVwQmVnaW5UaW1lOwogICAgICAgICBpZiAoZWxh
cHNlZFRpbWUgPCBzd2VlcFRpbWVTbGljZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCmluZGV4IDc2
ZDQ1NGYzYzA0YjMxYmQxMTRiODA3MTQzZTRkMWUxNWE0ZTViYzUuLjQ4ODM0YjEzYmM1YzYzYTlh
OGFmODJlYjczNGMxZTFiMWE2MzQ1ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIEluY3JlbWVu
dGFsU3dlZXBlciA6IHB1YmxpYyBKU1J1bkxvb3BUaW1lciB7CiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzdG9wU3dlZXBpbmcoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGRvU3dlZXAoZG91
YmxlIHN0YXJ0VGltZSk7CisgICAgdm9pZCBkb1N3ZWVwKE1vbm90b25pY1RpbWUgc3RhcnRUaW1l
KTsKICAgICB2b2lkIHNjaGVkdWxlVGltZXIoKTsKICAgICAKICAgICBNYXJrZWRBbGxvY2F0b3Iq
IG1fY3VycmVudEFsbG9jYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcAppbmRleCA5NDBkMzlkZTI0YWNmZDMyZDk2YTRhYzIx
ZWQyYzJhNTMxN2MyMWNkLi42MjM5NjEwOTQ0N2Y2NGNkNmVkZmNmMmE4ZjlkOWE2MzVjZGIxM2Qz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9wSWZOZWNlc3NhcnlU
aW1lci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvcElmTmVjZXNzYXJ5
VGltZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgU3RvcElmTmVjZXNzYXJ5VGltZXI6OnNj
aGVkdWxlU29vbigpCiAgICAgICAgIFdURjo6bG9hZExvYWRGZW5jZSgpOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIHNjaGVkdWxlVGltZXIoMCk7CisgICAgc2NoZWR1bGVUaW1lcigwX3Mp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUnVuTG9vcFRpbWVyLmNwcAppbmRleCBmZDc5ZDU5ODA0YTdmNDgyZWRmOTQ3ODdl
ZWRkYTc0OGJkZmQyZjkzLi5jMWU2OTAzYjYxN2FlZWQ5NTAzMjI0NjRiY2UyZWFiNzdmZTEyZjA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1l
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIu
Y3BwCkBAIC0zNSwxMyArMzUsMTUgQEAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAotI2lmIFVTRShHTElCKQorI2lmIFVTRShHTElCX0VW
RU5UX0xPT1ApCiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL1J1bkxvb3BT
b3VyY2VQcmlvcml0eS5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewogCitjb25zdCBTZWNv
bmRzIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwIH07
CisKIHZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZSgpCiB7CiAgICAgbV9hcGlMb2Nr
LT5sb2NrKCk7CkBAIC02Myw4ICs2NSw2IEBAIHZvaWQgSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlk
RmlyZSgpCiAKICNpZiBVU0UoQ0YpCiAKLWNvbnN0IENGVGltZUludGVydmFsIEpTUnVuTG9vcFRp
bWVyOjpzX2RlY2FkZSA9IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwOwotCiBKU1J1bkxvb3BUaW1l
cjo6SlNSdW5Mb29wVGltZXIoVk0qIHZtKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fYXBpTG9j
aygmdm0tPmFwaUxvY2soKSkKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBKU1J1bkxvb3BUaW1lcjo6
c2V0UnVuTG9vcChDRlJ1bkxvb3BSZWYgcnVuTG9vcCkKICAgICAgICAgbV9ydW5Mb29wID0gcnVu
TG9vcDsKICAgICAgICAgbWVtc2V0KCZtX2NvbnRleHQsIDAsIHNpemVvZihDRlJ1bkxvb3BUaW1l
ckNvbnRleHQpKTsKICAgICAgICAgbV9jb250ZXh0LmluZm8gPSB0aGlzOwotICAgICAgICBtX3Rp
bWVyID0gYWRvcHRDRihDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBD
RkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIHNfZGVjYWRlLCBzX2RlY2FkZSwgMCwgMCwgSlNS
dW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxiYWNrLCAmbV9jb250ZXh0KSk7CisgICAgICAg
IG1fdGltZXIgPSBhZG9wdENGKENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUuc2Vjb25kcygpLCBzX2Rl
Y2FkZS5zZWNvbmRzKCksIDAsIDAsIEpTUnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFj
aywgJm1fY29udGV4dCkpOwogICAgICAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AuZ2V0
KCksIG1fdGltZXIuZ2V0KCksIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7CiAgICAgfQogfQpAQCAt
MTAwLDg1ICsxMDAsNDMgQEAgdm9pZCBKU1J1bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlQ2FsbGJh
Y2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGNvbnRleHRQdHIpCiAgICAgc3RhdGljX2Nhc3Q8
SlNSdW5Mb29wVGltZXIqPihjb250ZXh0UHRyKS0+dGltZXJEaWRGaXJlKCk7CiB9CiAKLXZvaWQg
SlNSdW5Mb29wVGltZXI6OnNjaGVkdWxlVGltZXIoZG91YmxlIGludGVydmFsSW5TZWNvbmRzKQor
dm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1bGVUaW1lcihTZWNvbmRzIGludGVydmFsSW5TZWNv
bmRzKQogewotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCks
IENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgaW50ZXJ2YWxJblNlY29uZHMpOworICAgIENG
UnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1l
R2V0Q3VycmVudCgpICsgaW50ZXJ2YWxJblNlY29uZHMuc2Vjb25kcygpKTsKICAgICBtX2lzU2No
ZWR1bGVkID0gdHJ1ZTsKIH0KIAogdm9pZCBKU1J1bkxvb3BUaW1lcjo6Y2FuY2VsVGltZXIoKQog
ewotICAgIENGUnVuTG9vcFRpbWVyU2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpICsgc19kZWNhZGUpOworICAgIENGUnVuTG9vcFRpbWVyU2V0
TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCksIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsg
c19kZWNhZGUuc2Vjb25kcygpKTsKICAgICBtX2lzU2NoZWR1bGVkID0gZmFsc2U7CiB9CiAKLSNl
bGlmIFVTRShHTElCKQotCi1jb25zdCBsb25nIEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSA9IDYw
ICogNjAgKiAyNCAqIDM2NSAqIDEwOwotCi1zdGF0aWMgR1NvdXJjZUZ1bmNzIEpTUnVuTG9vcFRp
bWVyU291cmNlRnVuY3Rpb25zID0gewotICAgIG51bGxwdHIsIC8vIHByZXBhcmUKLSAgICBudWxs
cHRyLCAvLyBjaGVjawotICAgIC8vIGRpc3BhdGNoCi0gICAgW10oR1NvdXJjZSosIEdTb3VyY2VG
dW5jIGNhbGxiYWNrLCBncG9pbnRlciB1c2VyRGF0YSkgLT4gZ2Jvb2xlYW4KLSAgICB7Ci0gICAg
ICAgIHJldHVybiBjYWxsYmFjayh1c2VyRGF0YSk7Ci0gICAgfSwKLSAgICBudWxscHRyLCAvLyBm
aW5hbGl6ZQotICAgIG51bGxwdHIsIC8vIGNsb3N1cmVfY2FsbGJhY2sKLSAgICBudWxscHRyLCAv
LyBjbG9zdXJlX21hcnNoYWxsCi19OworI2Vsc2UKIAogSlNSdW5Mb29wVGltZXI6OkpTUnVuTG9v
cFRpbWVyKFZNKiB2bSkKICAgICA6IG1fdm0odm0pCiAgICAgLCBtX2FwaUxvY2soJnZtLT5hcGlM
b2NrKCkpCi0gICAgLCBtX3RpbWVyKGFkb3B0R1JlZihnX3NvdXJjZV9uZXcoJkpTUnVuTG9vcFRp
bWVyU291cmNlRnVuY3Rpb25zLCBzaXplb2YoR1NvdXJjZSkpKSkKKyAgICAsIG1fdGltZXIoUnVu
TG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmSlNSdW5Mb29wVGltZXI6OnRpbWVyRGlkRmlyZUNhbGxi
YWNrKQogewotICAgIGdfc291cmNlX3NldF9wcmlvcml0eShtX3RpbWVyLmdldCgpLCBSdW5Mb29w
U291cmNlUHJpb3JpdHk6OkphdmFzY3JpcHRUaW1lcik7Ci0gICAgZ19zb3VyY2Vfc2V0X25hbWUo
bV90aW1lci5nZXQoKSwgIltKYXZhU2NyaXB0Q29yZV0gSlNSdW5Mb29wVGltZXIiKTsKLSAgICBn
X3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lci5nZXQoKSwgW10oZ3BvaW50ZXIgdXNlckRhdGEp
IC0+IGdib29sZWFuIHsKLSAgICAgICAgYXV0byYgcnVuTG9vcFRpbWVyID0gKnN0YXRpY19jYXN0
PEpTUnVuTG9vcFRpbWVyKj4odXNlckRhdGEpOwotICAgICAgICBnX3NvdXJjZV9zZXRfcmVhZHlf
dGltZShydW5Mb29wVGltZXIubV90aW1lci5nZXQoKSwgZ19nZXRfbW9ub3RvbmljX3RpbWUoKSAr
IEpTUnVuTG9vcFRpbWVyOjpzX2RlY2FkZSAqIEdfVVNFQ19QRVJfU0VDKTsKLSAgICAgICAgcnVu
TG9vcFRpbWVyLnRpbWVyRGlkRmlyZSgpOwotICAgICAgICByZXR1cm4gR19TT1VSQ0VfQ09OVElO
VUU7Ci0gICAgfSwgdGhpcywgbnVsbHB0cik7Ci0gICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXIu
Z2V0KCksIGdfbWFpbl9jb250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKTsKKyNpZiBVU0UoR0xJ
Ql9FVkVOVF9MT09QKQorICAgIG1fdGltZXIuc2V0UHJpb3JpdHkoUnVuTG9vcFNvdXJjZVByaW9y
aXR5OjpKYXZhc2NyaXB0VGltZXIpOworICAgIG1fdGltZXIuc2V0TmFtZSgiW0phdmFTY3JpcHRD
b3JlXSBKU1J1bkxvb3BUaW1lciIpOworI2VuZGlmCisgICAgbV90aW1lci5zdGFydE9uZVNob3Qo
c19kZWNhZGUpOwogfQogCiBKU1J1bkxvb3BUaW1lcjo6fkpTUnVuTG9vcFRpbWVyKCkKIHsKLSAg
ICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXIuZ2V0KCkpOwotfQotCi12b2lkIEpTUnVuTG9vcFRp
bWVyOjpzY2hlZHVsZVRpbWVyKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcykKLXsKLSAgICBnX3Nv
dXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNfdGltZSgp
ICsgaW50ZXJ2YWxJblNlY29uZHMgKiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxl
ZCA9IHRydWU7Ci19Ci0KLXZvaWQgSlNSdW5Mb29wVGltZXI6OmNhbmNlbFRpbWVyKCkKLXsKLSAg
ICBnX3NvdXJjZV9zZXRfcmVhZHlfdGltZShtX3RpbWVyLmdldCgpLCBnX2dldF9tb25vdG9uaWNf
dGltZSgpICsgc19kZWNhZGUgKiBHX1VTRUNfUEVSX1NFQyk7Ci0gICAgbV9pc1NjaGVkdWxlZCA9
IGZhbHNlOwogfQogCi0jZWxzZQotCi1jb25zdCBTZWNvbmRzIEpTUnVuTG9vcFRpbWVyOjpzX2Rl
Y2FkZSB7IDYwICogNjAgKiAyNCAqIDM2NSAqIDEwIH07Ci0KLUpTUnVuTG9vcFRpbWVyOjpKU1J1
bkxvb3BUaW1lcihWTSogdm0pCi0gICAgOiBtX3ZtKHZtKQotICAgICwgbV9hcGlMb2NrKCZ2bS0+
YXBpTG9jaygpKQotICAgICwgbV90aW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZKU1J1
bkxvb3BUaW1lcjo6dGltZXJEaWRGaXJlKQotewotICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KHNf
ZGVjYWRlKTsKLX0KLQotSlNSdW5Mb29wVGltZXI6On5KU1J1bkxvb3BUaW1lcigpCit2b2lkIEpT
UnVuTG9vcFRpbWVyOjp0aW1lckRpZEZpcmVDYWxsYmFjaygpCiB7CisgICAgY2FuY2VsVGltZXIo
KTsKKyAgICB0aW1lckRpZEZpcmUoKTsKIH0KIAotdm9pZCBKU1J1bkxvb3BUaW1lcjo6c2NoZWR1
bGVUaW1lcihkb3VibGUgaW50ZXJ2YWxJblNlY29uZHMpCit2b2lkIEpTUnVuTG9vcFRpbWVyOjpz
Y2hlZHVsZVRpbWVyKFNlY29uZHMgaW50ZXJ2YWxJblNlY29uZHMpCiB7CiAgICAgbV90aW1lci5z
dGFydE9uZVNob3QoaW50ZXJ2YWxJblNlY29uZHMpOwogICAgIG1faXNTY2hlZHVsZWQgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGlt
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKaW5k
ZXggMDBmM2U2YmJjY2VjNTg3ZmQ5OWU5OGVkMTYwNTNmZDY1Nzc1OTgwNi4uZDhlY2U5MjA3OTNm
YzMwMzMxZGM4ZmFjZDUxOWZiZTc2Yzk2YTliNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5oCkBAIC0zNiwxMCArMzYsNiBAQAogI2luY2x1ZGUg
PENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CiAjZW5kaWYKIAotI2lmIFVTRShHTElC
KQotI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgSlND
IHsKIAogY2xhc3MgSlNMb2NrOwpAQCAtNTAsMTIgKzQ2LDE0IEBAIGNsYXNzIEpTUnVuTG9vcFRp
bWVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEpTUnVuTG9vcFRpbWVyPiB7CiAgICAg
SlNSdW5Mb29wVGltZXIoVk0qKTsKICNpZiBVU0UoQ0YpCiAgICAgc3RhdGljIHZvaWQgdGltZXJE
aWRGaXJlQ2FsbGJhY2soQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKKyNlbHNlCisgICAgdm9p
ZCB0aW1lckRpZEZpcmVDYWxsYmFjaygpOwogI2VuZGlmCiAKICAgICBKU19FWFBPUlRfUFJJVkFU
RSB2aXJ0dWFsIH5KU1J1bkxvb3BUaW1lcigpOwogICAgIHZpcnR1YWwgdm9pZCBkb1dvcmsoKSA9
IDA7CiAKLSAgICB2b2lkIHNjaGVkdWxlVGltZXIoZG91YmxlIGludGVydmFsSW5TZWNvbmRzKTsK
KyAgICB2b2lkIHNjaGVkdWxlVGltZXIoU2Vjb25kcyBpbnRlcnZhbEluU2Vjb25kcyk7CiAgICAg
dm9pZCBjYW5jZWxUaW1lcigpOwogICAgIGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdCB7IHJldHVy
biBtX2lzU2NoZWR1bGVkOyB9CiAKQEAgLTY2LDIyICs2NCwxOCBAQCBjbGFzcyBKU1J1bkxvb3BU
aW1lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxKU1J1bkxvb3BUaW1lcj4gewogcHJv
dGVjdGVkOgogICAgIFZNKiBtX3ZtOwogCisgICAgc3RhdGljIGNvbnN0IFNlY29uZHMgc19kZWNh
ZGU7CisKICAgICBSZWZQdHI8SlNMb2NrPiBtX2FwaUxvY2s7CiAgICAgYm9vbCBtX2lzU2NoZWR1
bGVkIHsgZmFsc2UgfTsKICNpZiBVU0UoQ0YpCi0gICAgc3RhdGljIGNvbnN0IENGVGltZUludGVy
dmFsIHNfZGVjYWRlOwotCiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBtX3RpbWVy
OwogICAgIFJldGFpblB0cjxDRlJ1bkxvb3BSZWY+IG1fcnVuTG9vcDsKIAogICAgIENGUnVuTG9v
cFRpbWVyQ29udGV4dCBtX2NvbnRleHQ7CiAKICAgICBMb2NrIG1fc2h1dGRvd25NdXRleDsKLSNl
bGlmIFVTRShHTElCKQotICAgIHN0YXRpYyBjb25zdCBsb25nIHNfZGVjYWRlOwotICAgIEdSZWZQ
dHI8R1NvdXJjZT4gbV90aW1lcjsKICNlbHNlCi0gICAgc3RhdGljIGNvbnN0IFNlY29uZHMgc19k
ZWNhZGU7CiAgICAgUnVuTG9vcDo6VGltZXI8SlNSdW5Mb29wVGltZXI+IG1fdGltZXI7CiAjZW5k
aWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21p
c2VEZWZlcnJlZFRpbWVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb21p
c2VEZWZlcnJlZFRpbWVyLmNwcAppbmRleCAxMDQ1ZTQ2NmFhMzYxYTRhNjRhMjljZjBlOTQzNmUz
NDU0Y2M5MmUxLi4zZGNhZWFhZmU1YjM4ZmJhNWJhOGFmOTc2NjBmNTFiYzY1OWZkMjQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9taXNlRGVmZXJyZWRUaW1l
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvbWlzZURlZmVycmVk
VGltZXIuY3BwCkBAIC0xMzQsNyArMTM0LDcgQEAgdm9pZCBQcm9taXNlRGVmZXJyZWRUaW1lcjo6
c2NoZWR1bGVXb3JrU29vbihKU1Byb21pc2VEZWZlcnJlZCogdGlja2V0LCBUYXNrJiYgdGEKICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2NrKTsKICAgICBtX3Rhc2tzLmFwcGVuZChzdGQ6
Om1ha2VfdHVwbGUodGlja2V0LCBXVEZNb3ZlKHRhc2spKSk7CiAgICAgaWYgKCFpc1NjaGVkdWxl
ZCgpICYmICFtX2N1cnJlbnRseVJ1bm5pbmdUYXNrKQotICAgICAgICBzY2hlZHVsZVRpbWVyKDAp
OworICAgICAgICBzY2hlZHVsZVRpbWVyKDBfcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVu
TG9vcC5oCmluZGV4IDkyY2MxNTBmZGQyOTk1MDQ5NTIyMjJkMDgyNjgzN2Y0YmJkYjIwMzYuLjNk
MDZjM2ViODkzMDBkNjBmYTA4MzY0YmRlZWNkNmYwOWU4YmE4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTkz
LDEwICs5MywxMiBAQCBjbGFzcyBSdW5Mb29wIDogcHVibGljIEZ1bmN0aW9uRGlzcGF0Y2hlciB7
CiAKICAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RvcCgpOwogICAgICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OworICAgICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgU2Vjb25kcyBzZWNvbmRzVW50aWxGaXJlKCkgY29uc3Q7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGZpcmVkKCkgPSAwOwogCiAjaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkKKyAgICAg
ICAgdm9pZCBzZXROYW1lKGNvbnN0IGNoYXIqKTsKICAgICAgICAgdm9pZCBzZXRQcmlvcml0eShp
bnQpOwogI2VuZGlmCiAKQEAgLTEwNiw4ICsxMDgsMTEgQEAgY2xhc3MgUnVuTG9vcCA6IHB1Ymxp
YyBGdW5jdGlvbkRpc3BhdGNoZXIgewogICAgICAgICBSZWY8UnVuTG9vcD4gbV9ydW5Mb29wOwog
CiAjaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkKKyAgICAgICAgYm9vbCBpc0FjdGl2ZShjb25z
dCBBYnN0cmFjdExvY2tlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVk
KFJ1bkxvb3AqLCB1aW50NjRfdCBJRCk7CiAgICAgICAgIHVpbnQ2NF90IG1fSUQ7CisgICAgICAg
IE1vbm90b25pY1RpbWUgbV9uZXh0RmlyZURhdGU7CisgICAgICAgIFNlY29uZHMgbV9pbnRlcnZh
bDsKICAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwogI2VsaWYgVVNFKENPQ09BX0VWRU5UX0xP
T1ApCiAgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZv
aWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9jZi9SdW5Mb29wQ0YuY3BwCmluZGV4IDQxZjhmOTU3NWM2ODMwMmYzODYyZGMy
MjNmZTU0MjdhOGFlMjQ0MTYuLjVlNGM4MDU3ZTkxMzU0NzU4OTJkMDRlMTY2NTU0MWJiOTI0NTI4
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NmL1J1bkxvb3BDRi5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvY2YvUnVuTG9vcENGLmNwcApAQCAtMTE5LDQgKzExOSwxMSBAQCBib29sIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiBtX3RpbWVyICYm
IENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyLmdldCgpKTsKIH0KIAorU2Vjb25kcyBSdW5M
b29wOjpUaW1lckJhc2U6OnNlY29uZHNVbnRpbEZpcmUoKSBjb25zdAoreworICAgIGlmIChpc0Fj
dGl2ZSgpKQorICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4oU2Vjb25kcyB7IENGUnVu
TG9vcFRpbWVyR2V0TmV4dEZpcmVEYXRlKG1fdGltZXIuZ2V0KCkpIC0gQ0ZBYnNvbHV0ZVRpbWVH
ZXRDdXJyZW50KCkgfSwgMF9zKTsKKyAgICByZXR1cm4gMF9zOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dlbmVyaWMvUnVuTG9vcEdlbmVyaWMu
Y3BwIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29wR2VuZXJpYy5jcHAKaW5kZXggMTNl
MjcxNGMyOWQ0OWJlNTRjZDZjOGMzNDZlOGM3NmM3NWU5MjRlYi4uYTU2ODBlMjI4NTM1ZTRlZTFj
MTJjMTdiMjIyYzI4NDIzMjcwNzNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2VuZXJp
Yy9SdW5Mb29wR2VuZXJpYy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvZ2VuZXJpYy9SdW5Mb29w
R2VuZXJpYy5jcHAKQEAgLTI5Myw0ICsyOTMsMTIgQEAgYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6
OmlzQWN0aXZlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgY29uc3QKICAgICByZXR1cm4gbV9zY2hl
ZHVsZWRUYXNrOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGls
RmlyZSgpIGNvbnN0Cit7CisgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2xvb3BM
b2NrKTsKKyAgICBpZiAoaXNBY3RpdmUobG9ja2VyKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4
PFNlY29uZHM+KG1fc2NoZWR1bGVkVGFzay0+c2NoZWR1bGVkVGltZVBvaW50KCkgLSBNb25vdG9u
aWNUaW1lOjpub3coKSwgMF9zKTsKKyAgICByZXR1cm4gMF9zOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIvUnVuTG9vcEdMaWIuY3BwIGIv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKaW5kZXggYTNiOTNjNGEyNmI4YTY0
YWNmNGI2ZjY5NTBhNjM1YzdkMGIwNWNlZC4uY2ViNDliMzAxMjFlNWEzMWQwODVkZjk1NzRiNDAx
MWI1MGJjNWY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wR0xpYi5jcHAKQEAgLTE3Niw2ICsx
NzYsMTEgQEAgUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKICAgICBnX3NvdXJjZV9k
ZXN0cm95KG1fc291cmNlLmdldCgpKTsKIH0KIAordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnNl
dE5hbWUoY29uc3QgY2hhciogbmFtZSkKK3sKKyAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJj
ZS5nZXQoKSwgbmFtZSk7Cit9CisKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzZXRQcmlvcml0
eShpbnQgcHJpb3JpdHkpCiB7CiAgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdl
dCgpLCBwcmlvcml0eSk7CkBAIC0yMTEsNCArMjE2LDkgQEAgYm9vbCBSdW5Mb29wOjpUaW1lckJh
c2U6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUo
bV9zb3VyY2UuZ2V0KCkpICE9IC0xOwogfQogCitTZWNvbmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0ZDo6bWF4PFNlY29uZHM+
KFNlY29uZHM6OmZyb21NaWNyb3NlY29uZHMoZ19zb3VyY2VfZ2V0X3JlYWR5X3RpbWUobV9zb3Vy
Y2UuZ2V0KCkpIC0gZ19nZXRfbW9ub3RvbmljX3RpbWUoKSksIDBfcyk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3Bw
IGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCmluZGV4IDg3NDZiMWVlYTAzODE0
NWRmZTg0ODg5OWU1NDUzNmEzN2M4ZGViNGYuLjNlNGM0Y2VhMTc1YzYzMTJjZTQ4Yjg5YjQ4YjIz
M2U5NDg3ODI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTEzMSw3ICsxMzEs
OCBAQCB2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29w
LCB1aW50NjRfdCBJRCkKICAgICAgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewogICAg
ICAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKICAgICAgICAgICAg
IDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKLSAgICAg
ICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fbmV4dEZpcmVEYXRlID0gTW9ub3Rv
bmljVGltZTo6bm93KCkgKyBtX2ludGVydmFsOwogICAgIH0KIAogICAgIHRpbWVyLT5maXJlZCgp
OwpAQCAtMTYwLDYgKzE2MSw4IEBAIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3Vi
bGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCiAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOwogICAgIG1faXNSZXBlYXRpbmcgPSByZXBl
YXQ7CiAgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7CisgICAg
bV9pbnRlcnZhbCA9IFNlY29uZHMobmV4dEZpcmVJbnRlcnZhbCk7CisgICAgbV9uZXh0RmlyZURh
dGUgPSBNb25vdG9uaWNUaW1lOjpub3coKSArIG1faW50ZXJ2YWw7CiAgICAgOjpTZXRUaW1lciht
X3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwg
KiAxMDAwLCAwKTsKIH0KIApAQCAtMTc0LDEwICsxNzcsMjQgQEAgdm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnN0b3AoKQogICAgIDo6S2lsbFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2Fn
ZVdpbmRvdywgbV9JRCk7CiB9CiAKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZShj
b25zdCBBYnN0cmFjdExvY2tlciYpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9CisKIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNl
Ojppc0FjdGl2ZSgpIGNvbnN0CiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5t
X2FjdGl2ZVRpbWVyc0xvY2spOwotICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmNvbnRhaW5zKG1fSUQpOworICAgIHJldHVybiBpc0FjdGl2ZShsb2NrZXIpOwogfQogCitTZWNv
bmRzIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c2Vjb25kc1VudGlsRmlyZSgpIGNvbnN0Cit7CisgICAg
TG9ja0hvbGRlciBsb2NrZXIobV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVyc0xvY2spOworICAgIGlm
IChpc0FjdGl2ZShsb2NrZXIpKQorICAgICAgICByZXR1cm4gc3RkOjptYXg8U2Vjb25kcz4obV9u
ZXh0RmlyZURhdGUgLSBNb25vdG9uaWNUaW1lOjpub3coKSwgMF9zKTsKKyAgICByZXR1cm4gMF9z
OworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdURgo=
</data>
<flag name="review"
          id="328132"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>