<?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>215584</bug_id>
          
          <creation_ts>2020-08-17 14:18:03 -0700</creation_ts>
          <short_desc>[webkitcorepy] Move Timeout to webkitcorepy</short_desc>
          <delta_ts>2020-08-28 08:21:36 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214378</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=215738</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=215742</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>darin</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1680918</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-17 14:18:03 -0700</bug_when>
    <thetext>Webkitpy has a timeout class which uses alarms to raise an exception.

This is a useful idea, although many functions which may block have their own native timeouts. To work around this, we should allow our timeout class to be disabled for a blocks that a program may use a more appropriate timeout for APIs which support it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680919</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-17 14:18:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/67270713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680924</commentid>
    <comment_count>2</comment_count>
      <attachid>406744</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-17 14:30:27 -0700</bug_when>
    <thetext>Created attachment 406744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680935</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-17 15:11:39 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #2)
&gt; Created attachment 406744 [details]
&gt; Patch

Before landing this, want to be clear that this isn&apos;t a 100% move, while the new class is a drop in replacement to the old one, they aren&apos;t identical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680954</commentid>
    <comment_count>4</comment_count>
      <attachid>406744</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2020-08-17 16:02:20 -0700</bug_when>
    <thetext>Comment on attachment 406744
Patch

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

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/timeout.py:36
&gt; +    _process_to_timeout_map = {}

How about using `collections.defaultdict(list)` to avoid boundary check?

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/timeout.py:121
&gt; +    def sleep(cls, t):

Nit: maybe call it &apos;seconds&apos; to be clearer here.

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/timeout.py:161
&gt; +                for i in range(len(self._process_to_timeout_map[os.getpid()]) - 1):
&gt; +                    if self.data.alarm_time &lt; self._process_to_timeout_map[os.getpid()][i + 1].alarm_time:
&gt; +                        self._process_to_timeout_map[os.getpid()].insert(i, self.data)
&gt; +                        break

It looks like we are doing a linear search on an sorted array, we can just use `bisect.insort` https://docs.python.org/3/library/bisect.html

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/timeout.py:167
&gt; +            if current_timeout and current_timeout.alarm_time &lt; self.data.alarm_time:
&gt; +                for i in range(len(self._process_to_timeout_map[os.getpid()]) - 1):
&gt; +                    if self.data.alarm_time &lt; self._process_to_timeout_map[os.getpid()][i + 1].alarm_time:
&gt; +                        self._process_to_timeout_map[os.getpid()].insert(i, self.data)
&gt; +                        break
&gt; +                self._process_to_timeout_map[os.getpid()].append(self.data)
&gt; +
&gt; +            # This is the most urgent timeout
&gt; +            else:
&gt; +                self._process_to_timeout_map[os.getpid()] = [self.data] + self._process_to_timeout_map.get(os.getpid(), [])
&gt; +

This logic can be simplified to 
`bisect.insort(self._process_to_timeout_map[os.getpid()], self.data)`
if we use defaultdict for self._process_to_timeout_map and implement `__cmp__` for Data class.
For bisect.insort, you can refer to https://docs.python.org/3/library/bisect.html, it&apos;s basically upper_bound in cpp.

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/timeout_unittest.py:31
&gt; +

Do we have a test case that an exception is raised in a Timeout context, and we expect the `_process_to_timeout_map` to be updated correctly?

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/timeout_unittest.py:71
&gt; +        with mocks.Time:
&gt; +            with OutputCapture() as capturer:
&gt; +                with Timeout(1):
&gt; +                    Timeout.check()
&gt; +                    self.assertRaises(Timeout.Exception, time.sleep, 1)
&gt; +

To avoid code getting too nested, I think we can just do
```
with mocks.Time, OutputCapture() as capturer, Timeout(1):
    ...
```
or 
```
with mocks.Time, OutputCapture() as capturer:
    with Timeout(1):
        ....
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681010</commentid>
    <comment_count>5</comment_count>
      <attachid>406744</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-17 22:11:37 -0700</bug_when>
    <thetext>Comment on attachment 406744
Patch

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

&gt;&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/timeout_unittest.py:31
&gt;&gt; +
&gt; 
&gt; Do we have a test case that an exception is raised in a Timeout context, and we expect the `_process_to_timeout_map` to be updated correctly?

This is a good point.

I&apos;ve added a test that covers the &quot;what happens when an exception has already been triggered and caught&quot; case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681129</commentid>
    <comment_count>6</comment_count>
      <attachid>406793</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-18 11:10:05 -0700</bug_when>
    <thetext>Created attachment 406793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681511</commentid>
    <comment_count>7</comment_count>
      <attachid>406883</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-19 16:07:38 -0700</bug_when>
    <thetext>Created attachment 406883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681684</commentid>
    <comment_count>8</comment_count>
      <attachid>406928</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-20 07:11:35 -0700</bug_when>
    <thetext>Created attachment 406928
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681688</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-20 07:34:02 -0700</bug_when>
    <thetext>Committed r265942: &lt;https://trac.webkit.org/changeset/265942&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406928.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681735</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-20 10:39:06 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681736</commentid>
    <comment_count>11</comment_count>
      <attachid>406945</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-20 10:39:07 -0700</bug_when>
    <thetext>Created attachment 406945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1681876</commentid>
    <comment_count>12</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-20 17:22:15 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #11)
&gt; Created attachment 406945 [details]
&gt; Patch

(Will be waiting to land this until next week)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682056</commentid>
    <comment_count>13</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-08-21 15:55:10 -0700</bug_when>
    <thetext>(In reply to EWS from comment #9)
&gt; Committed r265942: &lt;https://trac.webkit.org/changeset/265942&gt;
For some reason, this seems to have broke ios-wk2 tests, see Bug 215742</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682099</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-21 20:59:32 -0700</bug_when>
    <thetext>(In reply to Aakash Jain from comment #13)
&gt; (In reply to EWS from comment #9)
&gt; &gt; Committed r265942: &lt;https://trac.webkit.org/changeset/265942&gt;
&gt; For some reason, this seems to have broke ios-wk2 tests, see Bug 215742

I’ll be revisiting this Monday. This is ultimately about the way that python’s multiprocess does forking, will take quite a bit of trial and error to track down.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682356</commentid>
    <comment_count>15</comment_count>
      <attachid>407107</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-24 09:57:11 -0700</bug_when>
    <thetext>Created attachment 407107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682396</commentid>
    <comment_count>16</comment_count>
      <attachid>407113</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-24 11:00:02 -0700</bug_when>
    <thetext>Created attachment 407113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682432</commentid>
    <comment_count>17</comment_count>
      <attachid>407122</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-24 12:27:09 -0700</bug_when>
    <thetext>Created attachment 407122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682446</commentid>
    <comment_count>18</comment_count>
      <attachid>407130</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-24 13:42:44 -0700</bug_when>
    <thetext>Created attachment 407130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682475</commentid>
    <comment_count>19</comment_count>
      <attachid>407140</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-24 15:24:39 -0700</bug_when>
    <thetext>Created attachment 407140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682664</commentid>
    <comment_count>20</comment_count>
      <attachid>407196</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-25 09:06:37 -0700</bug_when>
    <thetext>Created attachment 407196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682696</commentid>
    <comment_count>21</comment_count>
      <attachid>407205</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-25 10:30:40 -0700</bug_when>
    <thetext>Created attachment 407205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682846</commentid>
    <comment_count>22</comment_count>
      <attachid>407249</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-25 16:41:49 -0700</bug_when>
    <thetext>Created attachment 407249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682910</commentid>
    <comment_count>23</comment_count>
      <attachid>407249</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-25 21:51:37 -0700</bug_when>
    <thetext>Comment on attachment 407249
Patch

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

&gt; Tools/Scripts/webkitpy/xcode/simulated_device.py:642
&gt; +        with Timeout(timeout, handler=RuntimeError(u&apos;Timed out waiting for process to open {} on {}&apos;.format(bundle_id, self.udid)), patch=False):

Took quite a bit of trial and error, but I found the original issue with the change, apparent mock.patch breaks future forking on MacOS, which is super surprising. The ultimate solution will be fixing our multiprocessing code, but that&apos;s not a change for this patch. All we need to do is opt out of patching time.sleep when booting simulators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683003</commentid>
    <comment_count>24</comment_count>
      <attachid>407305</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-26 09:28:20 -0700</bug_when>
    <thetext>Created attachment 407305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683275</commentid>
    <comment_count>25</comment_count>
      <attachid>407374</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-26 21:17:40 -0700</bug_when>
    <thetext>Created attachment 407374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683286</commentid>
    <comment_count>26</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-26 22:43:07 -0700</bug_when>
    <thetext>Committed r266224: &lt;https://trac.webkit.org/changeset/266224&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407374.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683360</commentid>
    <comment_count>27</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-27 07:16:12 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683361</commentid>
    <comment_count>28</comment_count>
      <attachid>407396</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-27 07:16:13 -0700</bug_when>
    <thetext>Created attachment 407396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1683641</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-28 08:21:35 -0700</bug_when>
    <thetext>Committed r266277: &lt;https://trac.webkit.org/changeset/266277&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407396.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406744</attachid>
            <date>2020-08-17 14:30:27 -0700</date>
            <delta_ts>2020-08-18 11:10:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200817143026.patch</filename>
            <type>text/plain</type>
            <size>26023</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTc3MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM3IEBACisyMDIwLTA4LTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBUaW1lb3V0IGNsYXNzIGlz
IGEgZ2VuZXJhbGx5IHVzZWZ1bCBQeXRob24gdXRpbGl0eSwgaXQgc2hvdWxkIG5vdCBsaXZlIGlu
c2lkZSB3ZWJraXRweS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVw
eS9SRUFETUUubWQ6IERvY3VtZW50IFRpbWVvdXQgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHk6IEV4cG9zZSBU
aW1lb3V0IG9iamVjdCBBUEksIGluY3JlbWVudCB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvdGltZW91dF91bml0dGVz
dC5weTogQWRkZWQuCisgICAgICAgIChUaW1lb3V0VGVzdHMpOiBBZGRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3RpbWVvdXQucHk6IEFk
ZGVkLgorICAgICAgICAoVGltZW91dCk6IENsYXNzIHJlcHJlc2VudGluZyBhIHN0YWNrYWJsZSBU
aW1lb3V0IGNvbnRleHQuCisgICAgICAgIChUaW1lb3V0LkRhdGEpOiBDbGFzcyBjb250YWluaW5n
IGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgZGVhZGxpbmUuCisgICAgICAgIChUaW1lb3V0
LkV4Y2VwdGlvbik6IEV4Y2VwdGlvbiBiZWxvbmdpbmcgdG8gdGhlIFRpbWVvdXQgb2JqZWN0Lgor
ICAgICAgICAoVGltZW91dC5EaXNhYmxlQWxhcm0pOiBGb3Igc29tZSBibG9jayBvZiBjb2RlLCBk
aXNhYmxlIFRpbWVvdXQgYWxhcm1zLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIG1hbnkgQVBJcyAo
c3VjaCBhcworICAgICAgICBzdWJwcm9jZXNzLnJ1bikgZGVmaW5lIHRoZWlyIG93biB0aW1lb3V0
cyB3aGljaCBkbyBiZXR0ZXIgY2xlYW51cCB0aGFuIGFuIGludGVycnVwdCB3b3VsZC4KKyAgICAg
ICAgKFRpbWVvdXQuZGVmYXVsdF9oYW5kbGVyKTogRGVmYXVsdCBUaW1lb3V0IGhhbmRsZXIgd2hp
Y2ggcmFpc2VzIGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgKFRpbWVvdXQuY3VycmVudCk6IFJldHVy
biB0aGUgY3VycmVudCBUaW1lb3V0LkRhdGEgY2xhc3MsIGlmIG9uZSBleGlzdHMuCisgICAgICAg
IChUaW1lb3V0LmRlYWRsaW5lKTogUmV0dXJuIHRoZSBjbG9zZXN0IGRlYWRsaW5lLCBpZiBvbmUg
ZXhpc3RzLgorICAgICAgICAoVGltZW91dC5kaWZmZXJlbmNlKTogUmV0dXJuIHRoZSBudW1iZXIg
b2Ygc2Vjb25kcyBiZXR3ZWVuIHRoZSBjdXJyZW50IHRpbWUgYW5kIHRoZSBjbG9zZXN0IGRlYWRs
aW5lLgorICAgICAgICAoVGltZW91dC5jaGVjayk6IENoZWNrIGlmIHdlIGhhdmUgc3VycGFzc2Vk
IHRoZSBjbG9zZXN0IGRlYWRsaW5lLiwgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIHdlIGhhdmUuCisg
ICAgICAgIChUaW1lb3V0LmJpbmQpOiBDcmVhdGUgYSBzaWduYWwgYmFzZWQgb24gdGhlIGNsb3Nl
c3QgZGVhZGxpbmUuCisgICAgICAgIChUaW1lb3V0LnNsZWVwKTogT3ZlcnJpZGUgdGhlIHNsZWVw
IGZ1bmN0aW9uIGJlY2F1c2UgaWYgd2UgZXZlciByZXF1ZXN0IGEgc2xlZXAgdGhhdCBpcyBncmVh
dGVyIHRoYW4gdGhlIGNsb3Nlc3QgZGVhZGxpbmUsCisgICAgICAgIHdlIHNob3VsZCBpbWllZGlh
dGVseSB0cmlnZ2VyIHRoZSB0aW1lb3V0IGxvZ2ljIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIHRp
bWVvdXQgdG8gYWN0dWFsbHkgZXhwaXJlLgorICAgICAgICAoVGltZW91dC5fX2luaXRfXyk6IENy
ZWF0ZSBhIFRpbWVvdXQgY29udGV4dCwgMSBzZWNvbmQgYnkgZGVmYXVsdC4KKyAgICAgICAgKFRp
bWVvdXQuX19lbnRlcl9fKToKKyAgICAgICAgKFRpbWVvdXQuX19leGl0X18pOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dC5weToKKyAgICAgICAgKFRp
bWVvdXQpOiBNb3ZlZCB0byB3ZWJraXRjb3JlcHkuCisKIDIwMjAtMDgtMTcgIEpvbmF0aGFuIEJl
ZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtyZXN1bHRzZGJweV06IERlcGVu
ZCBvbiB3ZWJraXRjb3JlcHkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNv
cmVweS9SRUFETUUubWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0Y29yZXB5L1JFQURNRS5tZAkocmV2aXNpb24gMjY1NzcxKQorKysgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L1JFQURNRS5tZAkod29ya2luZyBjb3B5KQpAQCAtNTcsMyAr
NTcsMTMgQEAgd2l0aCBjYXB0dXJlcjoKICAgICBwcmludCgnZGF0YVxuJykKIGFzc2VydCBjYXB0
dXJlci5zdGRvdXQuZ2V0dmFsdWUoKSA9PSAnZGF0YVxuJwogYGBgCisKK1RpbWVvdXQgY29udGV4
dDoKK2BgYAoraW1wb3J0IHRpbWUKKworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFRpbWVvdXQK
Kword2l0aCBUaW1lb3V0KDUsIGhhbmRsZXI9UnVudGltZUVycm9yKCdFeGNlZWRlZCA1IHNlY29u
ZCB0aW1lb3V0JykpOgorICAgIHRpbWUuc2xlZXAoNCkKK2BgYApJbmRleDogVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjU3NzEpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw4ICszMiw5IEBAIGxvZy5hZGRIYW5kbGVyKE51bGxIYW5kbGVyKCkpCiBmcm9tIHdlYmtp
dGNvcmVweS52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtpdGNvcmVweS5zdHJpbmdf
dXRpbHMgaW1wb3J0IEJ5dGVzSU8sIFN0cmluZ0lPLCBVbmljb2RlSU8sIHVuaWNvZGUKIGZyb20g
d2Via2l0Y29yZXB5Lm91dHB1dF9jYXB0dXJlIGltcG9ydCBMb2dnZXJDYXB0dXJlLCBPdXRwdXRD
YXB0dXJlLCBPdXRwdXREdXBsaWNhdGUKK2Zyb20gd2Via2l0Y29yZXB5LnRpbWVvdXQgaW1wb3J0
IFRpbWVvdXQKIAotdmVyc2lvbiA9IFZlcnNpb24oMCwgMiwgNikKK3ZlcnNpb24gPSBWZXJzaW9u
KDAsIDIsIDcpCiAKIGZyb20gd2Via2l0Y29yZXB5LmF1dG9pbnN0YWxsIGltcG9ydCBQYWNrYWdl
LCBBdXRvSW5zdGFsbAogaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGltZW91dC5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0
Y29yZXB5L3RpbWVvdXQucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTgwIEBACisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2lt
cG9ydCBtYXRoCitpbXBvcnQgb3MKK2ltcG9ydCBzaWduYWwKK2ltcG9ydCB0aW1lCitpbXBvcnQg
dGhyZWFkaW5nCisKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBsb2csIHN0cmluZ191dGlscwor
CisKK09SSUdJTkFMX1NMRUVQID0gdGltZS5zbGVlcAorCisKK2NsYXNzIFRpbWVvdXQob2JqZWN0
KToKKyAgICBfcHJvY2Vzc190b190aW1lb3V0X21hcCA9IHt9CisKKyAgICBjbGFzcyBEYXRhKG9i
amVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGFybV90aW1lLCBoYW5kbGVyKToK
KyAgICAgICAgICAgIHNlbGYuYWxhcm1fdGltZSA9IGFsYXJtX3RpbWUKKyAgICAgICAgICAgIHNl
bGYuaGFuZGxlciA9IGhhbmRsZXIKKyAgICAgICAgICAgIHNlbGYudGhyZWFkX2lkID0gdGhyZWFk
aW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQKKworICAgIGNsYXNzIEV4Y2VwdGlvbihFeGNlcHRp
b24pOgorICAgICAgICBwYXNzCisKKyAgICBjbGFzcyBEaXNhYmxlQWxhcm0ob2JqZWN0KToKKyAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGNoPVRydWUpOgorICAgICAgICAgICAgaWYgcGF0
Y2g6CisgICAgICAgICAgICAgICAgIyBBbGxvd3MgbW9jayB0byBiZSBtYW5hZ2VkIHZpYSBhdXRv
aW5zdGFsbAorICAgICAgICAgICAgICAgIGZyb20gbW9jayBpbXBvcnQgcGF0Y2gKKyAgICAgICAg
ICAgICAgICBzZWxmLl9wYXRjaCA9IHBhdGNoKCd0aW1lLnNsZWVwJywgbmV3PU9SSUdJTkFMX1NM
RUVQKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXRjaCA9IEZh
bHNlCisKKyAgICAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgICAgIHNpZ25hbC5h
bGFybSgwKQorICAgICAgICAgICAgaWYgc2VsZi5fcGF0Y2g6CisgICAgICAgICAgICAgICAgc2Vs
Zi5fcGF0Y2guX19lbnRlcl9fKCkKKworICAgICAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5
cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKKyAgICAgICAgICAgIGlmIHNlbGYuX3BhdGNoOgor
ICAgICAgICAgICAgICAgIHNlbGYuX3BhdGNoLl9fZXhpdF9fKGV4Y190eXBlLCBleGNfdmFsdWUs
IHRyYWNlYmFjaykKKworICAgICAgICAgICAgIyBXZSBkb24ndCByZWJpbmQgdGhlIGFsYXJtIGlm
IGFuIGV4Y2VwdGlvbiBpcyBhbHJlYWR5IGluIGZsaWdodAorICAgICAgICAgICAgaWYgZXhjX3R5
cGUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBUaW1lb3V0LmJpbmQoKQorCisgICAgQGNsYXNz
bWV0aG9kCisgICAgZGVmIGRlZmF1bHRfaGFuZGxlcihjbHMsIHNpZ251bSwgZnJhbWUpOgorICAg
ICAgICByYWlzZSBjbHMuRXhjZXB0aW9uKCdUaW1lb3V0IGFsYXJtIHdhcyB0cmlnZ2VyZWQnKQor
CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGN1cnJlbnQoY2xzKToKKyAgICAgICAgcmVzdWx0
ID0gY2xzLl9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwLmdldChvcy5nZXRwaWQoKSwgW10pCisgICAg
ICAgIGlmIG5vdCByZXN1bHQ6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBpZiBy
ZXN1bHRbMF0udGhyZWFkX2lkICE9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50Ogor
ICAgICAgICAgICAgbG9nLmNyaXRpY2FsKCdVc2luZyBib3RoIGFsYXJtcyBhbmQgdGhyZWFkaW5n
IGluIHRoZSBzYW1lIHByb2Nlc3MsIHRoaXMgaXMgdW5zdXBwb3J0ZWQnKQorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignVGltZW91dCBvcmlnaW5hdGVzIGZyb20gYSBkaWZmZXJlbnQgdGhy
ZWFkJykKKyAgICAgICAgcmV0dXJuIHJlc3VsdFswXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAg
ZGVmIGRlYWRsaW5lKGNscyk6CisgICAgICAgIGN1cnJlbnQgPSBjbHMuY3VycmVudCgpCisgICAg
ICAgIHJldHVybiBjdXJyZW50LmFsYXJtX3RpbWUgaWYgY3VycmVudCBlbHNlIE5vbmUKKworICAg
IEBjbGFzc21ldGhvZAorICAgIGRlZiBkaWZmZXJlbmNlKGNscywgY3VycmVudF90aW1lPU5vbmUp
OgorICAgICAgICBjdXJyZW50ID0gY2xzLmN1cnJlbnQoKQorICAgICAgICBpZiBub3QgY3VycmVu
dDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGN1cnJlbnRfdGltZSA9IGN1cnJl
bnRfdGltZSBpZiBjdXJyZW50X3RpbWUgZWxzZSB0aW1lLnRpbWUoKQorICAgICAgICByZXR1cm4g
Y3VycmVudC5hbGFybV90aW1lIC0gY3VycmVudF90aW1lIGlmIGN1cnJlbnQuYWxhcm1fdGltZSAt
IGN1cnJlbnRfdGltZSA+IDAgZWxzZSAwCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgY2hl
Y2soY2xzLCBjdXJyZW50X3RpbWU9Tm9uZSk6CisgICAgICAgIGlmIGNscy5kaWZmZXJlbmNlKGN1
cnJlbnRfdGltZT1jdXJyZW50X3RpbWUpICE9IDA6CisgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgY2xzLmN1cnJlbnQoKS5oYW5kbGVyKHNpZ25hbC5TSUdBTFJNLCBOb25lKQorCisgICAgQGNs
YXNzbWV0aG9kCisgICAgZGVmIGJpbmQoY2xzKToKKyAgICAgICAgY3VycmVudCA9IGNscy5jdXJy
ZW50KCkKKyAgICAgICAgaWYgbm90IGN1cnJlbnQ6CisgICAgICAgICAgICByZXR1cm4KKworICAg
ICAgICBkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKKyAgICAgICAgICAgIGFzc2VydCBzaWdu
dW0gPT0gc2lnbmFsLlNJR0FMUk0KKyAgICAgICAgICAgIGlmIGN1cnJlbnQudGhyZWFkX2lkICE9
IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgorICAgICAgICAgICAgICAgIGxvZy5j
cml0aWNhbCgnVXNpbmcgYm90aCBhbGFybXMgYW5kIHRocmVhZGluZyBpbiB0aGUgc2FtZSBwcm9j
ZXNzLCB0aGlzIGlzIHVuc3VwcG9ydGVkJykKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdUaW1lb3V0IG9yaWdpbmF0ZXMgZnJvbSBhIGRpZmZlcmVudCB0aHJlYWQnKQorICAgICAg
ICAgICAgY3VycmVudC5oYW5kbGVyKHNpZ251bSwgZnJhbWUpCisKKyAgICAgICAgY3VycmVudF90
aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgY2xzLmNoZWNrKGN1cnJlbnRfdGltZT1jdXJyZW50
X3RpbWUpCisgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR0FMUk0sIGhhbmRsZXIpCisg
ICAgICAgIHNpZ25hbC5hbGFybShpbnQobWF0aC5jZWlsKGN1cnJlbnQuYWxhcm1fdGltZSAtIGN1
cnJlbnRfdGltZSkpKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNsZWVwKGNscywgdCk6
CisgICAgICAgIGRpZmZlcmVuY2UgPSBjbHMuZGlmZmVyZW5jZSgpCisgICAgICAgIGlmIGRpZmZl
cmVuY2UgaXMgbm90IE5vbmUgYW5kIHQgPj0gZGlmZmVyZW5jZToKKyAgICAgICAgICAgIGxvZy5l
cnJvcignUmVxdWVzdCB0byBzbGVlcCB7fSBleGNlZWRlZCB0aGUgY3VycmVudCB0aW1lb3V0IHRo
cmVzaG9sZCcuZm9ybWF0KHN0cmluZ191dGlscy5wbHVyYWxpemUodCwgJ3NlY29uZCcpKSkKKyAg
ICAgICAgICAgIGNscy5jdXJyZW50KCkuaGFuZGxlcihzaWduYWwuU0lHQUxSTSwgTm9uZSkKKyAg
ICAgICAgcmV0dXJuIE9SSUdJTkFMX1NMRUVQKHQpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
c2Vjb25kcz0xLCBoYW5kbGVyPU5vbmUsIHBhdGNoPVRydWUpOgorICAgICAgICBpZiBzZWNvbmRz
IDw9IDA6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdUaW1lb3V0cyBtdXN0IGJlIHBv
c2l0aXZlJykKKworICAgICAgICBpZiBpc2luc3RhbmNlKGhhbmRsZXIsIEJhc2VFeGNlcHRpb24p
OgorICAgICAgICAgICAgZXhjZXB0aW9uID0gaGFuZGxlcgorCisgICAgICAgICAgICBkZWYgZXhj
ZXB0aW9uX2hhbmRsZXIoc2lnbnVtLCBmcmFtZSk6CisgICAgICAgICAgICAgICAgcmFpc2UgZXhj
ZXB0aW9uCisKKyAgICAgICAgICAgIGhhbmRsZXIgPSBleGNlcHRpb25faGFuZGxlcgorCisgICAg
ICAgIHNlbGYuX3RpbWVvdXQgPSBzZWNvbmRzCisgICAgICAgIHNlbGYuX2hhbmRsZXIgPSBoYW5k
bGVyIGlmIGhhbmRsZXIgZWxzZSBzZWxmLmRlZmF1bHRfaGFuZGxlcgorICAgICAgICBzZWxmLmRh
dGEgPSBOb25lCisKKyAgICAgICAgaWYgcGF0Y2g6CisgICAgICAgICAgICAjIEFsbG93cyBtb2Nr
IHRvIGJlIG1hbmFnZWQgdmlhIGF1dG9pbnN0YWxsCisgICAgICAgICAgICBmcm9tIG1vY2sgaW1w
b3J0IHBhdGNoCisgICAgICAgICAgICBzZWxmLl9wYXRjaCA9IHBhdGNoKCd0aW1lLnNsZWVwJywg
bmV3PXNlbGYuc2xlZXApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9wYXRjaCA9
IE5vbmUKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5EaXNh
YmxlQWxhcm0oKToKKyAgICAgICAgICAgIHNlbGYuZGF0YSA9IHNlbGYuRGF0YSh0aW1lLnRpbWUo
KSArIHNlbGYuX3RpbWVvdXQsIHNlbGYuX2hhbmRsZXIpCisgICAgICAgICAgICBjdXJyZW50X3Rp
bWVvdXQgPSBzZWxmLmN1cnJlbnQoKQorCisgICAgICAgICAgICAjIEFub3RoZXIgdGltZW91dCBp
cyBtb3JlIHVyZ2VudC4KKyAgICAgICAgICAgIGlmIGN1cnJlbnRfdGltZW91dCBhbmQgY3VycmVu
dF90aW1lb3V0LmFsYXJtX3RpbWUgPCBzZWxmLmRhdGEuYWxhcm1fdGltZToKKyAgICAgICAgICAg
ICAgICBmb3IgaSBpbiByYW5nZShsZW4oc2VsZi5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5n
ZXRwaWQoKV0pIC0gMSk6CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGF0YS5hbGFybV90
aW1lIDwgc2VsZi5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV1baSArIDFdLmFs
YXJtX3RpbWU6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX3RvX3RpbWVv
dXRfbWFwW29zLmdldHBpZCgpXS5pbnNlcnQoaSwgc2VsZi5kYXRhKQorICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX3RvX3RpbWVvdXRf
bWFwW29zLmdldHBpZCgpXS5hcHBlbmQoc2VsZi5kYXRhKQorCisgICAgICAgICAgICAjIFRoaXMg
aXMgdGhlIG1vc3QgdXJnZW50IHRpbWVvdXQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgc2VsZi5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV0gPSBbc2VsZi5k
YXRhXSArIHNlbGYuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXAuZ2V0KG9zLmdldHBpZCgpLCBbXSkK
KworICAgICAgICBpZiBzZWxmLl9wYXRjaDoKKyAgICAgICAgICAgIHNlbGYuX3BhdGNoLl9fZW50
ZXJfXygpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFy
Z3MsICoqa3dhcmdzKToKKyAgICAgICAgaWYgc2VsZi5fcGF0Y2g6CisgICAgICAgICAgICBzZWxm
Ll9wYXRjaC5fX2V4aXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgd2l0aCBzZWxmLkRp
c2FibGVBbGFybSgpOgorICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Byb2Nlc3NfdG9fdGltZW91
dF9tYXBbb3MuZ2V0cGlkKCldOgorICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcign
Tm8gdGltZW91dCByZWdpc3RlcmVkJykKKyAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfdG9fdGlt
ZW91dF9tYXBbb3MuZ2V0cGlkKCldLnJlbW92ZShzZWxmLmRhdGEpCisgICAgICAgICAgICBzZWxm
LmRhdGEgPSBOb25lCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L3Rlc3RzL3RpbWVvdXRfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90ZXN0cy90aW1l
b3V0X3VuaXR0ZXN0LnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvdGltZW91dF91bml0dGVzdC5weQkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEzOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
IyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgdGltZQoraW1wb3J0IHRocmVhZGluZworaW1wb3J0IHVuaXR0ZXN0
CisKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRwdXRDYXB0dXJlLCBUaW1lb3V0LCBtb2Nr
cworCisKK2NsYXNzIFRpbWVvdXRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYg
YXNzc2VydElzQ2xvc2Uoc2VsZiwgYSwgYiwgcGVyY2VudGFnZT0xKToKKyAgICAgICAgcGVyY2Vu
dGFnZSA9IHBlcmNlbnRhZ2UgKiAuMDEKKyAgICAgICAgaWYgYWJzKGEgLSBiKSA+IG1pbihhYnMo
cGVyY2VudGFnZSAqIGEpLCBhYnMocGVyY2VudGFnZSAqIGIpKToKKyAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoYSwgYikKKworICAgIGRlZiB0ZXN0X2N1cnJlbnRfdGltZW91dChzZWxmKToK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKKyAgICAg
ICAgd2l0aCBUaW1lb3V0KDEpIGFzIHRtcDoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dG1wLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF90aW1lb3V0KHNl
bGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBUaW1lb3V0LCAwKQor
CisgICAgZGVmIHRlc3RfdGltZW91dF9kYXRhKHNlbGYpOgorICAgICAgICB0bXAgPSBUaW1lb3V0
KDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1wLmRhdGEpCisgICAgICAgIHdp
dGggdG1wOgorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChOb25lLCB0bXAuZGF0YSkK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCku
aWRlbnQsIHRtcC5kYXRhLnRocmVhZF9pZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0
aW1lLnRpbWUoKSArIDEgPj0gdG1wLmRhdGEuYWxhcm1fdGltZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCB0bXAuZGF0YSkKKworICAgIGRlZiB0ZXN0X2RpZmZlcmVuY2Uoc2VsZik6
CisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToK
KyAgICAgICAgICAgICAgICBzZWxmLmFzc3NlcnRJc0Nsb3NlKFRpbWVvdXQuZGlmZmVyZW5jZSgp
LCAxKQorCisgICAgZGVmIHRlc3RfZGVhZGxpbmUoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3Mu
VGltZToKKyAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKKyAgICAgICAgICAgICAgICBzZWxm
LmFzc3NlcnRJc0Nsb3NlKFRpbWVvdXQuZGVhZGxpbmUoKSwgdGltZS50aW1lKCkgKyAxKQorCisg
ICAgZGVmIHRlc3RfY2hlY2soc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAgICAg
ICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVyOgorICAgICAgICAgICAgICAg
IHdpdGggVGltZW91dCgxKToKKyAgICAgICAgICAgICAgICAgICAgVGltZW91dC5jaGVjaygpCisg
ICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFRpbWVvdXQuRXhjZXB0aW9uLCB0
aW1lLnNsZWVwLCAxKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZXIud2Via2l0
Y29yZXB5LmxvZy5nZXR2YWx1ZSgpLCAnUmVxdWVzdCB0byBzbGVlcCAxIHNlY29uZCBleGNlZWRl
ZCB0aGUgY3VycmVudCB0aW1lb3V0IHRocmVzaG9sZFxuJykKKworICAgIGRlZiB0ZXN0X25lc3Rl
ZF9pbm5lcl9wcmVjZWRlbmNlKHNlbGYpOgorICAgICAgICB0bXBfb3V0ZXIgPSBUaW1lb3V0KDIp
CisgICAgICAgIHRtcF9pbm5lciA9IFRpbWVvdXQoMSkKKyAgICAgICAgd2l0aCB0bXBfb3V0ZXI6
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1
cnJlbnQoKSkKKyAgICAgICAgICAgIHdpdGggdG1wX2lubmVyOgorICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodG1wX2lubmVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCisKKyAg
ICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfcHJlY2VkZW5jZShzZWxmKToKKyAgICAgICAgdG1wX291
dGVyID0gVGltZW91dCgxKQorICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0KDIpCisgICAgICAg
IHdpdGggdG1wX291dGVyOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIu
ZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCisgICAgICAgICAgICB3aXRoIHRtcF9pbm5lcjoKKyAg
ICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1
cnJlbnQoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRp
bWVvdXQuY3VycmVudCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQu
Y3VycmVudCgpKQorCisgICAgZGVmIHRlc3Rfbm9fdGltZW91dChzZWxmKToKKyAgICAgICAgd2l0
aCBtb2Nrcy5UaW1lOgorICAgICAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVy
ZXI6CisgICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDIpOgorICAgICAgICAgICAgICAgICAg
ICB0aW1lLnNsZWVwKDEpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZXIu
d2Via2l0Y29yZXB5LmxvZy5nZXR2YWx1ZSgpLCAnJykKKworICAgIGRlZiB0ZXN0X2Jhc2ljX3Rp
bWVvdXQoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAgICAgICAgICAgIHdpdGgg
T3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVyOgorICAgICAgICAgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXMoVGltZW91dC5FeGNlcHRpb24pOgorICAgICAgICAgICAgICAgICAgICB3aXRo
IFRpbWVvdXQoMSk6CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCisKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZXIud2Via2l0Y29yZXB5LmxvZy5nZXR2
YWx1ZSgpLCAnUmVxdWVzdCB0byBzbGVlcCAyIHNlY29uZHMgZXhjZWVkZWQgdGhlIGN1cnJlbnQg
dGltZW91dCB0aHJlc2hvbGRcbicpCisKKyAgICBkZWYgdGVzdF9leGNlcHRpb25fY29uc3RydWN0
b3JfdGltZW91dChzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5UaW1lOgorICAgICAgICAgICAg
d2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZXI6CisgICAgICAgICAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpOgorICAgICAgICAgICAgICAgICAgICB3aXRo
IFRpbWVvdXQoMSwgUnVudGltZUVycm9yKCdUaGlzIHNob3VsZCBiZSByYWlzZWQnKSk6CisgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjYXB0dXJlci53ZWJraXRjb3JlcHkubG9nLmdldHZhbHVlKCksICdSZXF1ZXN0IHRvIHNs
ZWVwIDIgc2Vjb25kcyBleGNlZWRlZCB0aGUgY3VycmVudCB0aW1lb3V0IHRocmVzaG9sZFxuJykK
KworICAgIGRlZiB0ZXN0X25lc3RlZF9pbm5lcl90aW1lb3V0KHNlbGYpOgorICAgICAgICB3aXRo
IG1vY2tzLlRpbWU6CisgICAgICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJl
cjoKKyAgICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFRpbWVvdXQuRXhjZXB0
aW9uKToKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMsIFJ1bnRpbWVFcnJvcigi
VGhpcyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgorICAgICAgICAgICAgICAgICAgICAgICAgd2l0
aCBUaW1lb3V0KDEpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikK
KworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlci53ZWJraXRjb3JlcHkubG9n
LmdldHZhbHVlKCksICdSZXF1ZXN0IHRvIHNsZWVwIDIgc2Vjb25kcyBleGNlZWRlZCB0aGUgY3Vy
cmVudCB0aW1lb3V0IHRocmVzaG9sZFxuJykKKworICAgIGRlZiB0ZXN0X25lc3RlZF9vdXRlcl90
aW1lb3V0KHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tzLlRpbWU6CisgICAgICAgICAgICB3aXRo
IE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlcjoKKyAgICAgICAgICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKFRpbWVvdXQuRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICAgICAgd2l0
aCBUaW1lb3V0KDEpOgorICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMsIFJ1
bnRpbWVFcnJvcigiVGhpcyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjYXB0dXJlci53ZWJraXRjb3JlcHkubG9nLmdldHZhbHVlKCksICdSZXF1ZXN0IHRvIHNsZWVw
IDIgc2Vjb25kcyBleGNlZWRlZCB0aGUgY3VycmVudCB0aW1lb3V0IHRocmVzaG9sZFxuJykKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dC5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQu
cHkJKHJldmlzaW9uIDI2NTc3MSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3Rp
bWVvdXRfY29udGV4dC5weQkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjAsMTAwICsyMCw0IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgbWF0aAotaW1wb3J0IG9z
Ci1pbXBvcnQgc2lnbmFsCi1pbXBvcnQgdGltZQotaW1wb3J0IHRocmVhZGluZwotCi1fbG9nID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0KLQotY2xhc3MgVGltZW91dChvYmplY3QpOgot
Ci0gICAgdGhyZWFkX2V4Y2VwdGlvbiA9IFJ1bnRpbWVFcnJvcignVGltZW91dCBvcmlnaW5hdGVz
IGZyb20gYSBkaWZmZXJlbnQgdGhyZWFkJykKLSAgICBfcHJvY2Vzc190b190aW1lb3V0X21hcCA9
IHt9Ci0KLSAgICBjbGFzcyBUaW1lb3V0RGF0YShvYmplY3QpOgotCi0gICAgICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBhbGFybV90aW1lLCBoYW5kbGVyKToKLSAgICAgICAgICAgIHNlbGYuYWxhcm1f
dGltZSA9IGFsYXJtX3RpbWUKLSAgICAgICAgICAgIHNlbGYuaGFuZGxlciA9IGhhbmRsZXIKLSAg
ICAgICAgICAgIHNlbGYudGhyZWFkX2lkID0gdGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRl
bnQKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgZGVmYXVsdF9oYW5kbGVyKHNpZ251bSwg
ZnJhbWUpOgotICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ1RpbWVvdXQgYWxhcm0gd2FzIHRy
aWdnZXJlZCcpCi0KLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIGN1cnJlbnQoKToKLSAgICAg
ICAgcmVzdWx0ID0gVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcC5nZXQob3MuZ2V0cGlk
KCksIFtdKQotICAgICAgICBpZiBub3QgcmVzdWx0OgotICAgICAgICAgICAgcmV0dXJuIE5vbmUK
LSAgICAgICAgaWYgcmVzdWx0WzBdLnRocmVhZF9pZCAhPSB0aHJlYWRpbmcuY3VycmVudF90aHJl
YWQoKS5pZGVudDoKLSAgICAgICAgICAgIF9sb2cuY3JpdGljYWwoJ1VzaW5nIGJvdGggYWxhcm1z
IGFuZCB0aHJlYWRpbmcgaW4gdGhlIHNhbWUgcHJvY2VzcywgdGhpcyBpcyB1bnN1cHBvcnRlZCcp
Ci0gICAgICAgICAgICByYWlzZSBUaW1lb3V0LnRocmVhZF9leGNlcHRpb24KLSAgICAgICAgcmV0
dXJuIHJlc3VsdFswXQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlY29uZHM9MSwgaGFuZGxl
cj1Ob25lKToKLSAgICAgICAgaWYgc2Vjb25kcyA9PSAwOgotICAgICAgICAgICAgcmFpc2UgUnVu
dGltZUVycm9yKCdDYW5ub3QgaGF2ZSBhIHRpbWVvdXQgb2YgMCBzZWNvbmRzJykKLQotICAgICAg
ICBpZiBpc2luc3RhbmNlKGhhbmRsZXIsIEJhc2VFeGNlcHRpb24pOgotICAgICAgICAgICAgZXhj
ZXB0aW9uID0gaGFuZGxlcgotCi0gICAgICAgICAgICBkZWYgZXhjZXB0aW9uX2hhbmRsZXIoc2ln
bnVtLCBmcmFtZSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9uCi0KLSAgICAgICAg
ICAgIGhhbmRsZXIgPSBleGNlcHRpb25faGFuZGxlcgotCi0gICAgICAgIHNlbGYuX3RpbWVvdXQg
PSBzZWNvbmRzCi0gICAgICAgIHNlbGYuX2hhbmRsZXIgPSBoYW5kbGVyIGlmIGhhbmRsZXIgZWxz
ZSBUaW1lb3V0LmRlZmF1bHRfaGFuZGxlcgotICAgICAgICBzZWxmLmRhdGEgPSBOb25lCi0KLSAg
ICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIF9iaW5kX3RpbWVvdXRfZGF0YV90b19hbGFybShkYXRh
KToKLSAgICAgICAgZGVmIGhhbmRsZXIoc2lnbnVtLCBmcmFtZSk6Ci0gICAgICAgICAgICBhc3Nl
cnQgc2lnbnVtID09IHNpZ25hbC5TSUdBTFJNCi0gICAgICAgICAgICBpZiBkYXRhLnRocmVhZF9p
ZCAhPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5pZGVudDoKLSAgICAgICAgICAgICAgICBy
YWlzZSBUaW1lb3V0LnRocmVhZF9leGNlcHRpb24KLSAgICAgICAgICAgIGRhdGEuaGFuZGxlcihz
aWdudW0sIGZyYW1lKQotCi0gICAgICAgIGN1cnJlbnRfdGltZSA9IHRpbWUudGltZSgpCi0gICAg
ICAgIGlmIGRhdGEuYWxhcm1fdGltZSA8PSBjdXJyZW50X3RpbWU6Ci0gICAgICAgICAgICBoYW5k
bGVyKHNpZ25hbC5TSUdBTFJNLCBOb25lKQotCi0gICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFs
LlNJR0FMUk0sIGhhbmRsZXIpCi0gICAgICAgIHNpZ25hbC5hbGFybShpbnQobWF0aC5jZWlsKGRh
dGEuYWxhcm1fdGltZSAtIGN1cnJlbnRfdGltZSkpKQotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxm
KToKLSAgICAgICAgc2lnbmFsLmFsYXJtKDApICAjIEltaWVkaWF0bHkgZGlzYWJsZSB0aGUgYWxh
cm0gc28gd2UgYXJlbid0IGludGVydXB0ZWQuCi0gICAgICAgIHNlbGYuZGF0YSA9IFRpbWVvdXQu
VGltZW91dERhdGEodGltZS50aW1lKCkgKyBzZWxmLl90aW1lb3V0LCBzZWxmLl9oYW5kbGVyKQot
ICAgICAgICBjdXJyZW50X3RpbWVvdXQgPSBUaW1lb3V0LmN1cnJlbnQoKQotCi0gICAgICAgICMg
QW5vdGhlciB0aW1lb3V0IGlzIG1vcmUgdXJnZW50LgotICAgICAgICBpZiBjdXJyZW50X3RpbWVv
dXQgYW5kIGN1cnJlbnRfdGltZW91dC5hbGFybV90aW1lIDwgc2VsZi5kYXRhLmFsYXJtX3RpbWU6
Ci0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oVGltZW91dC5fcHJvY2Vzc190b190aW1l
b3V0X21hcFtvcy5nZXRwaWQoKV0pIC0gMSk6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5kYXRh
LmFsYXJtX3RpbWUgPCBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgp
XVtpICsgMV0uYWxhcm1fdGltZToKLSAgICAgICAgICAgICAgICAgICAgVGltZW91dC5fcHJvY2Vz
c190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV0uaW5zZXJ0KGksIHNlbGYuZGF0YSkKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGlt
ZW91dF9tYXBbb3MuZ2V0cGlkKCldLmFwcGVuZChzZWxmLmRhdGEpCi0KLSAgICAgICAgIyBUaGlz
IGlzIHRoZSBtb3N0IHVyZ2VudCB0aW1lb3V0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBU
aW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXSA9IFtzZWxmLmRhdGFd
ICsgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcC5nZXQob3MuZ2V0cGlkKCksIFtdKQot
Ci0gICAgICAgIFRpbWVvdXQuX2JpbmRfdGltZW91dF9kYXRhX3RvX2FsYXJtKFRpbWVvdXQuY3Vy
cmVudCgpKQotICAgICAgICByZXR1cm4gc2VsZgotCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4
Y190eXBlLCBleGNfdmFsdWUsIHRyYWNlYmFjayk6Ci0gICAgICAgIHNpZ25hbC5hbGFybSgwKSAg
IyBJbWllZGlhdGx5IGRpc2FibGUgdGhlIGFsYXJtIHNvIHdlIGFyZW4ndCBpbnRlcnVwdGVkLgot
Ci0gICAgICAgIGlmIG5vdCBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBp
ZCgpXToKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignTm8gdGltZW91dCByZWdpc3Rl
cmVkJykKLSAgICAgICAgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQo
KV0ucmVtb3ZlKHNlbGYuZGF0YSkKLSAgICAgICAgc2VsZi5kYXRhID0gTm9uZQotCi0gICAgICAg
IGlmIFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldOgotICAgICAg
ICAgICAgVGltZW91dC5fYmluZF90aW1lb3V0X2RhdGFfdG9fYWxhcm0oVGltZW91dC5jdXJyZW50
KCkpCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgVGltZW91dApJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVz
dC5weQkocmV2aXNpb24gMjY1NzcxKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
dGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5CShub25leGlzdGVudCkKQEAgLTEsOTggKzAsMCBA
QAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdGltZQot
aW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9u
LnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAotCi0KLWNsYXNzIFRpbWVvdXRDb250ZXh0
VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRlc3RfY3VycmVudF90aW1lb3V0
KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgp
KQotICAgICAgICB3aXRoIFRpbWVvdXQoMSkgYXMgdG1wOgotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh0bXAuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3Rp
bWVvdXQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgVGlt
ZW91dCwgMCkKLQotICAgIGRlZiB0ZXN0X3RpbWVvdXRfZGF0YShzZWxmKToKLSAgICAgICAgdG1w
ID0gVGltZW91dCgxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQot
ICAgICAgICB3aXRoIHRtcDoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoTm9uZSwg
dG1wLmRhdGEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRocmVhZGluZy5jdXJyZW50
X3RocmVhZCgpLmlkZW50LCB0bXAuZGF0YS50aHJlYWRfaWQpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydFRydWUodGltZS50aW1lKCkgKyAxID49IHRtcC5kYXRhLmFsYXJtX3RpbWUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRf
aW5uZXJfcHJlY2VkZW5jZShzZWxmKToKLSAgICAgICAgdG1wX291dGVyID0gVGltZW91dCgyKQot
ICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0KDEpCi0gICAgICAgIHdpdGggdG1wX291dGVyOgot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJy
ZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRtcF9pbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRtcF9pbm5lci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAg
ZGVmIHRlc3RfbmVzdGVkX291dGVyX3ByZWNlZGVuY2Uoc2VsZik6Ci0gICAgICAgIHRtcF9vdXRl
ciA9IFRpbWVvdXQoMSkKLSAgICAgICAgdG1wX2lubmVyID0gVGltZW91dCgyKQotICAgICAgICB3
aXRoIHRtcF9vdXRlcjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRh
dGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICAgICAgd2l0aCB0bXBfaW5uZXI6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJy
ZW50KCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1l
b3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1
cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X25vX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHdpdGgg
VGltZW91dCgyKToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgIGRlZiB0ZXN0X2Jh
c2ljX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAg
ICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKLQot
ICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbl9jb25zdHJ1Y3Rvcl90aW1lb3V0KHNlbGYpOgotICAgICAg
ICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGltZW91dCgxLCBFeGNl
cHRpb24oJ1RoaXMgc2hvdWxkIGJlIHJhaXNlZCcpKToKLSAgICAgICAgICAgICAgICB0aW1lLnNs
ZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbiwgc2hvdWxkX3RpbWVv
dXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfdGltZW91dChzZWxmKToKLSAgICAgICAg
ZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRpbWVvdXQoMywgRXhjZXB0
aW9uKCJUaGlzIHNob3VsZG4ndCBiZSByYWlzZWQiKSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBU
aW1lb3V0KDEpOgotICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYg
dGVzdF9uZXN0ZWRfb3V0ZXJfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1l
b3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgd2l0
aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhpcyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgotICAg
ICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVvdXQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406793</attachid>
            <date>2020-08-18 11:10:05 -0700</date>
            <delta_ts>2020-08-19 16:07:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200818111004.patch</filename>
            <type>text/plain</type>
            <size>26937</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTgwOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDIwLTA4LTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRoZSBUaW1lb3V0IGNsYXNzIGlzIGEg
Z2VuZXJhbGx5IHVzZWZ1bCBQeXRob24gdXRpbGl0eSwgaXQgc2hvdWxkIG5vdCBsaXZlIGluc2lk
ZSB3ZWJraXRweS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9S
RUFETUUubWQ6IERvY3VtZW50IFRpbWVvdXQgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHk6IEV4cG9zZSBUaW1l
b3V0IG9iamVjdCBBUEksIGluY3JlbWVudCB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvdGltZV8ucHk6CisgICAgICAg
IChfTWV0YVRpbWUuX19lbnRlcl9fKTogUmVwbGFjZSB0aW1lb3V0LnB5J3MgT1JJR0lOQUxfU0xF
RVAgdmFyaWFibGUgdG8gc3BlZWQgdXAgdGVzdGluZy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL3RpbWVvdXRfdW5pdHRlc3QucHk6
IEFkZGVkLgorICAgICAgICAoVGltZW91dFRlc3RzKTogQWRkZWQuCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5OiBBZGRlZC4K
KyAgICAgICAgKFRpbWVvdXQpOiBDbGFzcyByZXByZXNlbnRpbmcgYSBzdGFja2FibGUgVGltZW91
dCBjb250ZXh0LgorICAgICAgICAoVGltZW91dC5EYXRhKTogQ2xhc3MgY29udGFpbmluZyBpbmZv
cm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGRlYWRsaW5lLgorICAgICAgICAoVGltZW91dC5FeGNl
cHRpb24pOiBFeGNlcHRpb24gYmVsb25naW5nIHRvIHRoZSBUaW1lb3V0IG9iamVjdC4KKyAgICAg
ICAgKFRpbWVvdXQuRGlzYWJsZUFsYXJtKTogRm9yIHNvbWUgYmxvY2sgb2YgY29kZSwgZGlzYWJs
ZSBUaW1lb3V0IGFsYXJtcy4gVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSBtYW55IEFQSXMgKHN1Y2gg
YXMKKyAgICAgICAgc3VicHJvY2Vzcy5ydW4pIGRlZmluZSB0aGVpciBvd24gdGltZW91dHMgd2hp
Y2ggZG8gYmV0dGVyIGNsZWFudXAgdGhhbiBhbiBpbnRlcnJ1cHQgd291bGQuCisgICAgICAgIChU
aW1lb3V0LmRlZmF1bHRfaGFuZGxlcik6IERlZmF1bHQgVGltZW91dCBoYW5kbGVyIHdoaWNoIHJh
aXNlcyBhbiBleGNlcHRpb24uCisgICAgICAgIChUaW1lb3V0LmN1cnJlbnQpOiBSZXR1cm4gdGhl
IGN1cnJlbnQgVGltZW91dC5EYXRhIGNsYXNzLCBpZiBvbmUgZXhpc3RzLgorICAgICAgICAoVGlt
ZW91dC5kZWFkbGluZSk6IFJldHVybiB0aGUgY2xvc2VzdCBkZWFkbGluZSwgaWYgb25lIGV4aXN0
cy4KKyAgICAgICAgKFRpbWVvdXQuZGlmZmVyZW5jZSk6IFJldHVybiB0aGUgbnVtYmVyIG9mIHNl
Y29uZHMgYmV0d2VlbiB0aGUgY3VycmVudCB0aW1lIGFuZCB0aGUgY2xvc2VzdCBkZWFkbGluZS4K
KyAgICAgICAgKFRpbWVvdXQuY2hlY2spOiBDaGVjayBpZiB3ZSBoYXZlIHN1cnBhc3NlZCB0aGUg
Y2xvc2VzdCBkZWFkbGluZS4sIHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB3ZSBoYXZlLgorICAgICAg
ICAoVGltZW91dC5iaW5kKTogQ3JlYXRlIGEgc2lnbmFsIGJhc2VkIG9uIHRoZSBjbG9zZXN0IGRl
YWRsaW5lLgorICAgICAgICAoVGltZW91dC5zbGVlcCk6IE92ZXJyaWRlIHRoZSBzbGVlcCBmdW5j
dGlvbiBiZWNhdXNlIGlmIHdlIGV2ZXIgcmVxdWVzdCBhIHNsZWVwIHRoYXQgaXMgZ3JlYXRlciB0
aGFuIHRoZSBjbG9zZXN0IGRlYWRsaW5lLAorICAgICAgICB3ZSBzaG91bGQgaW1pZWRpYXRlbHkg
dHJpZ2dlciB0aGUgdGltZW91dCBsb2dpYyB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSB0aW1lb3V0
IHRvIGFjdHVhbGx5IGV4cGlyZS4KKyAgICAgICAgKFRpbWVvdXQuX19pbml0X18pOiBDcmVhdGUg
YSBUaW1lb3V0IGNvbnRleHQsIDEgc2Vjb25kIGJ5IGRlZmF1bHQuCisgICAgICAgIChUaW1lb3V0
Ll9fZW50ZXJfXyk6CisgICAgICAgIChUaW1lb3V0Ll9fZXhpdF9fKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHk6CisgICAgICAgIChUaW1lb3V0
KTogTW92ZWQgdG8gd2Via2l0Y29yZXB5LgorCiAyMDIwLTA4LTE3ICBTYWFnYXIgSmhhICA8c2Fh
Z2FyQHNhYWdhcmpoYS5jb20+CiAKICAgICAgICAgU3RvcCB3ZWJraXRweSBmcm9tIHdhcm5pbmcg
YWJvdXQgbm90IGhhdmluZyBhIDY0LWJpdCBnaXQgb24gQXBwbGUgc2lsaWNvbgpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L1JFQURNRS5tZAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCShyZXZpc2lv
biAyNjU4MDgpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvUkVBRE1F
Lm1kCSh3b3JraW5nIGNvcHkpCkBAIC01NywzICs1NywxMyBAQCB3aXRoIGNhcHR1cmVyOgogICAg
IHByaW50KCdkYXRhXG4nKQogYXNzZXJ0IGNhcHR1cmVyLnN0ZG91dC5nZXR2YWx1ZSgpID09ICdk
YXRhXG4nCiBgYGAKKworVGltZW91dCBjb250ZXh0OgorYGBgCitpbXBvcnQgdGltZQorCitmcm9t
IHdlYmtpdGNvcmVweSBpbXBvcnQgVGltZW91dAorCit3aXRoIFRpbWVvdXQoNSwgaGFuZGxlcj1S
dW50aW1lRXJyb3IoJ0V4Y2VlZGVkIDUgc2Vjb25kIHRpbWVvdXQnKSk6CisgICAgdGltZS5zbGVl
cCg0KQorYGBgCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Vi
a2l0Y29yZXB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2NTgw
OCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkv
X19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDkgQEAgbG9nLmFkZEhhbmRs
ZXIoTnVsbEhhbmRsZXIoKSkKIGZyb20gd2Via2l0Y29yZXB5LnZlcnNpb24gaW1wb3J0IFZlcnNp
b24KIGZyb20gd2Via2l0Y29yZXB5LnN0cmluZ191dGlscyBpbXBvcnQgQnl0ZXNJTywgU3RyaW5n
SU8sIFVuaWNvZGVJTywgdW5pY29kZQogZnJvbSB3ZWJraXRjb3JlcHkub3V0cHV0X2NhcHR1cmUg
aW1wb3J0IExvZ2dlckNhcHR1cmUsIE91dHB1dENhcHR1cmUsIE91dHB1dER1cGxpY2F0ZQorZnJv
bSB3ZWJraXRjb3JlcHkudGltZW91dCBpbXBvcnQgVGltZW91dAogCi12ZXJzaW9uID0gVmVyc2lv
bigwLCAyLCA2KQordmVyc2lvbiA9IFZlcnNpb24oMCwgMiwgNykKIAogZnJvbSB3ZWJraXRjb3Jl
cHkuYXV0b2luc3RhbGwgaW1wb3J0IFBhY2thZ2UsIEF1dG9JbnN0YWxsCiBpZiBzeXMudmVyc2lv
bl9pbmZvID4gKDMsIDApOgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29y
ZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGltZW91dC5weQkobm9uZXhpc3Rl
bnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5
L3RpbWVvdXQucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxODggQEAKKyMgQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGJpc2VjdAoraW1wb3J0IGNvbGxlY3Rp
b25zCitpbXBvcnQgbWF0aAoraW1wb3J0IG9zCitpbXBvcnQgc2lnbmFsCitpbXBvcnQgdGltZQor
aW1wb3J0IHRocmVhZGluZworCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgbG9nLCBzdHJpbmdf
dXRpbHMKKworCitPUklHSU5BTF9TTEVFUCA9IHRpbWUuc2xlZXAKKworCitjbGFzcyBUaW1lb3V0
KG9iamVjdCk6CisgICAgX3Byb2Nlc3NfdG9fdGltZW91dF9tYXAgPSBjb2xsZWN0aW9ucy5kZWZh
dWx0ZGljdChsaXN0KQorCisgICAgY2xhc3MgRGF0YShvYmplY3QpOgorICAgICAgICBkZWYgX19p
bml0X18oc2VsZiwgYWxhcm1fdGltZSwgaGFuZGxlcik6CisgICAgICAgICAgICBzZWxmLmFsYXJt
X3RpbWUgPSBhbGFybV90aW1lCisgICAgICAgICAgICBzZWxmLmhhbmRsZXIgPSBoYW5kbGVyCisg
ICAgICAgICAgICBzZWxmLnRocmVhZF9pZCA9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlk
ZW50CisgICAgICAgICAgICBzZWxmLnRyaWdnZXJlZCA9IEZhbHNlCisKKyAgICAgICAgZGVmIF9f
bHRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAgICBpZiBub3Qgb3RoZXI6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwg
VGltZW91dC5EYXRhKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdFeHBlY3Rl
ZCB7fSBpbiBjb21wYXJpc29uLCByZWNlaXZlZCB7fScpLmZvcm1hdChUaW1lb3V0LkRhdGEsIHR5
cGUob3RoZXIpKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWxhcm1fdGltZSA8IG90aGVyLmFs
YXJtX3RpbWUKKworICAgIGNsYXNzIEV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICAgICBwYXNz
CisKKyAgICBjbGFzcyBEaXNhYmxlQWxhcm0ob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBhdGNoPVRydWUpOgorICAgICAgICAgICAgaWYgcGF0Y2g6CisgICAgICAgICAgICAg
ICAgIyBBbGxvd3MgbW9jayB0byBiZSBtYW5hZ2VkIHZpYSBhdXRvaW5zdGFsbAorICAgICAgICAg
ICAgICAgIGZyb20gbW9jayBpbXBvcnQgcGF0Y2gKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXRj
aCA9IHBhdGNoKCd0aW1lLnNsZWVwJywgbmV3PU9SSUdJTkFMX1NMRUVQKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXRjaCA9IE5vbmUKKworICAgICAgICBkZWYg
X19lbnRlcl9fKHNlbGYpOgorICAgICAgICAgICAgc2lnbmFsLmFsYXJtKDApCisgICAgICAgICAg
ICBpZiBzZWxmLl9wYXRjaDoKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXRjaC5fX2VudGVyX18o
KQorCisgICAgICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbHVlLCB0cmFj
ZWJhY2spOgorICAgICAgICAgICAgaWYgc2VsZi5fcGF0Y2g6CisgICAgICAgICAgICAgICAgc2Vs
Zi5fcGF0Y2guX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKQorCisgICAg
ICAgICAgICAjIFdlIGRvbid0IHJlYmluZCB0aGUgYWxhcm0gaWYgYW4gZXhjZXB0aW9uIGlzIGFs
cmVhZHkgaW4gZmxpZ2h0CisgICAgICAgICAgICBpZiBleGNfdHlwZSBpcyBOb25lOgorICAgICAg
ICAgICAgICAgIFRpbWVvdXQuYmluZCgpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZGVm
YXVsdF9oYW5kbGVyKGNscywgc2lnbnVtLCBmcmFtZSk6CisgICAgICAgIHJhaXNlIGNscy5FeGNl
cHRpb24oJ1RpbWVvdXQgYWxhcm0gd2FzIHRyaWdnZXJlZCcpCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgY3VycmVudChjbHMpOgorICAgICAgICBmb3IgZWxlbWVudCBpbiBjbHMuX3Byb2Nl
c3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldOgorICAgICAgICAgICAgaWYgZWxlbWVudC50
cmlnZ2VyZWQ6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGVsZW1l
bnQudGhyZWFkX2lkICE9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgorICAgICAg
ICAgICAgICAgIGxvZy5jcml0aWNhbCgnVXNpbmcgYm90aCBhbGFybXMgYW5kIHRocmVhZGluZyBp
biB0aGUgc2FtZSBwcm9jZXNzLCB0aGlzIGlzIHVuc3VwcG9ydGVkJykKKyAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdUaW1lb3V0IG9yaWdpbmF0ZXMgZnJvbSBhIGRpZmZlcmVudCB0
aHJlYWQnKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQKKyAgICAgICAgcmV0dXJuIE5vbmUK
KworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBkZWFkbGluZShjbHMpOgorICAgICAgICBjdXJy
ZW50ID0gY2xzLmN1cnJlbnQoKQorICAgICAgICByZXR1cm4gY3VycmVudC5hbGFybV90aW1lIGlm
IGN1cnJlbnQgZWxzZSBOb25lCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZGlmZmVyZW5j
ZShjbHMsIGN1cnJlbnRfdGltZT1Ob25lKToKKyAgICAgICAgY3VycmVudCA9IGNscy5jdXJyZW50
KCkKKyAgICAgICAgaWYgbm90IGN1cnJlbnQ6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAg
ICAgICBjdXJyZW50X3RpbWUgPSBjdXJyZW50X3RpbWUgaWYgY3VycmVudF90aW1lIGVsc2UgdGlt
ZS50aW1lKCkKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQuYWxhcm1fdGltZSAtIGN1cnJlbnRfdGlt
ZSBpZiBjdXJyZW50LmFsYXJtX3RpbWUgLSBjdXJyZW50X3RpbWUgPiAwIGVsc2UgMAorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIGNoZWNrKGNscywgY3VycmVudF90aW1lPU5vbmUpOgorICAg
ICAgICBpZiBjbHMuZGlmZmVyZW5jZShjdXJyZW50X3RpbWU9Y3VycmVudF90aW1lKSAhPSAwOgor
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGN1cnJlbnQgPSBjbHMuY3VycmVudCgpCisgICAg
ICAgIGN1cnJlbnQudHJpZ2dlcmVkID0gVHJ1ZQorICAgICAgICBjbHMuYmluZCgpCisgICAgICAg
IGN1cnJlbnQuaGFuZGxlcihzaWduYWwuU0lHQUxSTSwgTm9uZSkKKworICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBiaW5kKGNscyk6CisgICAgICAgIGN1cnJlbnQgPSBjbHMuY3VycmVudCgpCisg
ICAgICAgIGlmIG5vdCBjdXJyZW50OgorICAgICAgICAgICAgc2lnbmFsLmFsYXJtKDApCisgICAg
ICAgICAgICByZXR1cm4KKworICAgICAgICBkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKKyAg
ICAgICAgICAgIGFzc2VydCBzaWdudW0gPT0gc2lnbmFsLlNJR0FMUk0KKyAgICAgICAgICAgIGlm
IGN1cnJlbnQudGhyZWFkX2lkICE9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50Ogor
ICAgICAgICAgICAgICAgIGxvZy5jcml0aWNhbCgnVXNpbmcgYm90aCBhbGFybXMgYW5kIHRocmVh
ZGluZyBpbiB0aGUgc2FtZSBwcm9jZXNzLCB0aGlzIGlzIHVuc3VwcG9ydGVkJykKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdUaW1lb3V0IG9yaWdpbmF0ZXMgZnJvbSBhIGRpZmZl
cmVudCB0aHJlYWQnKQorICAgICAgICAgICAgY3VycmVudC50cmlnZ2VyZWQgPSBUcnVlCisgICAg
ICAgICAgICBUaW1lb3V0LmJpbmQoKQorICAgICAgICAgICAgY3VycmVudC5oYW5kbGVyKHNpZ251
bSwgZnJhbWUpCisKKyAgICAgICAgY3VycmVudF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAg
Y2xzLmNoZWNrKGN1cnJlbnRfdGltZT1jdXJyZW50X3RpbWUpCisgICAgICAgIHNpZ25hbC5zaWdu
YWwoc2lnbmFsLlNJR0FMUk0sIGhhbmRsZXIpCisgICAgICAgIHNpZ25hbC5hbGFybShpbnQobWF0
aC5jZWlsKGN1cnJlbnQuYWxhcm1fdGltZSAtIGN1cnJlbnRfdGltZSkpKQorCisgICAgQGNsYXNz
bWV0aG9kCisgICAgZGVmIHNsZWVwKGNscywgc2Vjb25kcyk6CisgICAgICAgIGRpZmZlcmVuY2Ug
PSBjbHMuZGlmZmVyZW5jZSgpCisgICAgICAgIGlmIGRpZmZlcmVuY2UgaXMgbm90IE5vbmUgYW5k
IHNlY29uZHMgPj0gZGlmZmVyZW5jZToKKyAgICAgICAgICAgIGxvZy5lcnJvcignUmVxdWVzdCB0
byBzbGVlcCB7fSBleGNlZWRlZCB0aGUgY3VycmVudCB0aW1lb3V0IHRocmVzaG9sZCcuZm9ybWF0
KHN0cmluZ191dGlscy5wbHVyYWxpemUoc2Vjb25kcywgJ3NlY29uZCcpKSkKKyAgICAgICAgICAg
IGN1cnJlbnQgPSBjbHMuY3VycmVudCgpCisgICAgICAgICAgICBjdXJyZW50LnRyaWdnZXJlZCA9
IFRydWUKKyAgICAgICAgICAgIGNscy5iaW5kKCkKKyAgICAgICAgICAgIGN1cnJlbnQuaGFuZGxl
cihzaWduYWwuU0lHQUxSTSwgTm9uZSkKKyAgICAgICAgcmV0dXJuIE9SSUdJTkFMX1NMRUVQKHNl
Y29uZHMpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vjb25kcz0xLCBoYW5kbGVyPU5vbmUs
IHBhdGNoPVRydWUpOgorICAgICAgICBpZiBzZWNvbmRzIDw9IDA6CisgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdUaW1lb3V0cyBtdXN0IGJlIHBvc2l0aXZlJykKKworICAgICAgICBpZiBp
c2luc3RhbmNlKGhhbmRsZXIsIEJhc2VFeGNlcHRpb24pOgorICAgICAgICAgICAgZXhjZXB0aW9u
ID0gaGFuZGxlcgorCisgICAgICAgICAgICBkZWYgZXhjZXB0aW9uX2hhbmRsZXIoc2lnbnVtLCBm
cmFtZSk6CisgICAgICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9uCisKKyAgICAgICAgICAgIGhh
bmRsZXIgPSBleGNlcHRpb25faGFuZGxlcgorCisgICAgICAgIHNlbGYuX3RpbWVvdXQgPSBzZWNv
bmRzCisgICAgICAgIHNlbGYuX2hhbmRsZXIgPSBoYW5kbGVyIGlmIGhhbmRsZXIgZWxzZSBzZWxm
LmRlZmF1bHRfaGFuZGxlcgorICAgICAgICBzZWxmLmRhdGEgPSBOb25lCisKKyAgICAgICAgaWYg
cGF0Y2g6CisgICAgICAgICAgICAjIEFsbG93cyBtb2NrIHRvIGJlIG1hbmFnZWQgdmlhIGF1dG9p
bnN0YWxsCisgICAgICAgICAgICBmcm9tIG1vY2sgaW1wb3J0IHBhdGNoCisgICAgICAgICAgICBz
ZWxmLl9wYXRjaCA9IHBhdGNoKCd0aW1lLnNsZWVwJywgbmV3PXNlbGYuc2xlZXApCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBzZWxmLl9wYXRjaCA9IE5vbmUKKworICAgIGRlZiBfX2VudGVy
X18oc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0oKToKKyAgICAgICAgICAg
IHNlbGYuZGF0YSA9IHNlbGYuRGF0YSh0aW1lLnRpbWUoKSArIHNlbGYuX3RpbWVvdXQsIHNlbGYu
X2hhbmRsZXIpCisgICAgICAgICAgICBiaXNlY3QuaW5zb3J0KHNlbGYuX3Byb2Nlc3NfdG9fdGlt
ZW91dF9tYXBbb3MuZ2V0cGlkKCldLCBzZWxmLmRhdGEpCisKKyAgICAgICAgaWYgc2VsZi5fcGF0
Y2g6CisgICAgICAgICAgICBzZWxmLl9wYXRjaC5fX2VudGVyX18oKQorICAgICAgICByZXR1cm4g
c2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg
IGlmIHNlbGYuX3BhdGNoOgorICAgICAgICAgICAgc2VsZi5fcGF0Y2guX19leGl0X18oKmFyZ3Ms
ICoqa3dhcmdzKQorCisgICAgICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0oKToKKyAgICAgICAg
ICAgIGlmIG5vdCBzZWxmLl9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXToKKyAg
ICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ05vIHRpbWVvdXQgcmVnaXN0ZXJlZCcp
CisgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5y
ZW1vdmUoc2VsZi5kYXRhKQorICAgICAgICAgICAgc2VsZi5kYXRhID0gTm9uZQpJbmRleDogVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1l
Xy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5CShyZXZpc2lvbiAyNjU4MDgpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCw3IEBAIGNsYXNzIF9NZXRhVGltZSh0eXBlKToK
ICAgICAgICAgICAgIHBhdGNoKCd0aW1lLnRpbWUnLCBuZXc9bGFtYmRhOiBzZWxmLnN0YWNrWy0x
XSksCiAgICAgICAgICAgICBwYXRjaCgndGltZS5zbGVlcCcsIG5ldz1zbGVlcF9mdW5jKSwKICAg
ICAgICAgICAgIHBhdGNoKCdkYXRldGltZS5kYXRldGltZScsIG5ldz1GYWtlRGF0ZVRpbWUpLAor
ICAgICAgICAgICAgcGF0Y2goJ3dlYmtpdGNvcmVweS50aW1lb3V0Lk9SSUdJTkFMX1NMRUVQJywg
bmV3PXNsZWVwX2Z1bmMpLAogICAgICAgICBdKQogCiAgICAgICAgIGZvciBwYXRjaCBpbiBzZWxm
LnBhdGNoZXNbLTFdOgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS90ZXN0cy90aW1lb3V0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvdGlt
ZW91dF91bml0dGVzdC5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL3RpbWVvdXRfdW5pdHRlc3QucHkJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworaW1wb3J0IHRpbWUKK2ltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB1bml0dGVz
dAorCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgVGltZW91dCwgbW9j
a3MKKworCitjbGFzcyBUaW1lb3V0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVm
IGFzc3NlcnRJc0Nsb3NlKHNlbGYsIGEsIGIsIHBlcmNlbnRhZ2U9MSk6CisgICAgICAgIHBlcmNl
bnRhZ2UgPSBwZXJjZW50YWdlICogLjAxCisgICAgICAgIGlmIGFicyhhIC0gYikgPiBtaW4oYWJz
KHBlcmNlbnRhZ2UgKiBhKSwgYWJzKHBlcmNlbnRhZ2UgKiBiKSk6CisgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGEsIGIpCisKKyAgICBkZWYgdGVzdF9jdXJyZW50X3RpbWVvdXQoc2VsZik6
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCisgICAg
ICAgIHdpdGggVGltZW91dCgxKSBhcyB0bXA6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHRtcC5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChO
b25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfdGltZW91dChz
ZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgVGltZW91dCwgMCkK
KworICAgIGRlZiB0ZXN0X3RpbWVvdXRfZGF0YShzZWxmKToKKyAgICAgICAgdG1wID0gVGltZW91
dCgxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQorICAgICAgICB3
aXRoIHRtcDoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoTm9uZSwgdG1wLmRhdGEp
CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgp
LmlkZW50LCB0bXAuZGF0YS50aHJlYWRfaWQpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUo
dGltZS50aW1lKCkgKyAxID49IHRtcC5kYXRhLmFsYXJtX3RpbWUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgdG1wLmRhdGEpCisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbmNlKHNlbGYp
OgorICAgICAgICB3aXRoIG1vY2tzLlRpbWU6CisgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6
CisgICAgICAgICAgICAgICAgc2VsZi5hc3NzZXJ0SXNDbG9zZShUaW1lb3V0LmRpZmZlcmVuY2Uo
KSwgMSkKKworICAgIGRlZiB0ZXN0X2RlYWRsaW5lKHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tz
LlRpbWU6CisgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6CisgICAgICAgICAgICAgICAgc2Vs
Zi5hc3NzZXJ0SXNDbG9zZShUaW1lb3V0LmRlYWRsaW5lKCksIHRpbWUudGltZSgpICsgMSkKKwor
ICAgIGRlZiB0ZXN0X2NoZWNrKHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tzLlRpbWUsIE91dHB1
dENhcHR1cmUoKSBhcyBjYXB0dXJlcjoKKyAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKKyAg
ICAgICAgICAgICAgICBUaW1lb3V0LmNoZWNrKCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhUaW1lb3V0LkV4Y2VwdGlvbiwgdGltZS5zbGVlcCwgMSkKKworICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNhcHR1cmVyLndlYmtpdGNvcmVweS5sb2cuZ2V0dmFsdWUoKSwgJ1JlcXVl
c3QgdG8gc2xlZXAgMSBzZWNvbmQgZXhjZWVkZWQgdGhlIGN1cnJlbnQgdGltZW91dCB0aHJlc2hv
bGRcbicpCisKKyAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfcHJlY2VkZW5jZShzZWxmKToKKyAg
ICAgICAgdG1wX291dGVyID0gVGltZW91dCgyKQorICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0
KDEpCisgICAgICAgIHdpdGggdG1wX291dGVyOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCisgICAgICAgICAgICB3aXRoIHRt
cF9pbm5lcjoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9pbm5lci5kYXRh
LCBUaW1lb3V0LmN1cnJlbnQoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291
dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQorCisgICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3ByZWNl
ZGVuY2Uoc2VsZik6CisgICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQoMSkKKyAgICAgICAgdG1w
X2lubmVyID0gVGltZW91dCgyKQorICAgICAgICB3aXRoIHRtcF9vdXRlcjoKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQorICAg
ICAgICAgICAgd2l0aCB0bXBfaW5uZXI6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKKworICAgIGRlZiB0ZXN0X25v
X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MuVGltZSwgT3V0cHV0Q2FwdHVyZSgp
IGFzIGNhcHR1cmVyOgorICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDIpOgorICAgICAgICAgICAg
ICAgIHRpbWUuc2xlZXAoMSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVyLndl
YmtpdGNvcmVweS5sb2cuZ2V0dmFsdWUoKSwgJycpCisKKyAgICBkZWYgdGVzdF9iYXNpY190aW1l
b3V0KHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tzLlRpbWUsIE91dHB1dENhcHR1cmUoKSBhcyBj
YXB0dXJlciwgc2VsZi5hc3NlcnRSYWlzZXMoVGltZW91dC5FeGNlcHRpb24pOgorICAgICAgICAg
ICAgd2l0aCBUaW1lb3V0KDEpOgorICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKKworICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVyLndlYmtpdGNvcmVweS5sb2cuZ2V0dmFsdWUo
KSwgJ1JlcXVlc3QgdG8gc2xlZXAgMiBzZWNvbmRzIGV4Y2VlZGVkIHRoZSBjdXJyZW50IHRpbWVv
dXQgdGhyZXNob2xkXG4nKQorCisgICAgZGVmIHRlc3RfZXhjZXB0aW9uX2NvbnN0cnVjdG9yX3Rp
bWVvdXQoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MuVGltZSwgT3V0cHV0Q2FwdHVyZSgpIGFz
IGNhcHR1cmVyLCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpOgorICAgICAgICAgICAg
d2l0aCBUaW1lb3V0KDEsIFJ1bnRpbWVFcnJvcignVGhpcyBzaG91bGQgYmUgcmFpc2VkJykpOgor
ICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNhcHR1cmVyLndlYmtpdGNvcmVweS5sb2cuZ2V0dmFsdWUoKSwgJ1JlcXVlc3QgdG8gc2xlZXAg
MiBzZWNvbmRzIGV4Y2VlZGVkIHRoZSBjdXJyZW50IHRpbWVvdXQgdGhyZXNob2xkXG4nKQorCisg
ICAgZGVmIHRlc3RfbmVzdGVkX2lubmVyX3RpbWVvdXQoc2VsZik6CisgICAgICAgIHdpdGggbW9j
a3MuVGltZSwgT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVyLCBzZWxmLmFzc2VydFJhaXNlcyhU
aW1lb3V0LkV4Y2VwdGlvbik6CisgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMywgUnVudGltZUVy
cm9yKCJUaGlzIHNob3VsZG4ndCBiZSByYWlzZWQiKSk6CisgICAgICAgICAgICAgICAgd2l0aCBU
aW1lb3V0KDEpOgorICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCisKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlci53ZWJraXRjb3JlcHkubG9nLmdldHZhbHVlKCksICdS
ZXF1ZXN0IHRvIHNsZWVwIDIgc2Vjb25kcyBleGNlZWRlZCB0aGUgY3VycmVudCB0aW1lb3V0IHRo
cmVzaG9sZFxuJykKKworICAgIGRlZiB0ZXN0X25lc3RlZF9vdXRlcl90aW1lb3V0KHNlbGYpOgor
ICAgICAgICB3aXRoIG1vY2tzLlRpbWUsIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlciwgc2Vs
Zi5hc3NlcnRSYWlzZXMoVGltZW91dC5FeGNlcHRpb24pOgorICAgICAgICAgICAgd2l0aCBUaW1l
b3V0KDEpOgorICAgICAgICAgICAgICAgIHdpdGggVGltZW91dCgzLCBSdW50aW1lRXJyb3IoIlRo
aXMgc2hvdWxkbid0IGJlIHJhaXNlZCIpKToKKyAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVl
cCgyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZXIud2Via2l0Y29yZXB5Lmxv
Zy5nZXR2YWx1ZSgpLCAnUmVxdWVzdCB0byBzbGVlcCAyIHNlY29uZHMgZXhjZWVkZWQgdGhlIGN1
cnJlbnQgdGltZW91dCB0aHJlc2hvbGRcbicpCisKKyAgICBkZWYgdGVzdF9zaW5nbGVfdHJpZ2dl
cihzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5UaW1lLCBPdXRwdXRDYXB0dXJlKCk6CisgICAg
ICAgICAgICB3aXRoIFRpbWVvdXQoMSk6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlcyhUaW1lb3V0LkV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xl
ZXAoMikKKyAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpICAjIFRoZSB0aW1lb3V0IGhhcyBh
bHJlYWR5IGJlZW4gdHJpZ2dlcmVkLCBzbyBpdCBzaG91bGRuJ3QgYmUgcmUtdHJpZ2dlcmVkLgpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4
dC5weQkocmV2aXNpb24gMjY1ODA4KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
dGltZW91dF9jb250ZXh0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yMCwxMDAgKzIwLDQgQEAKICMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBtYXRoCi1pbXBvcnQg
b3MKLWltcG9ydCBzaWduYWwKLWltcG9ydCB0aW1lCi1pbXBvcnQgdGhyZWFkaW5nCi0KLV9sb2cg
PSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBUaW1lb3V0KG9iamVjdCk6
Ci0KLSAgICB0aHJlYWRfZXhjZXB0aW9uID0gUnVudGltZUVycm9yKCdUaW1lb3V0IG9yaWdpbmF0
ZXMgZnJvbSBhIGRpZmZlcmVudCB0aHJlYWQnKQotICAgIF9wcm9jZXNzX3RvX3RpbWVvdXRfbWFw
ID0ge30KLQotICAgIGNsYXNzIFRpbWVvdXREYXRhKG9iamVjdCk6Ci0KLSAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGFsYXJtX3RpbWUsIGhhbmRsZXIpOgotICAgICAgICAgICAgc2VsZi5hbGFy
bV90aW1lID0gYWxhcm1fdGltZQotICAgICAgICAgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcgot
ICAgICAgICAgICAgc2VsZi50aHJlYWRfaWQgPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5p
ZGVudAotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBkZWZhdWx0X2hhbmRsZXIoc2lnbnVt
LCBmcmFtZSk6Ci0gICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignVGltZW91dCBhbGFybSB3YXMg
dHJpZ2dlcmVkJykKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgY3VycmVudCgpOgotICAg
ICAgICByZXN1bHQgPSBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwLmdldChvcy5nZXRw
aWQoKSwgW10pCi0gICAgICAgIGlmIG5vdCByZXN1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9u
ZQotICAgICAgICBpZiByZXN1bHRbMF0udGhyZWFkX2lkICE9IHRocmVhZGluZy5jdXJyZW50X3Ro
cmVhZCgpLmlkZW50OgotICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgnVXNpbmcgYm90aCBhbGFy
bXMgYW5kIHRocmVhZGluZyBpbiB0aGUgc2FtZSBwcm9jZXNzLCB0aGlzIGlzIHVuc3VwcG9ydGVk
JykKLSAgICAgICAgICAgIHJhaXNlIFRpbWVvdXQudGhyZWFkX2V4Y2VwdGlvbgotICAgICAgICBy
ZXR1cm4gcmVzdWx0WzBdCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vjb25kcz0xLCBoYW5k
bGVyPU5vbmUpOgotICAgICAgICBpZiBzZWNvbmRzID09IDA6Ci0gICAgICAgICAgICByYWlzZSBS
dW50aW1lRXJyb3IoJ0Nhbm5vdCBoYXZlIGEgdGltZW91dCBvZiAwIHNlY29uZHMnKQotCi0gICAg
ICAgIGlmIGlzaW5zdGFuY2UoaGFuZGxlciwgQmFzZUV4Y2VwdGlvbik6Ci0gICAgICAgICAgICBl
eGNlcHRpb24gPSBoYW5kbGVyCi0KLSAgICAgICAgICAgIGRlZiBleGNlcHRpb25faGFuZGxlcihz
aWdudW0sIGZyYW1lKToKLSAgICAgICAgICAgICAgICByYWlzZSBleGNlcHRpb24KLQotICAgICAg
ICAgICAgaGFuZGxlciA9IGV4Y2VwdGlvbl9oYW5kbGVyCi0KLSAgICAgICAgc2VsZi5fdGltZW91
dCA9IHNlY29uZHMKLSAgICAgICAgc2VsZi5faGFuZGxlciA9IGhhbmRsZXIgaWYgaGFuZGxlciBl
bHNlIFRpbWVvdXQuZGVmYXVsdF9oYW5kbGVyCi0gICAgICAgIHNlbGYuZGF0YSA9IE5vbmUKLQot
ICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX2JpbmRfdGltZW91dF9kYXRhX3RvX2FsYXJtKGRh
dGEpOgotICAgICAgICBkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKLSAgICAgICAgICAgIGFz
c2VydCBzaWdudW0gPT0gc2lnbmFsLlNJR0FMUk0KLSAgICAgICAgICAgIGlmIGRhdGEudGhyZWFk
X2lkICE9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgotICAgICAgICAgICAgICAg
IHJhaXNlIFRpbWVvdXQudGhyZWFkX2V4Y2VwdGlvbgotICAgICAgICAgICAgZGF0YS5oYW5kbGVy
KHNpZ251bSwgZnJhbWUpCi0KLSAgICAgICAgY3VycmVudF90aW1lID0gdGltZS50aW1lKCkKLSAg
ICAgICAgaWYgZGF0YS5hbGFybV90aW1lIDw9IGN1cnJlbnRfdGltZToKLSAgICAgICAgICAgIGhh
bmRsZXIoc2lnbmFsLlNJR0FMUk0sIE5vbmUpCi0KLSAgICAgICAgc2lnbmFsLnNpZ25hbChzaWdu
YWwuU0lHQUxSTSwgaGFuZGxlcikKLSAgICAgICAgc2lnbmFsLmFsYXJtKGludChtYXRoLmNlaWwo
ZGF0YS5hbGFybV90aW1lIC0gY3VycmVudF90aW1lKSkpCi0KLSAgICBkZWYgX19lbnRlcl9fKHNl
bGYpOgotICAgICAgICBzaWduYWwuYWxhcm0oMCkgICMgSW1pZWRpYXRseSBkaXNhYmxlIHRoZSBh
bGFybSBzbyB3ZSBhcmVuJ3QgaW50ZXJ1cHRlZC4KLSAgICAgICAgc2VsZi5kYXRhID0gVGltZW91
dC5UaW1lb3V0RGF0YSh0aW1lLnRpbWUoKSArIHNlbGYuX3RpbWVvdXQsIHNlbGYuX2hhbmRsZXIp
Ci0gICAgICAgIGN1cnJlbnRfdGltZW91dCA9IFRpbWVvdXQuY3VycmVudCgpCi0KLSAgICAgICAg
IyBBbm90aGVyIHRpbWVvdXQgaXMgbW9yZSB1cmdlbnQuCi0gICAgICAgIGlmIGN1cnJlbnRfdGlt
ZW91dCBhbmQgY3VycmVudF90aW1lb3V0LmFsYXJtX3RpbWUgPCBzZWxmLmRhdGEuYWxhcm1fdGlt
ZToKLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihUaW1lb3V0Ll9wcm9jZXNzX3RvX3Rp
bWVvdXRfbWFwW29zLmdldHBpZCgpXSkgLSAxKToKLSAgICAgICAgICAgICAgICBpZiBzZWxmLmRh
dGEuYWxhcm1fdGltZSA8IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlk
KCldW2kgKyAxXS5hbGFybV90aW1lOgotICAgICAgICAgICAgICAgICAgICBUaW1lb3V0Ll9wcm9j
ZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5pbnNlcnQoaSwgc2VsZi5kYXRhKQotICAg
ICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgVGltZW91dC5fcHJvY2Vzc190b190
aW1lb3V0X21hcFtvcy5nZXRwaWQoKV0uYXBwZW5kKHNlbGYuZGF0YSkKLQotICAgICAgICAjIFRo
aXMgaXMgdGhlIG1vc3QgdXJnZW50IHRpbWVvdXQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldID0gW3NlbGYuZGF0
YV0gKyBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwLmdldChvcy5nZXRwaWQoKSwgW10p
Ci0KLSAgICAgICAgVGltZW91dC5fYmluZF90aW1lb3V0X2RhdGFfdG9fYWxhcm0oVGltZW91dC5j
dXJyZW50KCkpCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwg
ZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKLSAgICAgICAgc2lnbmFsLmFsYXJtKDAp
ICAjIEltaWVkaWF0bHkgZGlzYWJsZSB0aGUgYWxhcm0gc28gd2UgYXJlbid0IGludGVydXB0ZWQu
Ci0KLSAgICAgICAgaWYgbm90IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0
cGlkKCldOgotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdObyB0aW1lb3V0IHJlZ2lz
dGVyZWQnKQotICAgICAgICBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBp
ZCgpXS5yZW1vdmUoc2VsZi5kYXRhKQotICAgICAgICBzZWxmLmRhdGEgPSBOb25lCi0KLSAgICAg
ICAgaWYgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV06Ci0gICAg
ICAgICAgICBUaW1lb3V0Ll9iaW5kX3RpbWVvdXRfZGF0YV90b19hbGFybShUaW1lb3V0LmN1cnJl
bnQoKSkKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHRfdW5pdHRlc3QucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0
ZXN0LnB5CShyZXZpc2lvbiAyNjU4MDgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi90aW1lb3V0X2NvbnRleHRfdW5pdHRlc3QucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw5OCArMCww
IEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCB0aW1l
Ci1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSB3ZWJraXRweS5jb21t
b24udGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0Ci0KLQotY2xhc3MgVGltZW91dENvbnRl
eHRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9jdXJyZW50X3RpbWVv
dXQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50
KCkpCi0gICAgICAgIHdpdGggVGltZW91dCgxKSBhcyB0bXA6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRtcC5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X2ludmFsaWRf
dGltZW91dChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBU
aW1lb3V0LCAwKQotCi0gICAgZGVmIHRlc3RfdGltZW91dF9kYXRhKHNlbGYpOgotICAgICAgICB0
bXAgPSBUaW1lb3V0KDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1wLmRhdGEp
Ci0gICAgICAgIHdpdGggdG1wOgotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChOb25l
LCB0bXAuZGF0YSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGhyZWFkaW5nLmN1cnJl
bnRfdGhyZWFkKCkuaWRlbnQsIHRtcC5kYXRhLnRocmVhZF9pZCkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZSh0aW1lLnRpbWUoKSArIDEgPj0gdG1wLmRhdGEuYWxhcm1fdGltZSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB0bXAuZGF0YSkKLQotICAgIGRlZiB0ZXN0X25lc3Rl
ZF9pbm5lcl9wcmVjZWRlbmNlKHNlbGYpOgotICAgICAgICB0bXBfb3V0ZXIgPSBUaW1lb3V0KDIp
Ci0gICAgICAgIHRtcF9pbm5lciA9IFRpbWVvdXQoMSkKLSAgICAgICAgd2l0aCB0bXBfb3V0ZXI6
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1
cnJlbnQoKSkKLSAgICAgICAgICAgIHdpdGggdG1wX2lubmVyOgotICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodG1wX2lubmVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0KLSAg
ICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfcHJlY2VkZW5jZShzZWxmKToKLSAgICAgICAgdG1wX291
dGVyID0gVGltZW91dCgxKQotICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0KDIpCi0gICAgICAg
IHdpdGggdG1wX291dGVyOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIu
ZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRtcF9pbm5lcjoKLSAg
ICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1
cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRp
bWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQu
Y3VycmVudCgpKQotCi0gICAgZGVmIHRlc3Rfbm9fdGltZW91dChzZWxmKToKLSAgICAgICAgd2l0
aCBUaW1lb3V0KDIpOgotICAgICAgICAgICAgdGltZS5zbGVlcCgxKQotCi0gICAgZGVmIHRlc3Rf
YmFzaWNfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAg
ICAgICAgICB3aXRoIFRpbWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHNob3VsZF90aW1lb3V0KQot
Ci0gICAgZGVmIHRlc3RfZXhjZXB0aW9uX2NvbnN0cnVjdG9yX3RpbWVvdXQoc2VsZik6Ci0gICAg
ICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEsIEV4
Y2VwdGlvbignVGhpcyBzaG91bGQgYmUgcmFpc2VkJykpOgotICAgICAgICAgICAgICAgIHRpbWUu
c2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLCBzaG91bGRfdGlt
ZW91dCkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9pbm5lcl90aW1lb3V0KHNlbGYpOgotICAgICAg
ICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGltZW91dCgzLCBFeGNl
cHRpb24oIlRoaXMgc2hvdWxkbid0IGJlIHJhaXNlZCIpKToKLSAgICAgICAgICAgICAgICB3aXRo
IFRpbWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRl
ZiB0ZXN0X25lc3RlZF9vdXRlcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3Rp
bWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKLSAgICAgICAgICAgICAgICB3
aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJUaGlzIHNob3VsZG4ndCBiZSByYWlzZWQiKSk6Ci0g
ICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoUnVudGltZUVycm9yLCBzaG91bGRfdGltZW91dCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406883</attachid>
            <date>2020-08-19 16:07:38 -0700</date>
            <delta_ts>2020-08-20 07:11:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200819160737.patch</filename>
            <type>text/plain</type>
            <size>26922</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTkwNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDIwLTA4LTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRoZSBUaW1lb3V0IGNsYXNzIGlzIGEg
Z2VuZXJhbGx5IHVzZWZ1bCBQeXRob24gdXRpbGl0eSwgaXQgc2hvdWxkIG5vdCBsaXZlIGluc2lk
ZSB3ZWJraXRweS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9S
RUFETUUubWQ6IERvY3VtZW50IFRpbWVvdXQgb2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHk6IEV4cG9zZSBUaW1l
b3V0IG9iamVjdCBBUEksIGluY3JlbWVudCB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvdGltZV8ucHk6CisgICAgICAg
IChfTWV0YVRpbWUuX19lbnRlcl9fKTogUmVwbGFjZSB0aW1lb3V0LnB5J3MgT1JJR0lOQUxfU0xF
RVAgdmFyaWFibGUgdG8gc3BlZWQgdXAgdGVzdGluZy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL3RpbWVvdXRfdW5pdHRlc3QucHk6
IEFkZGVkLgorICAgICAgICAoVGltZW91dFRlc3RzKTogQWRkZWQuCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5OiBBZGRlZC4K
KyAgICAgICAgKFRpbWVvdXQpOiBDbGFzcyByZXByZXNlbnRpbmcgYSBzdGFja2FibGUgVGltZW91
dCBjb250ZXh0LgorICAgICAgICAoVGltZW91dC5EYXRhKTogQ2xhc3MgY29udGFpbmluZyBpbmZv
cm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGRlYWRsaW5lLgorICAgICAgICAoVGltZW91dC5FeGNl
cHRpb24pOiBFeGNlcHRpb24gYmVsb25naW5nIHRvIHRoZSBUaW1lb3V0IG9iamVjdC4KKyAgICAg
ICAgKFRpbWVvdXQuRGlzYWJsZUFsYXJtKTogRm9yIHNvbWUgYmxvY2sgb2YgY29kZSwgZGlzYWJs
ZSBUaW1lb3V0IGFsYXJtcy4gVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSBtYW55IEFQSXMgKHN1Y2gg
YXMKKyAgICAgICAgc3VicHJvY2Vzcy5ydW4pIGRlZmluZSB0aGVpciBvd24gdGltZW91dHMgd2hp
Y2ggZG8gYmV0dGVyIGNsZWFudXAgdGhhbiBhbiBpbnRlcnJ1cHQgd291bGQuCisgICAgICAgIChU
aW1lb3V0LmRlZmF1bHRfaGFuZGxlcik6IERlZmF1bHQgVGltZW91dCBoYW5kbGVyIHdoaWNoIHJh
aXNlcyBhbiBleGNlcHRpb24uCisgICAgICAgIChUaW1lb3V0LmN1cnJlbnQpOiBSZXR1cm4gdGhl
IGN1cnJlbnQgVGltZW91dC5EYXRhIGNsYXNzLCBpZiBvbmUgZXhpc3RzLgorICAgICAgICAoVGlt
ZW91dC5kZWFkbGluZSk6IFJldHVybiB0aGUgY2xvc2VzdCBkZWFkbGluZSwgaWYgb25lIGV4aXN0
cy4KKyAgICAgICAgKFRpbWVvdXQuZGlmZmVyZW5jZSk6IFJldHVybiB0aGUgbnVtYmVyIG9mIHNl
Y29uZHMgYmV0d2VlbiB0aGUgY3VycmVudCB0aW1lIGFuZCB0aGUgY2xvc2VzdCBkZWFkbGluZS4K
KyAgICAgICAgKFRpbWVvdXQuY2hlY2spOiBDaGVjayBpZiB3ZSBoYXZlIHN1cnBhc3NlZCB0aGUg
Y2xvc2VzdCBkZWFkbGluZS4sIHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB3ZSBoYXZlLgorICAgICAg
ICAoVGltZW91dC5iaW5kKTogQ3JlYXRlIGEgc2lnbmFsIGJhc2VkIG9uIHRoZSBjbG9zZXN0IGRl
YWRsaW5lLgorICAgICAgICAoVGltZW91dC5zbGVlcCk6IE92ZXJyaWRlIHRoZSBzbGVlcCBmdW5j
dGlvbiBiZWNhdXNlIGlmIHdlIGV2ZXIgcmVxdWVzdCBhIHNsZWVwIHRoYXQgaXMgZ3JlYXRlciB0
aGFuIHRoZSBjbG9zZXN0IGRlYWRsaW5lLAorICAgICAgICB3ZSBzaG91bGQgaW1pZWRpYXRlbHkg
dHJpZ2dlciB0aGUgdGltZW91dCBsb2dpYyB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSB0aW1lb3V0
IHRvIGFjdHVhbGx5IGV4cGlyZS4KKyAgICAgICAgKFRpbWVvdXQuX19pbml0X18pOiBDcmVhdGUg
YSBUaW1lb3V0IGNvbnRleHQsIDEgc2Vjb25kIGJ5IGRlZmF1bHQuCisgICAgICAgIChUaW1lb3V0
Ll9fZW50ZXJfXyk6CisgICAgICAgIChUaW1lb3V0Ll9fZXhpdF9fKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHk6CisgICAgICAgIChUaW1lb3V0
KTogTW92ZWQgdG8gd2Via2l0Y29yZXB5LgorCiAyMDIwLTA4LTE5ICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0Y29yZXB5XSBGYWlsdXJlIHRv
IHNldCBpbmRleCBzaG91bGQgbm90IGJlIGZhdGFsCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRjb3JlcHkvUkVBRE1FLm1kCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS9SRUFETUUubWQJKHJldmlzaW9uIDI2NTkwNSkKKysrIFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9SRUFETUUubWQJKHdvcmtpbmcgY29w
eSkKQEAgLTU3LDMgKzU3LDEzIEBAIHdpdGggY2FwdHVyZXI6CiAgICAgcHJpbnQoJ2RhdGFcbicp
CiBhc3NlcnQgY2FwdHVyZXIuc3Rkb3V0LmdldHZhbHVlKCkgPT0gJ2RhdGFcbicKIGBgYAorCitU
aW1lb3V0IGNvbnRleHQ6CitgYGAKK2ltcG9ydCB0aW1lCisKK2Zyb20gd2Via2l0Y29yZXB5IGlt
cG9ydCBUaW1lb3V0CisKK3dpdGggVGltZW91dCg1LCBoYW5kbGVyPVJ1bnRpbWVFcnJvcignRXhj
ZWVkZWQgNSBzZWNvbmQgdGltZW91dCcpKToKKyAgICB0aW1lLnNsZWVwKDQpCitgYGAKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0
X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQkocmV2aXNpb24gMjY1OTA1KQorKysgVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQkod29y
a2luZyBjb3B5KQpAQCAtMzIsOCArMzIsOSBAQCBsb2cuYWRkSGFuZGxlcihOdWxsSGFuZGxlcigp
KQogZnJvbSB3ZWJraXRjb3JlcHkudmVyc2lvbiBpbXBvcnQgVmVyc2lvbgogZnJvbSB3ZWJraXRj
b3JlcHkuc3RyaW5nX3V0aWxzIGltcG9ydCBCeXRlc0lPLCBTdHJpbmdJTywgVW5pY29kZUlPLCB1
bmljb2RlCiBmcm9tIHdlYmtpdGNvcmVweS5vdXRwdXRfY2FwdHVyZSBpbXBvcnQgTG9nZ2VyQ2Fw
dHVyZSwgT3V0cHV0Q2FwdHVyZSwgT3V0cHV0RHVwbGljYXRlCitmcm9tIHdlYmtpdGNvcmVweS50
aW1lb3V0IGltcG9ydCBUaW1lb3V0CiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDIsIDkpCit2ZXJz
aW9uID0gVmVyc2lvbigwLCAyLCAxMCkKIAogZnJvbSB3ZWJraXRjb3JlcHkuYXV0b2luc3RhbGwg
aW1wb3J0IFBhY2thZ2UsIEF1dG9JbnN0YWxsCiBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDAp
OgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVw
eS90aW1lb3V0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dGNvcmVweS93ZWJraXRjb3JlcHkvdGltZW91dC5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3RpbWVvdXQucHkJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxODggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworaW1wb3J0IGJpc2VjdAoraW1wb3J0IGNvbGxlY3Rpb25zCitpbXBvcnQgbWF0
aAoraW1wb3J0IG9zCitpbXBvcnQgc2lnbmFsCitpbXBvcnQgdGltZQoraW1wb3J0IHRocmVhZGlu
ZworCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgbG9nLCBzdHJpbmdfdXRpbHMKKworCitPUklH
SU5BTF9TTEVFUCA9IHRpbWUuc2xlZXAKKworCitjbGFzcyBUaW1lb3V0KG9iamVjdCk6CisgICAg
X3Byb2Nlc3NfdG9fdGltZW91dF9tYXAgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChsaXN0KQor
CisgICAgY2xhc3MgRGF0YShvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYWxh
cm1fdGltZSwgaGFuZGxlcik6CisgICAgICAgICAgICBzZWxmLmFsYXJtX3RpbWUgPSBhbGFybV90
aW1lCisgICAgICAgICAgICBzZWxmLmhhbmRsZXIgPSBoYW5kbGVyCisgICAgICAgICAgICBzZWxm
LnRocmVhZF9pZCA9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50CisgICAgICAgICAg
ICBzZWxmLnRyaWdnZXJlZCA9IEZhbHNlCisKKyAgICAgICAgZGVmIF9fbHRfXyhzZWxmLCBvdGhl
cik6CisgICAgICAgICAgICBpZiBub3Qgb3RoZXI6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgVGltZW91dC5EYXRhKToK
KyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdFeHBlY3RlZCB7fSBpbiBjb21wYXJp
c29uLCByZWNlaXZlZCB7fScpLmZvcm1hdChUaW1lb3V0LkRhdGEsIHR5cGUob3RoZXIpKQorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuYWxhcm1fdGltZSA8IG90aGVyLmFsYXJtX3RpbWUKKworICAg
IGNsYXNzIEV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICAgICBwYXNzCisKKyAgICBjbGFzcyBE
aXNhYmxlQWxhcm0ob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGNoPVRy
dWUpOgorICAgICAgICAgICAgaWYgcGF0Y2g6CisgICAgICAgICAgICAgICAgIyBBbGxvd3MgbW9j
ayB0byBiZSBtYW5hZ2VkIHZpYSBhdXRvaW5zdGFsbAorICAgICAgICAgICAgICAgIGZyb20gbW9j
ayBpbXBvcnQgcGF0Y2gKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXRjaCA9IHBhdGNoKCd0aW1l
LnNsZWVwJywgbmV3PU9SSUdJTkFMX1NMRUVQKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBzZWxmLl9wYXRjaCA9IE5vbmUKKworICAgICAgICBkZWYgX19lbnRlcl9fKHNlbGYp
OgorICAgICAgICAgICAgc2lnbmFsLmFsYXJtKDApCisgICAgICAgICAgICBpZiBzZWxmLl9wYXRj
aDoKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXRjaC5fX2VudGVyX18oKQorCisgICAgICAgIGRl
ZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2spOgorICAgICAg
ICAgICAgaWYgc2VsZi5fcGF0Y2g6CisgICAgICAgICAgICAgICAgc2VsZi5fcGF0Y2guX19leGl0
X18oZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKQorCisgICAgICAgICAgICAjIFdlIGRv
bid0IHJlYmluZCB0aGUgYWxhcm0gaWYgYW4gZXhjZXB0aW9uIGlzIGFscmVhZHkgaW4gZmxpZ2h0
CisgICAgICAgICAgICBpZiBleGNfdHlwZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIFRpbWVv
dXQuYmluZCgpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZGVmYXVsdF9oYW5kbGVyKGNs
cywgc2lnbnVtLCBmcmFtZSk6CisgICAgICAgIHJhaXNlIGNscy5FeGNlcHRpb24oJ1RpbWVvdXQg
YWxhcm0gd2FzIHRyaWdnZXJlZCcpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgY3VycmVu
dChjbHMpOgorICAgICAgICBmb3IgZWxlbWVudCBpbiBjbHMuX3Byb2Nlc3NfdG9fdGltZW91dF9t
YXBbb3MuZ2V0cGlkKCldOgorICAgICAgICAgICAgaWYgZWxlbWVudC50cmlnZ2VyZWQ6CisgICAg
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGVsZW1lbnQudGhyZWFkX2lkICE9
IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgorICAgICAgICAgICAgICAgIGxvZy5j
cml0aWNhbCgnVXNpbmcgYm90aCBhbGFybXMgYW5kIHRocmVhZGluZyBpbiB0aGUgc2FtZSBwcm9j
ZXNzLCB0aGlzIGlzIHVuc3VwcG9ydGVkJykKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdUaW1lb3V0IG9yaWdpbmF0ZXMgZnJvbSBhIGRpZmZlcmVudCB0aHJlYWQnKQorICAgICAg
ICAgICAgcmV0dXJuIGVsZW1lbnQKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBkZWFkbGluZShjbHMpOgorICAgICAgICBjdXJyZW50ID0gY2xzLmN1cnJl
bnQoKQorICAgICAgICByZXR1cm4gY3VycmVudC5hbGFybV90aW1lIGlmIGN1cnJlbnQgZWxzZSBO
b25lCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZGlmZmVyZW5jZShjbHMsIGN1cnJlbnRf
dGltZT1Ob25lKToKKyAgICAgICAgY3VycmVudCA9IGNscy5jdXJyZW50KCkKKyAgICAgICAgaWYg
bm90IGN1cnJlbnQ6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBjdXJyZW50X3Rp
bWUgPSBjdXJyZW50X3RpbWUgaWYgY3VycmVudF90aW1lIGVsc2UgdGltZS50aW1lKCkKKyAgICAg
ICAgcmV0dXJuIGN1cnJlbnQuYWxhcm1fdGltZSAtIGN1cnJlbnRfdGltZSBpZiBjdXJyZW50LmFs
YXJtX3RpbWUgLSBjdXJyZW50X3RpbWUgPiAwIGVsc2UgMAorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIGNoZWNrKGNscywgY3VycmVudF90aW1lPU5vbmUpOgorICAgICAgICBpZiBjbHMuZGlm
ZmVyZW5jZShjdXJyZW50X3RpbWU9Y3VycmVudF90aW1lKSAhPSAwOgorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgIGN1cnJlbnQgPSBjbHMuY3VycmVudCgpCisgICAgICAgIGN1cnJlbnQudHJp
Z2dlcmVkID0gVHJ1ZQorICAgICAgICBjbHMuYmluZCgpCisgICAgICAgIGN1cnJlbnQuaGFuZGxl
cihzaWduYWwuU0lHQUxSTSwgTm9uZSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBiaW5k
KGNscyk6CisgICAgICAgIGN1cnJlbnQgPSBjbHMuY3VycmVudCgpCisgICAgICAgIGlmIG5vdCBj
dXJyZW50OgorICAgICAgICAgICAgc2lnbmFsLmFsYXJtKDApCisgICAgICAgICAgICByZXR1cm4K
KworICAgICAgICBkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKKyAgICAgICAgICAgIGFzc2Vy
dCBzaWdudW0gPT0gc2lnbmFsLlNJR0FMUk0KKyAgICAgICAgICAgIGlmIGN1cnJlbnQudGhyZWFk
X2lkICE9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgorICAgICAgICAgICAgICAg
IGxvZy5jcml0aWNhbCgnVXNpbmcgYm90aCBhbGFybXMgYW5kIHRocmVhZGluZyBpbiB0aGUgc2Ft
ZSBwcm9jZXNzLCB0aGlzIGlzIHVuc3VwcG9ydGVkJykKKyAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCdUaW1lb3V0IG9yaWdpbmF0ZXMgZnJvbSBhIGRpZmZlcmVudCB0aHJlYWQnKQor
ICAgICAgICAgICAgY3VycmVudC50cmlnZ2VyZWQgPSBUcnVlCisgICAgICAgICAgICBUaW1lb3V0
LmJpbmQoKQorICAgICAgICAgICAgY3VycmVudC5oYW5kbGVyKHNpZ251bSwgZnJhbWUpCisKKyAg
ICAgICAgY3VycmVudF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgY2xzLmNoZWNrKGN1cnJl
bnRfdGltZT1jdXJyZW50X3RpbWUpCisgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR0FM
Uk0sIGhhbmRsZXIpCisgICAgICAgIHNpZ25hbC5hbGFybShpbnQobWF0aC5jZWlsKGN1cnJlbnQu
YWxhcm1fdGltZSAtIGN1cnJlbnRfdGltZSkpKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVm
IHNsZWVwKGNscywgc2Vjb25kcyk6CisgICAgICAgIGRpZmZlcmVuY2UgPSBjbHMuZGlmZmVyZW5j
ZSgpCisgICAgICAgIGlmIGRpZmZlcmVuY2UgaXMgbm90IE5vbmUgYW5kIHNlY29uZHMgPj0gZGlm
ZmVyZW5jZToKKyAgICAgICAgICAgIGxvZy5lcnJvcignUmVxdWVzdCB0byBzbGVlcCB7fSBleGNl
ZWRlZCB0aGUgY3VycmVudCB0aW1lb3V0IHRocmVzaG9sZCcuZm9ybWF0KHN0cmluZ191dGlscy5w
bHVyYWxpemUoc2Vjb25kcywgJ3NlY29uZCcpKSkKKyAgICAgICAgICAgIGN1cnJlbnQgPSBjbHMu
Y3VycmVudCgpCisgICAgICAgICAgICBjdXJyZW50LnRyaWdnZXJlZCA9IFRydWUKKyAgICAgICAg
ICAgIGNscy5iaW5kKCkKKyAgICAgICAgICAgIGN1cnJlbnQuaGFuZGxlcihzaWduYWwuU0lHQUxS
TSwgTm9uZSkKKyAgICAgICAgcmV0dXJuIE9SSUdJTkFMX1NMRUVQKHNlY29uZHMpCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgc2Vjb25kcz0xLCBoYW5kbGVyPU5vbmUsIHBhdGNoPVRydWUpOgor
ICAgICAgICBpZiBzZWNvbmRzIDw9IDA6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdU
aW1lb3V0cyBtdXN0IGJlIHBvc2l0aXZlJykKKworICAgICAgICBpZiBpc2luc3RhbmNlKGhhbmRs
ZXIsIEJhc2VFeGNlcHRpb24pOgorICAgICAgICAgICAgZXhjZXB0aW9uID0gaGFuZGxlcgorCisg
ICAgICAgICAgICBkZWYgZXhjZXB0aW9uX2hhbmRsZXIoc2lnbnVtLCBmcmFtZSk6CisgICAgICAg
ICAgICAgICAgcmFpc2UgZXhjZXB0aW9uCisKKyAgICAgICAgICAgIGhhbmRsZXIgPSBleGNlcHRp
b25faGFuZGxlcgorCisgICAgICAgIHNlbGYuX3RpbWVvdXQgPSBzZWNvbmRzCisgICAgICAgIHNl
bGYuX2hhbmRsZXIgPSBoYW5kbGVyIGlmIGhhbmRsZXIgZWxzZSBzZWxmLmRlZmF1bHRfaGFuZGxl
cgorICAgICAgICBzZWxmLmRhdGEgPSBOb25lCisKKyAgICAgICAgaWYgcGF0Y2g6CisgICAgICAg
ICAgICAjIEFsbG93cyBtb2NrIHRvIGJlIG1hbmFnZWQgdmlhIGF1dG9pbnN0YWxsCisgICAgICAg
ICAgICBmcm9tIG1vY2sgaW1wb3J0IHBhdGNoCisgICAgICAgICAgICBzZWxmLl9wYXRjaCA9IHBh
dGNoKCd0aW1lLnNsZWVwJywgbmV3PXNlbGYuc2xlZXApCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBzZWxmLl9wYXRjaCA9IE5vbmUKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAg
ICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0oKToKKyAgICAgICAgICAgIHNlbGYuZGF0YSA9IHNl
bGYuRGF0YSh0aW1lLnRpbWUoKSArIHNlbGYuX3RpbWVvdXQsIHNlbGYuX2hhbmRsZXIpCisgICAg
ICAgICAgICBiaXNlY3QuaW5zb3J0KHNlbGYuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0
cGlkKCldLCBzZWxmLmRhdGEpCisKKyAgICAgICAgaWYgc2VsZi5fcGF0Y2g6CisgICAgICAgICAg
ICBzZWxmLl9wYXRjaC5fX2VudGVyX18oKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVm
IF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIGlmIHNlbGYuX3BhdGNo
OgorICAgICAgICAgICAgc2VsZi5fcGF0Y2guX19leGl0X18oKmFyZ3MsICoqa3dhcmdzKQorCisg
ICAgICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0oKToKKyAgICAgICAgICAgIGlmIG5vdCBzZWxm
Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXToKKyAgICAgICAgICAgICAgICBy
YWlzZSBSdW50aW1lRXJyb3IoJ05vIHRpbWVvdXQgcmVnaXN0ZXJlZCcpCisgICAgICAgICAgICBz
ZWxmLl9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5yZW1vdmUoc2VsZi5kYXRh
KQorICAgICAgICAgICAgc2VsZi5kYXRhID0gTm9uZQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1lXy5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21v
Y2tzL3RpbWVfLnB5CShyZXZpc2lvbiAyNjU5MDUpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC01NCw2ICs1NCw3IEBAIGNsYXNzIF9NZXRhVGltZSh0eXBlKToKICAgICAgICAgICAgIHBh
dGNoKCd0aW1lLnRpbWUnLCBuZXc9bGFtYmRhOiBzZWxmLnN0YWNrWy0xXSksCiAgICAgICAgICAg
ICBwYXRjaCgndGltZS5zbGVlcCcsIG5ldz1zbGVlcF9mdW5jKSwKICAgICAgICAgICAgIHBhdGNo
KCdkYXRldGltZS5kYXRldGltZScsIG5ldz1GYWtlRGF0ZVRpbWUpLAorICAgICAgICAgICAgcGF0
Y2goJ3dlYmtpdGNvcmVweS50aW1lb3V0Lk9SSUdJTkFMX1NMRUVQJywgbmV3PXNsZWVwX2Z1bmMp
LAogICAgICAgICBdKQogCiAgICAgICAgIGZvciBwYXRjaCBpbiBzZWxmLnBhdGNoZXNbLTFdOgpJ
bmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90
ZXN0cy90aW1lb3V0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvdGltZW91dF91bml0dGVzdC5w
eQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L3Rlc3RzL3RpbWVvdXRfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMzUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1w
b3J0IHRpbWUKK2ltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHdlYmtp
dGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZSwgVGltZW91dCwgbW9ja3MKKworCitjbGFzcyBU
aW1lb3V0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIGFzc3NlcnRJc0Nsb3Nl
KHNlbGYsIGEsIGIsIHBlcmNlbnRhZ2U9MSk6CisgICAgICAgIHBlcmNlbnRhZ2UgPSBwZXJjZW50
YWdlICogLjAxCisgICAgICAgIGlmIGFicyhhIC0gYikgPiBtaW4oYWJzKHBlcmNlbnRhZ2UgKiBh
KSwgYWJzKHBlcmNlbnRhZ2UgKiBiKSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEs
IGIpCisKKyAgICBkZWYgdGVzdF9jdXJyZW50X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCisgICAgICAgIHdpdGggVGltZW91
dCgxKSBhcyB0bXA6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcC5kYXRhLCBUaW1l
b3V0LmN1cnJlbnQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1
cnJlbnQoKSkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfdGltZW91dChzZWxmKToKKyAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgVGltZW91dCwgMCkKKworICAgIGRlZiB0ZXN0
X3RpbWVvdXRfZGF0YShzZWxmKToKKyAgICAgICAgdG1wID0gVGltZW91dCgxKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQorICAgICAgICB3aXRoIHRtcDoKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoTm9uZSwgdG1wLmRhdGEpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50LCB0bXAuZGF0
YS50aHJlYWRfaWQpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGltZS50aW1lKCkgKyAx
ID49IHRtcC5kYXRhLmFsYXJtX3RpbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
dG1wLmRhdGEpCisKKyAgICBkZWYgdGVzdF9kaWZmZXJlbmNlKHNlbGYpOgorICAgICAgICB3aXRo
IG1vY2tzLlRpbWU6CisgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6CisgICAgICAgICAgICAg
ICAgc2VsZi5hc3NzZXJ0SXNDbG9zZShUaW1lb3V0LmRpZmZlcmVuY2UoKSwgMSkKKworICAgIGRl
ZiB0ZXN0X2RlYWRsaW5lKHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tzLlRpbWU6CisgICAgICAg
ICAgICB3aXRoIFRpbWVvdXQoMSk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NzZXJ0SXNDbG9z
ZShUaW1lb3V0LmRlYWRsaW5lKCksIHRpbWUudGltZSgpICsgMSkKKworICAgIGRlZiB0ZXN0X2No
ZWNrKHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tzLlRpbWUsIE91dHB1dENhcHR1cmUoKSBhcyBj
YXB0dXJlcjoKKyAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKKyAgICAgICAgICAgICAgICBU
aW1lb3V0LmNoZWNrKCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUaW1lb3V0
LkV4Y2VwdGlvbiwgdGltZS5zbGVlcCwgMSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNh
cHR1cmVyLndlYmtpdGNvcmVweS5sb2cuZ2V0dmFsdWUoKSwgJ1JlcXVlc3QgdG8gc2xlZXAgMSBz
ZWNvbmQgZXhjZWVkZWQgdGhlIGN1cnJlbnQgdGltZW91dCB0aHJlc2hvbGRcbicpCisKKyAgICBk
ZWYgdGVzdF9uZXN0ZWRfaW5uZXJfcHJlY2VkZW5jZShzZWxmKToKKyAgICAgICAgdG1wX291dGVy
ID0gVGltZW91dCgyKQorICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0KDEpCisgICAgICAgIHdp
dGggdG1wX291dGVyOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0
YSwgVGltZW91dC5jdXJyZW50KCkpCisgICAgICAgICAgICB3aXRoIHRtcF9pbm5lcjoKKyAgICAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9pbm5lci5kYXRhLCBUaW1lb3V0LmN1cnJl
bnQoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVv
dXQuY3VycmVudCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3Vy
cmVudCgpKQorCisgICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3ByZWNlZGVuY2Uoc2VsZik6Cisg
ICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQoMSkKKyAgICAgICAgdG1wX2lubmVyID0gVGltZW91
dCgyKQorICAgICAgICB3aXRoIHRtcF9vdXRlcjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQorICAgICAgICAgICAgd2l0aCB0
bXBfaW5uZXI6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0
YSwgVGltZW91dC5jdXJyZW50KCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9v
dXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChO
b25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKKworICAgIGRlZiB0ZXN0X25vX3RpbWVvdXQoc2VsZik6
CisgICAgICAgIHdpdGggbW9ja3MuVGltZSwgT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVyOgor
ICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDIpOgorICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAo
MSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVyLndlYmtpdGNvcmVweS5sb2cu
Z2V0dmFsdWUoKSwgJycpCisKKyAgICBkZWYgdGVzdF9iYXNpY190aW1lb3V0KHNlbGYpOgorICAg
ICAgICB3aXRoIG1vY2tzLlRpbWUsIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlciwgc2VsZi5h
c3NlcnRSYWlzZXMoVGltZW91dC5FeGNlcHRpb24pOgorICAgICAgICAgICAgd2l0aCBUaW1lb3V0
KDEpOgorICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKKworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNhcHR1cmVyLndlYmtpdGNvcmVweS5sb2cuZ2V0dmFsdWUoKSwgJ1JlcXVlc3QgdG8g
c2xlZXAgMiBzZWNvbmRzIGV4Y2VlZGVkIHRoZSBjdXJyZW50IHRpbWVvdXQgdGhyZXNob2xkXG4n
KQorCisgICAgZGVmIHRlc3RfZXhjZXB0aW9uX2NvbnN0cnVjdG9yX3RpbWVvdXQoc2VsZik6Cisg
ICAgICAgIHdpdGggbW9ja3MuVGltZSwgT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVyLCBzZWxm
LmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpOgorICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEs
IFJ1bnRpbWVFcnJvcignVGhpcyBzaG91bGQgYmUgcmFpc2VkJykpOgorICAgICAgICAgICAgICAg
IHRpbWUuc2xlZXAoMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVyLndlYmtp
dGNvcmVweS5sb2cuZ2V0dmFsdWUoKSwgJ1JlcXVlc3QgdG8gc2xlZXAgMiBzZWNvbmRzIGV4Y2Vl
ZGVkIHRoZSBjdXJyZW50IHRpbWVvdXQgdGhyZXNob2xkXG4nKQorCisgICAgZGVmIHRlc3RfbmVz
dGVkX2lubmVyX3RpbWVvdXQoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MuVGltZSwgT3V0cHV0
Q2FwdHVyZSgpIGFzIGNhcHR1cmVyLCBzZWxmLmFzc2VydFJhaXNlcyhUaW1lb3V0LkV4Y2VwdGlv
bik6CisgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMywgUnVudGltZUVycm9yKCJUaGlzIHNob3Vs
ZG4ndCBiZSByYWlzZWQiKSk6CisgICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgorICAg
ICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjYXB0dXJlci53ZWJraXRjb3JlcHkubG9nLmdldHZhbHVlKCksICdSZXF1ZXN0IHRvIHNsZWVw
IDIgc2Vjb25kcyBleGNlZWRlZCB0aGUgY3VycmVudCB0aW1lb3V0IHRocmVzaG9sZFxuJykKKwor
ICAgIGRlZiB0ZXN0X25lc3RlZF9vdXRlcl90aW1lb3V0KHNlbGYpOgorICAgICAgICB3aXRoIG1v
Y2tzLlRpbWUsIE91dHB1dENhcHR1cmUoKSBhcyBjYXB0dXJlciwgc2VsZi5hc3NlcnRSYWlzZXMo
VGltZW91dC5FeGNlcHRpb24pOgorICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgorICAgICAg
ICAgICAgICAgIHdpdGggVGltZW91dCgzLCBSdW50aW1lRXJyb3IoIlRoaXMgc2hvdWxkbid0IGJl
IHJhaXNlZCIpKToKKyAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQorCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZXIud2Via2l0Y29yZXB5LmxvZy5nZXR2YWx1ZSgpLCAn
UmVxdWVzdCB0byBzbGVlcCAyIHNlY29uZHMgZXhjZWVkZWQgdGhlIGN1cnJlbnQgdGltZW91dCB0
aHJlc2hvbGRcbicpCisKKyAgICBkZWYgdGVzdF9zaW5nbGVfdHJpZ2dlcihzZWxmKToKKyAgICAg
ICAgd2l0aCBtb2Nrcy5UaW1lLCBPdXRwdXRDYXB0dXJlKCk6CisgICAgICAgICAgICB3aXRoIFRp
bWVvdXQoMSk6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUaW1lb3V0
LkV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKKyAgICAgICAg
ICAgICAgICB0aW1lLnNsZWVwKDIpICAjIFRoZSB0aW1lb3V0IGhhcyBhbHJlYWR5IGJlZW4gdHJp
Z2dlcmVkLCBzbyBpdCBzaG91bGRuJ3QgYmUgcmUtdHJpZ2dlcmVkLgpJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dC5weQkocmV2aXNpb24g
MjY1OTA1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yMCwxMDAgKzIwLDQgQEAKICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBtYXRoCi1pbXBvcnQgb3MKLWltcG9ydCBzaWdu
YWwKLWltcG9ydCB0aW1lCi1pbXBvcnQgdGhyZWFkaW5nCi0KLV9sb2cgPSBsb2dnaW5nLmdldExv
Z2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBUaW1lb3V0KG9iamVjdCk6Ci0KLSAgICB0aHJlYWRf
ZXhjZXB0aW9uID0gUnVudGltZUVycm9yKCdUaW1lb3V0IG9yaWdpbmF0ZXMgZnJvbSBhIGRpZmZl
cmVudCB0aHJlYWQnKQotICAgIF9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwID0ge30KLQotICAgIGNs
YXNzIFRpbWVvdXREYXRhKG9iamVjdCk6Ci0KLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFs
YXJtX3RpbWUsIGhhbmRsZXIpOgotICAgICAgICAgICAgc2VsZi5hbGFybV90aW1lID0gYWxhcm1f
dGltZQotICAgICAgICAgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcgotICAgICAgICAgICAgc2Vs
Zi50aHJlYWRfaWQgPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5pZGVudAotCi0gICAgQHN0
YXRpY21ldGhvZAotICAgIGRlZiBkZWZhdWx0X2hhbmRsZXIoc2lnbnVtLCBmcmFtZSk6Ci0gICAg
ICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignVGltZW91dCBhbGFybSB3YXMgdHJpZ2dlcmVkJykKLQot
ICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgY3VycmVudCgpOgotICAgICAgICByZXN1bHQgPSBU
aW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwLmdldChvcy5nZXRwaWQoKSwgW10pCi0gICAg
ICAgIGlmIG5vdCByZXN1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBpZiBy
ZXN1bHRbMF0udGhyZWFkX2lkICE9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50Ogot
ICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgnVXNpbmcgYm90aCBhbGFybXMgYW5kIHRocmVhZGlu
ZyBpbiB0aGUgc2FtZSBwcm9jZXNzLCB0aGlzIGlzIHVuc3VwcG9ydGVkJykKLSAgICAgICAgICAg
IHJhaXNlIFRpbWVvdXQudGhyZWFkX2V4Y2VwdGlvbgotICAgICAgICByZXR1cm4gcmVzdWx0WzBd
Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vjb25kcz0xLCBoYW5kbGVyPU5vbmUpOgotICAg
ICAgICBpZiBzZWNvbmRzID09IDA6Ci0gICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ0Nh
bm5vdCBoYXZlIGEgdGltZW91dCBvZiAwIHNlY29uZHMnKQotCi0gICAgICAgIGlmIGlzaW5zdGFu
Y2UoaGFuZGxlciwgQmFzZUV4Y2VwdGlvbik6Ci0gICAgICAgICAgICBleGNlcHRpb24gPSBoYW5k
bGVyCi0KLSAgICAgICAgICAgIGRlZiBleGNlcHRpb25faGFuZGxlcihzaWdudW0sIGZyYW1lKToK
LSAgICAgICAgICAgICAgICByYWlzZSBleGNlcHRpb24KLQotICAgICAgICAgICAgaGFuZGxlciA9
IGV4Y2VwdGlvbl9oYW5kbGVyCi0KLSAgICAgICAgc2VsZi5fdGltZW91dCA9IHNlY29uZHMKLSAg
ICAgICAgc2VsZi5faGFuZGxlciA9IGhhbmRsZXIgaWYgaGFuZGxlciBlbHNlIFRpbWVvdXQuZGVm
YXVsdF9oYW5kbGVyCi0gICAgICAgIHNlbGYuZGF0YSA9IE5vbmUKLQotICAgIEBzdGF0aWNtZXRo
b2QKLSAgICBkZWYgX2JpbmRfdGltZW91dF9kYXRhX3RvX2FsYXJtKGRhdGEpOgotICAgICAgICBk
ZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKLSAgICAgICAgICAgIGFzc2VydCBzaWdudW0gPT0g
c2lnbmFsLlNJR0FMUk0KLSAgICAgICAgICAgIGlmIGRhdGEudGhyZWFkX2lkICE9IHRocmVhZGlu
Zy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgotICAgICAgICAgICAgICAgIHJhaXNlIFRpbWVvdXQu
dGhyZWFkX2V4Y2VwdGlvbgotICAgICAgICAgICAgZGF0YS5oYW5kbGVyKHNpZ251bSwgZnJhbWUp
Ci0KLSAgICAgICAgY3VycmVudF90aW1lID0gdGltZS50aW1lKCkKLSAgICAgICAgaWYgZGF0YS5h
bGFybV90aW1lIDw9IGN1cnJlbnRfdGltZToKLSAgICAgICAgICAgIGhhbmRsZXIoc2lnbmFsLlNJ
R0FMUk0sIE5vbmUpCi0KLSAgICAgICAgc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHQUxSTSwgaGFu
ZGxlcikKLSAgICAgICAgc2lnbmFsLmFsYXJtKGludChtYXRoLmNlaWwoZGF0YS5hbGFybV90aW1l
IC0gY3VycmVudF90aW1lKSkpCi0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBz
aWduYWwuYWxhcm0oMCkgICMgSW1pZWRpYXRseSBkaXNhYmxlIHRoZSBhbGFybSBzbyB3ZSBhcmVu
J3QgaW50ZXJ1cHRlZC4KLSAgICAgICAgc2VsZi5kYXRhID0gVGltZW91dC5UaW1lb3V0RGF0YSh0
aW1lLnRpbWUoKSArIHNlbGYuX3RpbWVvdXQsIHNlbGYuX2hhbmRsZXIpCi0gICAgICAgIGN1cnJl
bnRfdGltZW91dCA9IFRpbWVvdXQuY3VycmVudCgpCi0KLSAgICAgICAgIyBBbm90aGVyIHRpbWVv
dXQgaXMgbW9yZSB1cmdlbnQuCi0gICAgICAgIGlmIGN1cnJlbnRfdGltZW91dCBhbmQgY3VycmVu
dF90aW1lb3V0LmFsYXJtX3RpbWUgPCBzZWxmLmRhdGEuYWxhcm1fdGltZToKLSAgICAgICAgICAg
IGZvciBpIGluIHJhbmdlKGxlbihUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdl
dHBpZCgpXSkgLSAxKToKLSAgICAgICAgICAgICAgICBpZiBzZWxmLmRhdGEuYWxhcm1fdGltZSA8
IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldW2kgKyAxXS5hbGFy
bV90aW1lOgotICAgICAgICAgICAgICAgICAgICBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRf
bWFwW29zLmdldHBpZCgpXS5pbnNlcnQoaSwgc2VsZi5kYXRhKQotICAgICAgICAgICAgICAgICAg
ICBicmVhawotICAgICAgICAgICAgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5n
ZXRwaWQoKV0uYXBwZW5kKHNlbGYuZGF0YSkKLQotICAgICAgICAjIFRoaXMgaXMgdGhlIG1vc3Qg
dXJnZW50IHRpbWVvdXQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIFRpbWVvdXQuX3Byb2Nl
c3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldID0gW3NlbGYuZGF0YV0gKyBUaW1lb3V0Ll9w
cm9jZXNzX3RvX3RpbWVvdXRfbWFwLmdldChvcy5nZXRwaWQoKSwgW10pCi0KLSAgICAgICAgVGlt
ZW91dC5fYmluZF90aW1lb3V0X2RhdGFfdG9fYWxhcm0oVGltZW91dC5jdXJyZW50KCkpCi0gICAg
ICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192
YWx1ZSwgdHJhY2ViYWNrKToKLSAgICAgICAgc2lnbmFsLmFsYXJtKDApICAjIEltaWVkaWF0bHkg
ZGlzYWJsZSB0aGUgYWxhcm0gc28gd2UgYXJlbid0IGludGVydXB0ZWQuCi0KLSAgICAgICAgaWYg
bm90IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldOgotICAgICAg
ICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdObyB0aW1lb3V0IHJlZ2lzdGVyZWQnKQotICAgICAg
ICBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5yZW1vdmUoc2Vs
Zi5kYXRhKQotICAgICAgICBzZWxmLmRhdGEgPSBOb25lCi0KLSAgICAgICAgaWYgVGltZW91dC5f
cHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV06Ci0gICAgICAgICAgICBUaW1lb3V0
Ll9iaW5kX3RpbWVvdXRfZGF0YV90b19hbGFybShUaW1lb3V0LmN1cnJlbnQoKSkKK2Zyb20gd2Vi
a2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi90aW1lb3V0X2NvbnRleHRfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5CShyZXZpc2lv
biAyNjU5MDUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRl
eHRfdW5pdHRlc3QucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw5OCArMCwwIEBACi0jIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
IyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
Ci0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCB0aW1lCi1pbXBvcnQgdGhyZWFk
aW5nCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSB3ZWJraXRweS5jb21tb24udGltZW91dF9jb250
ZXh0IGltcG9ydCBUaW1lb3V0Ci0KLQotY2xhc3MgVGltZW91dENvbnRleHRUZXN0cyh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9jdXJyZW50X3RpbWVvdXQoc2VsZik6Ci0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHdp
dGggVGltZW91dCgxKSBhcyB0bXA6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcC5k
YXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBU
aW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X2ludmFsaWRfdGltZW91dChzZWxmKToK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBUaW1lb3V0LCAwKQotCi0g
ICAgZGVmIHRlc3RfdGltZW91dF9kYXRhKHNlbGYpOgotICAgICAgICB0bXAgPSBUaW1lb3V0KDEp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0gICAgICAgIHdpdGgg
dG1wOgotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChOb25lLCB0bXAuZGF0YSkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRl
bnQsIHRtcC5kYXRhLnRocmVhZF9pZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0aW1l
LnRpbWUoKSArIDEgPj0gdG1wLmRhdGEuYWxhcm1fdGltZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCB0bXAuZGF0YSkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9pbm5lcl9wcmVjZWRl
bmNlKHNlbGYpOgotICAgICAgICB0bXBfb3V0ZXIgPSBUaW1lb3V0KDIpCi0gICAgICAgIHRtcF9p
bm5lciA9IFRpbWVvdXQoMSkKLSAgICAgICAgd2l0aCB0bXBfb3V0ZXI6Ci0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAg
ICAgICAgIHdpdGggdG1wX2lubmVyOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dG1wX2lubmVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0KLSAgICBkZWYgdGVzdF9uZXN0
ZWRfb3V0ZXJfcHJlY2VkZW5jZShzZWxmKToKLSAgICAgICAgdG1wX291dGVyID0gVGltZW91dCgx
KQotICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0KDIpCi0gICAgICAgIHdpdGggdG1wX291dGVy
OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5j
dXJyZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRtcF9pbm5lcjoKLSAgICAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0g
ICAgZGVmIHRlc3Rfbm9fdGltZW91dChzZWxmKToKLSAgICAgICAgd2l0aCBUaW1lb3V0KDIpOgot
ICAgICAgICAgICAgdGltZS5zbGVlcCgxKQotCi0gICAgZGVmIHRlc3RfYmFzaWNfdGltZW91dChz
ZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRp
bWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQotICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHNob3VsZF90aW1lb3V0KQotCi0gICAgZGVmIHRlc3Rf
ZXhjZXB0aW9uX2NvbnN0cnVjdG9yX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIGRlZiBzaG91bGRf
dGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEsIEV4Y2VwdGlvbignVGhpcyBz
aG91bGQgYmUgcmFpc2VkJykpOgotICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9uLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRl
ZiB0ZXN0X25lc3RlZF9pbm5lcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3Rp
bWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGltZW91dCgzLCBFeGNlcHRpb24oIlRoaXMgc2hv
dWxkbid0IGJlIHJhaXNlZCIpKToKLSAgICAgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6Ci0g
ICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoUnVudGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9v
dXRlcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAgICAg
ICAgICAgIHdpdGggVGltZW91dCgxKToKLSAgICAgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMywg
RXhjZXB0aW9uKCJUaGlzIHNob3VsZG4ndCBiZSByYWlzZWQiKSk6Ci0gICAgICAgICAgICAgICAg
ICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9y
LCBzaG91bGRfdGltZW91dCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406928</attachid>
            <date>2020-08-20 07:11:35 -0700</date>
            <delta_ts>2020-08-20 10:39:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215584-20200820071134.patch</filename>
            <type>text/plain</type>
            <size>26960</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTk0MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDIwLTA4LTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyIGFuZCBEZXdlaSBaaHUuCisKKyAgICAgICAgVGhlIFRpbWVv
dXQgY2xhc3MgaXMgYSBnZW5lcmFsbHkgdXNlZnVsIFB5dGhvbiB1dGlsaXR5LCBpdCBzaG91bGQg
bm90IGxpdmUgaW5zaWRlIHdlYmtpdHB5LgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L1JFQURNRS5tZDogRG9jdW1lbnQgVGltZW91dCBvYmplY3QuCisgICAgICAg
ICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5w
eTogRXhwb3NlIFRpbWVvdXQgb2JqZWN0IEFQSSwgaW5jcmVtZW50IHZlcnNpb24uCisgICAgICAg
ICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2Nrcy90aW1l
Xy5weToKKyAgICAgICAgKF9NZXRhVGltZS5fX2VudGVyX18pOiBSZXBsYWNlIHRpbWVvdXQucHkn
cyBPUklHSU5BTF9TTEVFUCB2YXJpYWJsZSB0byBzcGVlZCB1cCB0ZXN0aW5nLgorICAgICAgICAq
IFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvdGltZW91
dF91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAgIChUaW1lb3V0VGVzdHMpOiBBZGRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3RpbWVv
dXQucHk6IEFkZGVkLgorICAgICAgICAoVGltZW91dCk6IENsYXNzIHJlcHJlc2VudGluZyBhIHN0
YWNrYWJsZSBUaW1lb3V0IGNvbnRleHQuCisgICAgICAgIChUaW1lb3V0LkRhdGEpOiBDbGFzcyBj
b250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgZGVhZGxpbmUuCisgICAgICAg
IChUaW1lb3V0LkV4Y2VwdGlvbik6IEV4Y2VwdGlvbiBiZWxvbmdpbmcgdG8gdGhlIFRpbWVvdXQg
b2JqZWN0LgorICAgICAgICAoVGltZW91dC5EaXNhYmxlQWxhcm0pOiBGb3Igc29tZSBibG9jayBv
ZiBjb2RlLCBkaXNhYmxlIFRpbWVvdXQgYWxhcm1zLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIG1h
bnkgQVBJcyAoc3VjaCBhcworICAgICAgICBzdWJwcm9jZXNzLnJ1bikgZGVmaW5lIHRoZWlyIG93
biB0aW1lb3V0cyB3aGljaCBkbyBiZXR0ZXIgY2xlYW51cCB0aGFuIGFuIGludGVycnVwdCB3b3Vs
ZC4KKyAgICAgICAgKFRpbWVvdXQuZGVmYXVsdF9oYW5kbGVyKTogRGVmYXVsdCBUaW1lb3V0IGhh
bmRsZXIgd2hpY2ggcmFpc2VzIGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgKFRpbWVvdXQuY3VycmVu
dCk6IFJldHVybiB0aGUgY3VycmVudCBUaW1lb3V0LkRhdGEgY2xhc3MsIGlmIG9uZSBleGlzdHMu
CisgICAgICAgIChUaW1lb3V0LmRlYWRsaW5lKTogUmV0dXJuIHRoZSBjbG9zZXN0IGRlYWRsaW5l
LCBpZiBvbmUgZXhpc3RzLgorICAgICAgICAoVGltZW91dC5kaWZmZXJlbmNlKTogUmV0dXJuIHRo
ZSBudW1iZXIgb2Ygc2Vjb25kcyBiZXR3ZWVuIHRoZSBjdXJyZW50IHRpbWUgYW5kIHRoZSBjbG9z
ZXN0IGRlYWRsaW5lLgorICAgICAgICAoVGltZW91dC5jaGVjayk6IENoZWNrIGlmIHdlIGhhdmUg
c3VycGFzc2VkIHRoZSBjbG9zZXN0IGRlYWRsaW5lLiwgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIHdl
IGhhdmUuCisgICAgICAgIChUaW1lb3V0LmJpbmQpOiBDcmVhdGUgYSBzaWduYWwgYmFzZWQgb24g
dGhlIGNsb3Nlc3QgZGVhZGxpbmUuCisgICAgICAgIChUaW1lb3V0LnNsZWVwKTogT3ZlcnJpZGUg
dGhlIHNsZWVwIGZ1bmN0aW9uIGJlY2F1c2UgaWYgd2UgZXZlciByZXF1ZXN0IGEgc2xlZXAgdGhh
dCBpcyBncmVhdGVyIHRoYW4gdGhlIGNsb3Nlc3QgZGVhZGxpbmUsCisgICAgICAgIHdlIHNob3Vs
ZCBpbWllZGlhdGVseSB0cmlnZ2VyIHRoZSB0aW1lb3V0IGxvZ2ljIHdpdGhvdXQgd2FpdGluZyBm
b3IgdGhlIHRpbWVvdXQgdG8gYWN0dWFsbHkgZXhwaXJlLgorICAgICAgICAoVGltZW91dC5fX2lu
aXRfXyk6IENyZWF0ZSBhIFRpbWVvdXQgY29udGV4dCwgMSBzZWNvbmQgYnkgZGVmYXVsdC4KKyAg
ICAgICAgKFRpbWVvdXQuX19lbnRlcl9fKToKKyAgICAgICAgKFRpbWVvdXQuX19leGl0X18pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dC5weToKKyAg
ICAgICAgKFRpbWVvdXQpOiBNb3ZlZCB0byB3ZWJraXRjb3JlcHkuCisKIDIwMjAtMDgtMTkgIEth
dGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgVGhpcmQg
cGFydHkgZG9tYWlucyBhcmUgbm90IHN0b3JlZCBpbiB0aGUgY2FzZSBvZiBiYWNrL2ZvcndhcmQg
bmF2aWdhdGlvbnMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9S
RUFETUUubWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29y
ZXB5L1JFQURNRS5tZAkocmV2aXNpb24gMjY1OTQxKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0Y29yZXB5L1JFQURNRS5tZAkod29ya2luZyBjb3B5KQpAQCAtNTcsMyArNTcsMTMg
QEAgd2l0aCBjYXB0dXJlcjoKICAgICBwcmludCgnZGF0YVxuJykKIGFzc2VydCBjYXB0dXJlci5z
dGRvdXQuZ2V0dmFsdWUoKSA9PSAnZGF0YVxuJwogYGBgCisKK1RpbWVvdXQgY29udGV4dDoKK2Bg
YAoraW1wb3J0IHRpbWUKKworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFRpbWVvdXQKKword2l0
aCBUaW1lb3V0KDUsIGhhbmRsZXI9UnVudGltZUVycm9yKCdFeGNlZWRlZCA1IHNlY29uZCB0aW1l
b3V0JykpOgorICAgIHRpbWUuc2xlZXAoNCkKK2BgYApJbmRleDogVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5p
dF9fLnB5CShyZXZpc2lvbiAyNjU5NDEpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4
ICszMiw5IEBAIGxvZy5hZGRIYW5kbGVyKE51bGxIYW5kbGVyKCkpCiBmcm9tIHdlYmtpdGNvcmVw
eS52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtpdGNvcmVweS5zdHJpbmdfdXRpbHMg
aW1wb3J0IEJ5dGVzSU8sIFN0cmluZ0lPLCBVbmljb2RlSU8sIHVuaWNvZGUKIGZyb20gd2Via2l0
Y29yZXB5Lm91dHB1dF9jYXB0dXJlIGltcG9ydCBMb2dnZXJDYXB0dXJlLCBPdXRwdXRDYXB0dXJl
LCBPdXRwdXREdXBsaWNhdGUKK2Zyb20gd2Via2l0Y29yZXB5LnRpbWVvdXQgaW1wb3J0IFRpbWVv
dXQKIAotdmVyc2lvbiA9IFZlcnNpb24oMCwgMiwgOSkKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDIs
IDEwKQogCiBmcm9tIHdlYmtpdGNvcmVweS5hdXRvaW5zdGFsbCBpbXBvcnQgUGFja2FnZSwgQXV0
b0luc3RhbGwKIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6CkluZGV4OiBUb29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3RpbWVvdXQucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVw
eS90aW1lb3V0LnB5CShub25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGltZW91dC5weQkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE4OCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisj
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQg
YmlzZWN0CitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBtYXRoCitpbXBvcnQgb3MKK2ltcG9y
dCBzaWduYWwKK2ltcG9ydCB0aW1lCitpbXBvcnQgdGhyZWFkaW5nCisKK2Zyb20gd2Via2l0Y29y
ZXB5IGltcG9ydCBsb2csIHN0cmluZ191dGlscworCisKK09SSUdJTkFMX1NMRUVQID0gdGltZS5z
bGVlcAorCisKK2NsYXNzIFRpbWVvdXQob2JqZWN0KToKKyAgICBfcHJvY2Vzc190b190aW1lb3V0
X21hcCA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KGxpc3QpCisKKyAgICBjbGFzcyBEYXRhKG9i
amVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGFybV90aW1lLCBoYW5kbGVyKToK
KyAgICAgICAgICAgIHNlbGYuYWxhcm1fdGltZSA9IGFsYXJtX3RpbWUKKyAgICAgICAgICAgIHNl
bGYuaGFuZGxlciA9IGhhbmRsZXIKKyAgICAgICAgICAgIHNlbGYudGhyZWFkX2lkID0gdGhyZWFk
aW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQKKyAgICAgICAgICAgIHNlbGYudHJpZ2dlcmVkID0g
RmFsc2UKKworICAgICAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgIGlm
IG5vdCBvdGhlcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGlm
IG5vdCBpc2luc3RhbmNlKG90aGVyLCBUaW1lb3V0LkRhdGEpOgorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ0V4cGVjdGVkIHt9IGluIGNvbXBhcmlzb24sIHJlY2VpdmVkIHt9Jyku
Zm9ybWF0KFRpbWVvdXQuRGF0YSwgdHlwZShvdGhlcikpCisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5hbGFybV90aW1lIDwgb3RoZXIuYWxhcm1fdGltZQorCisgICAgY2xhc3MgRXhjZXB0aW9uKEV4
Y2VwdGlvbik6CisgICAgICAgIHBhc3MKKworICAgIGNsYXNzIERpc2FibGVBbGFybShvYmplY3Qp
OgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0Y2g9VHJ1ZSk6CisgICAgICAgICAgICBp
ZiBwYXRjaDoKKyAgICAgICAgICAgICAgICAjIEFsbG93cyBtb2NrIHRvIGJlIG1hbmFnZWQgdmlh
IGF1dG9pbnN0YWxsCisgICAgICAgICAgICAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaAorICAg
ICAgICAgICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2goJ3RpbWUuc2xlZXAnLCBuZXc9T1JJR0lO
QUxfU0xFRVApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuX3BhdGNo
ID0gTm9uZQorCisgICAgICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgICAgICBzaWdu
YWwuYWxhcm0oMCkKKyAgICAgICAgICAgIGlmIHNlbGYuX3BhdGNoOgorICAgICAgICAgICAgICAg
IHNlbGYuX3BhdGNoLl9fZW50ZXJfXygpCisKKyAgICAgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4
Y190eXBlLCBleGNfdmFsdWUsIHRyYWNlYmFjayk6CisgICAgICAgICAgICBpZiBzZWxmLl9wYXRj
aDoKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXRjaC5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3Zh
bHVlLCB0cmFjZWJhY2spCisKKyAgICAgICAgICAgICMgV2UgZG9uJ3QgcmViaW5kIHRoZSBhbGFy
bSBpZiBhbiBleGNlcHRpb24gaXMgYWxyZWFkeSBpbiBmbGlnaHQKKyAgICAgICAgICAgIGlmIGV4
Y190eXBlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgVGltZW91dC5iaW5kKCkKKworICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiBkZWZhdWx0X2hhbmRsZXIoY2xzLCBzaWdudW0sIGZyYW1lKToK
KyAgICAgICAgcmFpc2UgY2xzLkV4Y2VwdGlvbignVGltZW91dCBhbGFybSB3YXMgdHJpZ2dlcmVk
JykKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBjdXJyZW50KGNscyk6CisgICAgICAgIGZv
ciBlbGVtZW50IGluIGNscy5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV06Cisg
ICAgICAgICAgICBpZiBlbGVtZW50LnRyaWdnZXJlZDoKKyAgICAgICAgICAgICAgICBjb250aW51
ZQorICAgICAgICAgICAgaWYgZWxlbWVudC50aHJlYWRfaWQgIT0gdGhyZWFkaW5nLmN1cnJlbnRf
dGhyZWFkKCkuaWRlbnQ6CisgICAgICAgICAgICAgICAgbG9nLmNyaXRpY2FsKCdVc2luZyBib3Ro
IGFsYXJtcyBhbmQgdGhyZWFkaW5nIGluIHRoZSBzYW1lIHByb2Nlc3MsIHRoaXMgaXMgdW5zdXBw
b3J0ZWQnKQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1RpbWVvdXQgb3JpZ2lu
YXRlcyBmcm9tIGEgZGlmZmVyZW50IHRocmVhZCcpCisgICAgICAgICAgICByZXR1cm4gZWxlbWVu
dAorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGRlYWRs
aW5lKGNscyk6CisgICAgICAgIGN1cnJlbnQgPSBjbHMuY3VycmVudCgpCisgICAgICAgIHJldHVy
biBjdXJyZW50LmFsYXJtX3RpbWUgaWYgY3VycmVudCBlbHNlIE5vbmUKKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBkaWZmZXJlbmNlKGNscywgY3VycmVudF90aW1lPU5vbmUpOgorICAgICAg
ICBjdXJyZW50ID0gY2xzLmN1cnJlbnQoKQorICAgICAgICBpZiBub3QgY3VycmVudDoKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGN1cnJlbnRfdGltZSA9IGN1cnJlbnRfdGltZSBp
ZiBjdXJyZW50X3RpbWUgZWxzZSB0aW1lLnRpbWUoKQorICAgICAgICByZXR1cm4gY3VycmVudC5h
bGFybV90aW1lIC0gY3VycmVudF90aW1lIGlmIGN1cnJlbnQuYWxhcm1fdGltZSAtIGN1cnJlbnRf
dGltZSA+IDAgZWxzZSAwCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgY2hlY2soY2xzLCBj
dXJyZW50X3RpbWU9Tm9uZSk6CisgICAgICAgIGlmIGNscy5kaWZmZXJlbmNlKGN1cnJlbnRfdGlt
ZT1jdXJyZW50X3RpbWUpICE9IDA6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgY3VycmVu
dCA9IGNscy5jdXJyZW50KCkKKyAgICAgICAgY3VycmVudC50cmlnZ2VyZWQgPSBUcnVlCisgICAg
ICAgIGNscy5iaW5kKCkKKyAgICAgICAgY3VycmVudC5oYW5kbGVyKHNpZ25hbC5TSUdBTFJNLCBO
b25lKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGJpbmQoY2xzKToKKyAgICAgICAgY3Vy
cmVudCA9IGNscy5jdXJyZW50KCkKKyAgICAgICAgaWYgbm90IGN1cnJlbnQ6CisgICAgICAgICAg
ICBzaWduYWwuYWxhcm0oMCkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGRlZiBoYW5k
bGVyKHNpZ251bSwgZnJhbWUpOgorICAgICAgICAgICAgYXNzZXJ0IHNpZ251bSA9PSBzaWduYWwu
U0lHQUxSTQorICAgICAgICAgICAgaWYgY3VycmVudC50aHJlYWRfaWQgIT0gdGhyZWFkaW5nLmN1
cnJlbnRfdGhyZWFkKCkuaWRlbnQ6CisgICAgICAgICAgICAgICAgbG9nLmNyaXRpY2FsKCdVc2lu
ZyBib3RoIGFsYXJtcyBhbmQgdGhyZWFkaW5nIGluIHRoZSBzYW1lIHByb2Nlc3MsIHRoaXMgaXMg
dW5zdXBwb3J0ZWQnKQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1RpbWVvdXQg
b3JpZ2luYXRlcyBmcm9tIGEgZGlmZmVyZW50IHRocmVhZCcpCisgICAgICAgICAgICBjdXJyZW50
LnRyaWdnZXJlZCA9IFRydWUKKyAgICAgICAgICAgIFRpbWVvdXQuYmluZCgpCisgICAgICAgICAg
ICBjdXJyZW50LmhhbmRsZXIoc2lnbnVtLCBmcmFtZSkKKworICAgICAgICBjdXJyZW50X3RpbWUg
PSB0aW1lLnRpbWUoKQorICAgICAgICBjbHMuY2hlY2soY3VycmVudF90aW1lPWN1cnJlbnRfdGlt
ZSkKKyAgICAgICAgc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHQUxSTSwgaGFuZGxlcikKKyAgICAg
ICAgc2lnbmFsLmFsYXJtKGludChtYXRoLmNlaWwoY3VycmVudC5hbGFybV90aW1lIC0gY3VycmVu
dF90aW1lKSkpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2xlZXAoY2xzLCBzZWNvbmRz
KToKKyAgICAgICAgZGlmZmVyZW5jZSA9IGNscy5kaWZmZXJlbmNlKCkKKyAgICAgICAgaWYgZGlm
ZmVyZW5jZSBpcyBub3QgTm9uZSBhbmQgc2Vjb25kcyA+PSBkaWZmZXJlbmNlOgorICAgICAgICAg
ICAgbG9nLmVycm9yKCdSZXF1ZXN0IHRvIHNsZWVwIHt9IGV4Y2VlZGVkIHRoZSBjdXJyZW50IHRp
bWVvdXQgdGhyZXNob2xkJy5mb3JtYXQoc3RyaW5nX3V0aWxzLnBsdXJhbGl6ZShzZWNvbmRzLCAn
c2Vjb25kJykpKQorICAgICAgICAgICAgY3VycmVudCA9IGNscy5jdXJyZW50KCkKKyAgICAgICAg
ICAgIGN1cnJlbnQudHJpZ2dlcmVkID0gVHJ1ZQorICAgICAgICAgICAgY2xzLmJpbmQoKQorICAg
ICAgICAgICAgY3VycmVudC5oYW5kbGVyKHNpZ25hbC5TSUdBTFJNLCBOb25lKQorICAgICAgICBy
ZXR1cm4gT1JJR0lOQUxfU0xFRVAoc2Vjb25kcykKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBz
ZWNvbmRzPTEsIGhhbmRsZXI9Tm9uZSwgcGF0Y2g9VHJ1ZSk6CisgICAgICAgIGlmIHNlY29uZHMg
PD0gMDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1RpbWVvdXRzIG11c3QgYmUgcG9z
aXRpdmUnKQorCisgICAgICAgIGlmIGlzaW5zdGFuY2UoaGFuZGxlciwgQmFzZUV4Y2VwdGlvbik6
CisgICAgICAgICAgICBleGNlcHRpb24gPSBoYW5kbGVyCisKKyAgICAgICAgICAgIGRlZiBleGNl
cHRpb25faGFuZGxlcihzaWdudW0sIGZyYW1lKToKKyAgICAgICAgICAgICAgICByYWlzZSBleGNl
cHRpb24KKworICAgICAgICAgICAgaGFuZGxlciA9IGV4Y2VwdGlvbl9oYW5kbGVyCisKKyAgICAg
ICAgc2VsZi5fdGltZW91dCA9IHNlY29uZHMKKyAgICAgICAgc2VsZi5faGFuZGxlciA9IGhhbmRs
ZXIgaWYgaGFuZGxlciBlbHNlIHNlbGYuZGVmYXVsdF9oYW5kbGVyCisgICAgICAgIHNlbGYuZGF0
YSA9IE5vbmUKKworICAgICAgICBpZiBwYXRjaDoKKyAgICAgICAgICAgICMgQWxsb3dzIG1vY2sg
dG8gYmUgbWFuYWdlZCB2aWEgYXV0b2luc3RhbGwKKyAgICAgICAgICAgIGZyb20gbW9jayBpbXBv
cnQgcGF0Y2gKKyAgICAgICAgICAgIHNlbGYuX3BhdGNoID0gcGF0Y2goJ3RpbWUuc2xlZXAnLCBu
ZXc9c2VsZi5zbGVlcCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3BhdGNoID0g
Tm9uZQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLkRpc2Fi
bGVBbGFybSgpOgorICAgICAgICAgICAgc2VsZi5kYXRhID0gc2VsZi5EYXRhKHRpbWUudGltZSgp
ICsgc2VsZi5fdGltZW91dCwgc2VsZi5faGFuZGxlcikKKyAgICAgICAgICAgIGJpc2VjdC5pbnNv
cnQoc2VsZi5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV0sIHNlbGYuZGF0YSkK
KworICAgICAgICBpZiBzZWxmLl9wYXRjaDoKKyAgICAgICAgICAgIHNlbGYuX3BhdGNoLl9fZW50
ZXJfXygpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFy
Z3MsICoqa3dhcmdzKToKKyAgICAgICAgaWYgc2VsZi5fcGF0Y2g6CisgICAgICAgICAgICBzZWxm
Ll9wYXRjaC5fX2V4aXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgd2l0aCBzZWxmLkRp
c2FibGVBbGFybSgpOgorICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Byb2Nlc3NfdG9fdGltZW91
dF9tYXBbb3MuZ2V0cGlkKCldOgorICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcign
Tm8gdGltZW91dCByZWdpc3RlcmVkJykKKyAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfdG9fdGlt
ZW91dF9tYXBbb3MuZ2V0cGlkKCldLnJlbW92ZShzZWxmLmRhdGEpCisgICAgICAgICAgICBzZWxm
LmRhdGEgPSBOb25lCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L21vY2tzL3RpbWVfLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9ja3MvdGltZV8ucHkJKHJldmlz
aW9uIDI2NTk0MSkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJr
aXRjb3JlcHkvbW9ja3MvdGltZV8ucHkJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAg
Y2xhc3MgX01ldGFUaW1lKHR5cGUpOgogICAgICAgICAgICAgcGF0Y2goJ3RpbWUudGltZScsIG5l
dz1sYW1iZGE6IHNlbGYuc3RhY2tbLTFdKSwKICAgICAgICAgICAgIHBhdGNoKCd0aW1lLnNsZWVw
JywgbmV3PXNsZWVwX2Z1bmMpLAogICAgICAgICAgICAgcGF0Y2goJ2RhdGV0aW1lLmRhdGV0aW1l
JywgbmV3PUZha2VEYXRlVGltZSksCisgICAgICAgICAgICBwYXRjaCgnd2Via2l0Y29yZXB5LnRp
bWVvdXQuT1JJR0lOQUxfU0xFRVAnLCBuZXc9c2xlZXBfZnVuYyksCiAgICAgICAgIF0pCiAKICAg
ICAgICAgZm9yIHBhdGNoIGluIHNlbGYucGF0Y2hlc1stMV06CkluZGV4OiBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL3RpbWVvdXRfdW5pdHRl
c3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS90ZXN0cy90aW1lb3V0X3VuaXR0ZXN0LnB5CShub25leGlzdGVudCkKKysr
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMv
dGltZW91dF91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzNSBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdGltZQoraW1wb3J0IHRo
cmVhZGluZworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRw
dXRDYXB0dXJlLCBUaW1lb3V0LCBtb2NrcworCisKK2NsYXNzIFRpbWVvdXRUZXN0cyh1bml0dGVz
dC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgYXNzc2VydElzQ2xvc2Uoc2VsZiwgYSwgYiwgcGVyY2Vu
dGFnZT0xKToKKyAgICAgICAgcGVyY2VudGFnZSA9IHBlcmNlbnRhZ2UgKiAuMDEKKyAgICAgICAg
aWYgYWJzKGEgLSBiKSA+IG1pbihhYnMocGVyY2VudGFnZSAqIGEpLCBhYnMocGVyY2VudGFnZSAq
IGIpKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYSwgYikKKworICAgIGRlZiB0ZXN0
X2N1cnJlbnRfdGltZW91dChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBU
aW1lb3V0LmN1cnJlbnQoKSkKKyAgICAgICAgd2l0aCBUaW1lb3V0KDEpIGFzIHRtcDoKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQorCisgICAgZGVm
IHRlc3RfaW52YWxpZF90aW1lb3V0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhW
YWx1ZUVycm9yLCBUaW1lb3V0LCAwKQorCisgICAgZGVmIHRlc3RfdGltZW91dF9kYXRhKHNlbGYp
OgorICAgICAgICB0bXAgPSBUaW1lb3V0KDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9u
ZSwgdG1wLmRhdGEpCisgICAgICAgIHdpdGggdG1wOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRO
b3RFcXVhbChOb25lLCB0bXAuZGF0YSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGhy
ZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQsIHRtcC5kYXRhLnRocmVhZF9pZCkKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0aW1lLnRpbWUoKSArIDEgPj0gdG1wLmRhdGEuYWxhcm1f
dGltZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB0bXAuZGF0YSkKKworICAgIGRl
ZiB0ZXN0X2RpZmZlcmVuY2Uoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAgICAg
ICAgICAgIHdpdGggVGltZW91dCgxKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc3NlcnRJc0Ns
b3NlKFRpbWVvdXQuZGlmZmVyZW5jZSgpLCAxKQorCisgICAgZGVmIHRlc3RfZGVhZGxpbmUoc2Vs
Zik6CisgICAgICAgIHdpdGggbW9ja3MuVGltZToKKyAgICAgICAgICAgIHdpdGggVGltZW91dCgx
KToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc3NlcnRJc0Nsb3NlKFRpbWVvdXQuZGVhZGxpbmUo
KSwgdGltZS50aW1lKCkgKyAxKQorCisgICAgZGVmIHRlc3RfY2hlY2soc2VsZik6CisgICAgICAg
IHdpdGggbW9ja3MuVGltZSwgT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVyOgorICAgICAgICAg
ICAgd2l0aCBUaW1lb3V0KDEpOgorICAgICAgICAgICAgICAgIFRpbWVvdXQuY2hlY2soKQorICAg
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFRpbWVvdXQuRXhjZXB0aW9uLCB0aW1lLnNs
ZWVwLCAxKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZXIud2Via2l0Y29yZXB5
LmxvZy5nZXR2YWx1ZSgpLCAnUmVxdWVzdCB0byBzbGVlcCAxIHNlY29uZCBleGNlZWRlZCB0aGUg
Y3VycmVudCB0aW1lb3V0IHRocmVzaG9sZFxuJykKKworICAgIGRlZiB0ZXN0X25lc3RlZF9pbm5l
cl9wcmVjZWRlbmNlKHNlbGYpOgorICAgICAgICB0bXBfb3V0ZXIgPSBUaW1lb3V0KDIpCisgICAg
ICAgIHRtcF9pbm5lciA9IFRpbWVvdXQoMSkKKyAgICAgICAgd2l0aCB0bXBfb3V0ZXI6CisgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQo
KSkKKyAgICAgICAgICAgIHdpdGggdG1wX2lubmVyOgorICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodG1wX2lubmVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCisKKyAgICBkZWYg
dGVzdF9uZXN0ZWRfb3V0ZXJfcHJlY2VkZW5jZShzZWxmKToKKyAgICAgICAgdG1wX291dGVyID0g
VGltZW91dCgxKQorICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0KDIpCisgICAgICAgIHdpdGgg
dG1wX291dGVyOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwg
VGltZW91dC5jdXJyZW50KCkpCisgICAgICAgICAgICB3aXRoIHRtcF9pbm5lcjoKKyAgICAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQo
KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQu
Y3VycmVudCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVu
dCgpKQorCisgICAgZGVmIHRlc3Rfbm9fdGltZW91dChzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nr
cy5UaW1lLCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZXI6CisgICAgICAgICAgICB3aXRoIFRp
bWVvdXQoMik6CisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY2FwdHVyZXIud2Via2l0Y29yZXB5LmxvZy5nZXR2YWx1ZSgpLCAnJykKKwor
ICAgIGRlZiB0ZXN0X2Jhc2ljX3RpbWVvdXQoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MuVGlt
ZSwgT3V0cHV0Q2FwdHVyZSgpIGFzIGNhcHR1cmVyLCBzZWxmLmFzc2VydFJhaXNlcyhUaW1lb3V0
LkV4Y2VwdGlvbik6CisgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6CisgICAgICAgICAgICAg
ICAgdGltZS5zbGVlcCgyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZXIud2Vi
a2l0Y29yZXB5LmxvZy5nZXR2YWx1ZSgpLCAnUmVxdWVzdCB0byBzbGVlcCAyIHNlY29uZHMgZXhj
ZWVkZWQgdGhlIGN1cnJlbnQgdGltZW91dCB0aHJlc2hvbGRcbicpCisKKyAgICBkZWYgdGVzdF9l
eGNlcHRpb25fY29uc3RydWN0b3JfdGltZW91dChzZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5U
aW1lLCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVyZXIsIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRp
bWVFcnJvcik6CisgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSwgUnVudGltZUVycm9yKCdUaGlz
IHNob3VsZCBiZSByYWlzZWQnKSk6CisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQorCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZXIud2Via2l0Y29yZXB5LmxvZy5nZXR2YWx1
ZSgpLCAnUmVxdWVzdCB0byBzbGVlcCAyIHNlY29uZHMgZXhjZWVkZWQgdGhlIGN1cnJlbnQgdGlt
ZW91dCB0aHJlc2hvbGRcbicpCisKKyAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfdGltZW91dChz
ZWxmKToKKyAgICAgICAgd2l0aCBtb2Nrcy5UaW1lLCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVy
ZXIsIHNlbGYuYXNzZXJ0UmFpc2VzKFRpbWVvdXQuRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHdp
dGggVGltZW91dCgzLCBSdW50aW1lRXJyb3IoIlRoaXMgc2hvdWxkbid0IGJlIHJhaXNlZCIpKToK
KyAgICAgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6CisgICAgICAgICAgICAgICAgICAgIHRp
bWUuc2xlZXAoMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhcHR1cmVyLndlYmtpdGNv
cmVweS5sb2cuZ2V0dmFsdWUoKSwgJ1JlcXVlc3QgdG8gc2xlZXAgMiBzZWNvbmRzIGV4Y2VlZGVk
IHRoZSBjdXJyZW50IHRpbWVvdXQgdGhyZXNob2xkXG4nKQorCisgICAgZGVmIHRlc3RfbmVzdGVk
X291dGVyX3RpbWVvdXQoc2VsZik6CisgICAgICAgIHdpdGggbW9ja3MuVGltZSwgT3V0cHV0Q2Fw
dHVyZSgpIGFzIGNhcHR1cmVyLCBzZWxmLmFzc2VydFJhaXNlcyhUaW1lb3V0LkV4Y2VwdGlvbik6
CisgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6CisgICAgICAgICAgICAgICAgd2l0aCBUaW1l
b3V0KDMsIFJ1bnRpbWVFcnJvcigiVGhpcyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgorICAgICAg
ICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
YXB0dXJlci53ZWJraXRjb3JlcHkubG9nLmdldHZhbHVlKCksICdSZXF1ZXN0IHRvIHNsZWVwIDIg
c2Vjb25kcyBleGNlZWRlZCB0aGUgY3VycmVudCB0aW1lb3V0IHRocmVzaG9sZFxuJykKKworICAg
IGRlZiB0ZXN0X3NpbmdsZV90cmlnZ2VyKHNlbGYpOgorICAgICAgICB3aXRoIG1vY2tzLlRpbWUs
IE91dHB1dENhcHR1cmUoKToKKyAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKKyAgICAgICAg
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFRpbWVvdXQuRXhjZXB0aW9uKToKKyAgICAg
ICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQorICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAo
MikgICMgVGhlIHRpbWVvdXQgaGFzIGFscmVhZHkgYmVlbiB0cmlnZ2VyZWQsIHNvIGl0IHNob3Vs
ZG4ndCBiZSByZS10cmlnZ2VyZWQuCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi90aW1lb3V0X2NvbnRleHQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5CShyZXZpc2lvbiAyNjU5NDEpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHkJKHdvcmtpbmcgY29weSkK
QEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDEwMCArMjAsNCBA
QAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1pbXBvcnQgbG9nZ2lu
ZwotaW1wb3J0IG1hdGgKLWltcG9ydCBvcwotaW1wb3J0IHNpZ25hbAotaW1wb3J0IHRpbWUKLWlt
cG9ydCB0aHJlYWRpbmcKLQotX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0K
LWNsYXNzIFRpbWVvdXQob2JqZWN0KToKLQotICAgIHRocmVhZF9leGNlcHRpb24gPSBSdW50aW1l
RXJyb3IoJ1RpbWVvdXQgb3JpZ2luYXRlcyBmcm9tIGEgZGlmZmVyZW50IHRocmVhZCcpCi0gICAg
X3Byb2Nlc3NfdG9fdGltZW91dF9tYXAgPSB7fQotCi0gICAgY2xhc3MgVGltZW91dERhdGEob2Jq
ZWN0KToKLQotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYWxhcm1fdGltZSwgaGFuZGxlcik6
Ci0gICAgICAgICAgICBzZWxmLmFsYXJtX3RpbWUgPSBhbGFybV90aW1lCi0gICAgICAgICAgICBz
ZWxmLmhhbmRsZXIgPSBoYW5kbGVyCi0gICAgICAgICAgICBzZWxmLnRocmVhZF9pZCA9IHRocmVh
ZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50Ci0KLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVm
IGRlZmF1bHRfaGFuZGxlcihzaWdudW0sIGZyYW1lKToKLSAgICAgICAgcmFpc2UgUnVudGltZUVy
cm9yKCdUaW1lb3V0IGFsYXJtIHdhcyB0cmlnZ2VyZWQnKQotCi0gICAgQHN0YXRpY21ldGhvZAot
ICAgIGRlZiBjdXJyZW50KCk6Ci0gICAgICAgIHJlc3VsdCA9IFRpbWVvdXQuX3Byb2Nlc3NfdG9f
dGltZW91dF9tYXAuZ2V0KG9zLmdldHBpZCgpLCBbXSkKLSAgICAgICAgaWYgbm90IHJlc3VsdDoK
LSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGlmIHJlc3VsdFswXS50aHJlYWRfaWQg
IT0gdGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQ6Ci0gICAgICAgICAgICBfbG9nLmNy
aXRpY2FsKCdVc2luZyBib3RoIGFsYXJtcyBhbmQgdGhyZWFkaW5nIGluIHRoZSBzYW1lIHByb2Nl
c3MsIHRoaXMgaXMgdW5zdXBwb3J0ZWQnKQotICAgICAgICAgICAgcmFpc2UgVGltZW91dC50aHJl
YWRfZXhjZXB0aW9uCi0gICAgICAgIHJldHVybiByZXN1bHRbMF0KLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBzZWNvbmRzPTEsIGhhbmRsZXI9Tm9uZSk6Ci0gICAgICAgIGlmIHNlY29uZHMgPT0g
MDoKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignQ2Fubm90IGhhdmUgYSB0aW1lb3V0
IG9mIDAgc2Vjb25kcycpCi0KLSAgICAgICAgaWYgaXNpbnN0YW5jZShoYW5kbGVyLCBCYXNlRXhj
ZXB0aW9uKToKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9IGhhbmRsZXIKLQotICAgICAgICAgICAg
ZGVmIGV4Y2VwdGlvbl9oYW5kbGVyKHNpZ251bSwgZnJhbWUpOgotICAgICAgICAgICAgICAgIHJh
aXNlIGV4Y2VwdGlvbgotCi0gICAgICAgICAgICBoYW5kbGVyID0gZXhjZXB0aW9uX2hhbmRsZXIK
LQotICAgICAgICBzZWxmLl90aW1lb3V0ID0gc2Vjb25kcwotICAgICAgICBzZWxmLl9oYW5kbGVy
ID0gaGFuZGxlciBpZiBoYW5kbGVyIGVsc2UgVGltZW91dC5kZWZhdWx0X2hhbmRsZXIKLSAgICAg
ICAgc2VsZi5kYXRhID0gTm9uZQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBfYmluZF90
aW1lb3V0X2RhdGFfdG9fYWxhcm0oZGF0YSk6Ci0gICAgICAgIGRlZiBoYW5kbGVyKHNpZ251bSwg
ZnJhbWUpOgotICAgICAgICAgICAgYXNzZXJ0IHNpZ251bSA9PSBzaWduYWwuU0lHQUxSTQotICAg
ICAgICAgICAgaWYgZGF0YS50aHJlYWRfaWQgIT0gdGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCku
aWRlbnQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVGltZW91dC50aHJlYWRfZXhjZXB0aW9uCi0g
ICAgICAgICAgICBkYXRhLmhhbmRsZXIoc2lnbnVtLCBmcmFtZSkKLQotICAgICAgICBjdXJyZW50
X3RpbWUgPSB0aW1lLnRpbWUoKQotICAgICAgICBpZiBkYXRhLmFsYXJtX3RpbWUgPD0gY3VycmVu
dF90aW1lOgotICAgICAgICAgICAgaGFuZGxlcihzaWduYWwuU0lHQUxSTSwgTm9uZSkKLQotICAg
ICAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdBTFJNLCBoYW5kbGVyKQotICAgICAgICBzaWdu
YWwuYWxhcm0oaW50KG1hdGguY2VpbChkYXRhLmFsYXJtX3RpbWUgLSBjdXJyZW50X3RpbWUpKSkK
LQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIHNpZ25hbC5hbGFybSgwKSAgIyBJ
bWllZGlhdGx5IGRpc2FibGUgdGhlIGFsYXJtIHNvIHdlIGFyZW4ndCBpbnRlcnVwdGVkLgotICAg
ICAgICBzZWxmLmRhdGEgPSBUaW1lb3V0LlRpbWVvdXREYXRhKHRpbWUudGltZSgpICsgc2VsZi5f
dGltZW91dCwgc2VsZi5faGFuZGxlcikKLSAgICAgICAgY3VycmVudF90aW1lb3V0ID0gVGltZW91
dC5jdXJyZW50KCkKLQotICAgICAgICAjIEFub3RoZXIgdGltZW91dCBpcyBtb3JlIHVyZ2VudC4K
LSAgICAgICAgaWYgY3VycmVudF90aW1lb3V0IGFuZCBjdXJyZW50X3RpbWVvdXQuYWxhcm1fdGlt
ZSA8IHNlbGYuZGF0YS5hbGFybV90aW1lOgotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVu
KFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldKSAtIDEpOgotICAg
ICAgICAgICAgICAgIGlmIHNlbGYuZGF0YS5hbGFybV90aW1lIDwgVGltZW91dC5fcHJvY2Vzc190
b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV1baSArIDFdLmFsYXJtX3RpbWU6Ci0gICAgICAgICAg
ICAgICAgICAgIFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldLmlu
c2VydChpLCBzZWxmLmRhdGEpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAg
ICBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5hcHBlbmQoc2Vs
Zi5kYXRhKQotCi0gICAgICAgICMgVGhpcyBpcyB0aGUgbW9zdCB1cmdlbnQgdGltZW91dAotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtv
cy5nZXRwaWQoKV0gPSBbc2VsZi5kYXRhXSArIFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9t
YXAuZ2V0KG9zLmdldHBpZCgpLCBbXSkKLQotICAgICAgICBUaW1lb3V0Ll9iaW5kX3RpbWVvdXRf
ZGF0YV90b19hbGFybShUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgcmV0dXJuIHNlbGYKLQot
ICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2spOgot
ICAgICAgICBzaWduYWwuYWxhcm0oMCkgICMgSW1pZWRpYXRseSBkaXNhYmxlIHRoZSBhbGFybSBz
byB3ZSBhcmVuJ3QgaW50ZXJ1cHRlZC4KLQotICAgICAgICBpZiBub3QgVGltZW91dC5fcHJvY2Vz
c190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV06Ci0gICAgICAgICAgICByYWlzZSBSdW50aW1l
RXJyb3IoJ05vIHRpbWVvdXQgcmVnaXN0ZXJlZCcpCi0gICAgICAgIFRpbWVvdXQuX3Byb2Nlc3Nf
dG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldLnJlbW92ZShzZWxmLmRhdGEpCi0gICAgICAgIHNl
bGYuZGF0YSA9IE5vbmUKLQotICAgICAgICBpZiBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRf
bWFwW29zLmdldHBpZCgpXToKLSAgICAgICAgICAgIFRpbWVvdXQuX2JpbmRfdGltZW91dF9kYXRh
X3RvX2FsYXJtKFRpbWVvdXQuY3VycmVudCgpKQorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFRp
bWVvdXQKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4
dF91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi90aW1lb3V0X2NvbnRleHRfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI2NTk0MSkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weQkobm9u
ZXhpc3RlbnQpCkBAIC0xLDk4ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBh
cmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
Ci0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotaW1wb3J0IHRpbWUKLWltcG9ydCB0aHJlYWRpbmcKLWltcG9ydCB1bml0dGVz
dAotCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQK
LQotCi1jbGFzcyBUaW1lb3V0Q29udGV4dFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAg
IGRlZiB0ZXN0X2N1cnJlbnRfdGltZW91dChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgd2l0aCBUaW1lb3V0KDEpIGFzIHRt
cDoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wLmRhdGEsIFRpbWVvdXQuY3VycmVu
dCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQot
Ci0gICAgZGVmIHRlc3RfaW52YWxpZF90aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhSdW50aW1lRXJyb3IsIFRpbWVvdXQsIDApCi0KLSAgICBkZWYgdGVzdF90aW1lb3V0
X2RhdGEoc2VsZik6Ci0gICAgICAgIHRtcCA9IFRpbWVvdXQoMSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCB0bXAuZGF0YSkKLSAgICAgICAgd2l0aCB0bXA6Ci0gICAgICAgICAgICBz
ZWxmLmFzc2VydE5vdEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5pZGVudCwgdG1wLmRhdGEudGhyZWFk
X2lkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRpbWUudGltZSgpICsgMSA+PSB0bXAu
ZGF0YS5hbGFybV90aW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRh
KQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX2lubmVyX3ByZWNlZGVuY2Uoc2VsZik6Ci0gICAgICAg
IHRtcF9vdXRlciA9IFRpbWVvdXQoMikKLSAgICAgICAgdG1wX2lubmVyID0gVGltZW91dCgxKQot
ICAgICAgICB3aXRoIHRtcF9vdXRlcjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1w
X291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICAgICAgd2l0aCB0bXBfaW5u
ZXI6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfaW5uZXIuZGF0YSwgVGlt
ZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5k
YXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBU
aW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9vdXRlcl9wcmVjZWRlbmNl
KHNlbGYpOgotICAgICAgICB0bXBfb3V0ZXIgPSBUaW1lb3V0KDEpCi0gICAgICAgIHRtcF9pbm5l
ciA9IFRpbWVvdXQoMikKLSAgICAgICAgd2l0aCB0bXBfb3V0ZXI6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAg
ICAgIHdpdGggdG1wX2lubmVyOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1w
X291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0KLSAgICBkZWYgdGVzdF9ub190aW1l
b3V0KHNlbGYpOgotICAgICAgICB3aXRoIFRpbWVvdXQoMik6Ci0gICAgICAgICAgICB0aW1lLnNs
ZWVwKDEpCi0KLSAgICBkZWYgdGVzdF9iYXNpY190aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYg
c2hvdWxkX3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKLSAgICAgICAg
ICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVF
cnJvciwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9leGNlcHRpb25fY29uc3RydWN0
b3JfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAg
ICAgICB3aXRoIFRpbWVvdXQoMSwgRXhjZXB0aW9uKCdUaGlzIHNob3VsZCBiZSByYWlzZWQnKSk6
Ci0gICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhFeGNlcHRpb24sIHNob3VsZF90aW1lb3V0KQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX2lubmVy
X3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAg
ICAgd2l0aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhpcyBzaG91bGRuJ3QgYmUgcmFpc2VkIikp
OgotICAgICAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKLSAgICAgICAgICAgICAgICAgICAg
dGltZS5zbGVlcCgyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHNo
b3VsZF90aW1lb3V0KQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3RpbWVvdXQoc2VsZik6
Ci0gICAgICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0
KDEpOgotICAgICAgICAgICAgICAgIHdpdGggVGltZW91dCgzLCBFeGNlcHRpb24oIlRoaXMgc2hv
dWxkbid0IGJlIHJhaXNlZCIpKToKLSAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHNob3VsZF90aW1lb3V0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406945</attachid>
            <date>2020-08-20 10:39:07 -0700</date>
            <delta_ts>2020-08-27 07:16:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200820103907.patch</filename>
            <type>text/plain</type>
            <size>5121</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTk1MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTA4LTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5OiBVc2Ugd2Via2l0
Y29yZXB5J3MgVGltZW91dCBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vdGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weTogVXNlIHdlYmtpdGNvcmVweSdzIFRpbWVvdXQg
b2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0
LnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9k
ZXZpY2UucHk6IERpdHRvLgorCiAyMDIwLTA4LTIwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Vi
a2l0Y29yZXB5IChQYXJ0IDEpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvd2Vic2VydmVyX2JlbmNobWFya19ydW5uZXIucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtf
cnVubmVyLnB5CShyZXZpc2lvbiAyNjU5NTEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvd2Vic2VydmVyX2JlbmNobWFya19ydW5uZXIucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTQsOSArNCwxMCBAQCBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBz
eXMKIAorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFRpbWVvdXQKKwogZnJvbSB3ZWJraXRweS5i
ZW5jaG1hcmtfcnVubmVyLmJlbmNobWFya19ydW5uZXIgaW1wb3J0IEJlbmNobWFya1J1bm5lcgog
ZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmh0dHBfc2VydmVyX2RyaXZlci5odHRwX3Nl
cnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSFRUUFNlcnZlckRyaXZlckZhY3RvcnkKLWZyb20g
d2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAogCiBpZiBzeXMu
dmVyc2lvbl9pbmZvID4gKDMsIDApOgogICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxq
b2luCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9j
b250ZXh0LnB5CShyZXZpc2lvbiAyNjU5NTEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi90aW1lb3V0X2NvbnRleHQucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMyArMCwwIEBACi0j
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0j
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWZyb20gd2Via2l0Y29yZXB5
IGltcG9ydCBUaW1lb3V0CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxh
dG9yX3Byb2Nlc3MucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L3NpbXVsYXRvcl9wcm9jZXNzLnB5CShyZXZpc2lvbiAyNjU5NTEpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1
LDcgKzI1LDggQEAgaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQogCi1mcm9tIHdl
YmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKK2Zyb20gd2Via2l0
Y29yZXB5IGltcG9ydCBUaW1lb3V0CisKIGZyb20gd2Via2l0cHkucG9ydC5zZXJ2ZXJfcHJvY2Vz
cyBpbXBvcnQgU2VydmVyUHJvY2VzcwogCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
d2ViZHJpdmVyX3BsdC9saXZlcGx0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0LnB5CShyZXZpc2lvbiAyNjU5NTEpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9wbHQvbGl2ZXBsdC5weQkod29ya2luZyBjb3B5
KQpAQCAtMiw3ICsyLDYgQEAgZnJvbSBwbHRyZXN1bHRzIGltcG9ydCBQTFRSZXN1bHRzCiBmcm9t
IHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIKIGZyb20gdGltZSBpbXBvcnQgc2xlZXAKIGZyb20g
d2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgZ2V0X2RyaXZlcl9iaW5hcnlf
cGF0aAotZnJvbSB3ZWJraXRweS5jb21tb24udGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0
CiAKICMgRklYTUU6IHdlIHdhbnQgdG8gYXZvaWQgaGFyZGNvZGluZyB0aGUgb2Zmc2V0cwogIyB3
ZSB1c2UgdGhpcyB0byBtYWtlIHN1cmUgdGhlIHdpbmRvdy5pbm5lckhlaWdodCBvZiBlYWNoIGJy
b3dzZXIgaXMgdGhlIHNhbWUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2lt
dWxhdGVkX2RldmljZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hj
b2RlL3NpbXVsYXRlZF9kZXZpY2UucHkJKHJldmlzaW9uIDI2NTk1MSkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdGVkX2RldmljZS5weQkod29ya2luZyBjb3B5KQpAQCAt
MjcsMTIgKzI3LDExIEBAIGltcG9ydCBwbGlzdGxpYgogaW1wb3J0IHJlCiBpbXBvcnQgdGltZQog
Ci1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgVmVyc2lvbgorZnJvbSB3ZWJraXRjb3JlcHkgaW1w
b3J0IFZlcnNpb24sIFRpbWVvdXQKIAogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1w
b3J0IG1lbW9pemVkCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1w
b3J0IFN5c3RlbUhvc3QKLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBv
cnQgVGltZW91dAogZnJvbSB3ZWJraXRweS5wb3J0LmRldmljZSBpbXBvcnQgRGV2aWNlCiBmcm9t
IHdlYmtpdHB5Lnhjb2RlLmRldmljZV90eXBlIGltcG9ydCBEZXZpY2VUeXBlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407107</attachid>
            <date>2020-08-24 09:57:11 -0700</date>
            <delta_ts>2020-08-24 10:56:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200824095711.patch</filename>
            <type>text/plain</type>
            <size>8858</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjA2MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTA4LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5OiBVc2Ugd2Via2l0
Y29yZXB5J3MgVGltZW91dCBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vdGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weTogVXNlIHdlYmtpdGNvcmVweSdzIFRpbWVvdXQg
b2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0
LnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9k
ZXZpY2UucHk6IERpdHRvLgorCiAyMDIwLTA4LTI0ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBk
YXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVu
Y2htYXJrX3J1bm5lci5weQkocmV2aXNpb24gMjY2MDYzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsMTAgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBp
bXBvcnQgc3lzCiAKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CisKIGZyb20gd2Vi
a2l0cHkuYmVuY2htYXJrX3J1bm5lci5iZW5jaG1hcmtfcnVubmVyIGltcG9ydCBCZW5jaG1hcmtS
dW5uZXIKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5odHRwX3NlcnZlcl9kcml2ZXIu
aHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5
Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIAog
aWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsam9pbgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9j
b250ZXh0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weQkocmV2aXNpb24gMjY2MDYzKQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5
CShub25leGlzdGVudCkKQEAgLTEsOTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
Ci0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdGltZQotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGlt
ZW91dAotCi0KLWNsYXNzIFRpbWVvdXRDb250ZXh0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgot
Ci0gICAgZGVmIHRlc3RfY3VycmVudF90aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICB3aXRoIFRpbWVvdXQoMSkg
YXMgdG1wOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXAuZGF0YSwgVGltZW91dC5j
dXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50
KCkpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgVGltZW91dCwgMCkKLQotICAgIGRlZiB0ZXN0X3Rp
bWVvdXRfZGF0YShzZWxmKToKLSAgICAgICAgdG1wID0gVGltZW91dCgxKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotICAgICAgICB3aXRoIHRtcDoKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50LCB0bXAuZGF0YS50
aHJlYWRfaWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGltZS50aW1lKCkgKyAxID49
IHRtcC5kYXRhLmFsYXJtX3RpbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1w
LmRhdGEpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfcHJlY2VkZW5jZShzZWxmKToKLSAg
ICAgICAgdG1wX291dGVyID0gVGltZW91dCgyKQotICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0
KDEpCi0gICAgICAgIHdpdGggdG1wX291dGVyOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRt
cF9pbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9pbm5lci5kYXRh
LCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291
dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3ByZWNl
ZGVuY2Uoc2VsZik6Ci0gICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQoMSkKLSAgICAgICAgdG1w
X2lubmVyID0gVGltZW91dCgyKQotICAgICAgICB3aXRoIHRtcF9vdXRlcjoKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAg
ICAgICAgICAgd2l0aCB0bXBfaW5uZXI6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X25v
X3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHdpdGggVGltZW91dCgyKToKLSAgICAgICAgICAgIHRp
bWUuc2xlZXAoMSkKLQotICAgIGRlZiB0ZXN0X2Jhc2ljX3RpbWVvdXQoc2VsZik6Ci0gICAgICAg
IGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAg
ICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVu
dGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbl9jb25z
dHJ1Y3Rvcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAg
ICAgICAgICAgIHdpdGggVGltZW91dCgxLCBFeGNlcHRpb24oJ1RoaXMgc2hvdWxkIGJlIHJhaXNl
ZCcpKToKLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKEV4Y2VwdGlvbiwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRf
aW5uZXJfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAg
ICAgICAgICB3aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJUaGlzIHNob3VsZG4ndCBiZSByYWlz
ZWQiKSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAgICAgICAgICAgICAg
ICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJv
ciwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfdGltZW91dChz
ZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRp
bWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhp
cyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgotICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVw
KDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVv
dXQpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3Mu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9w
cm9jZXNzLnB5CShyZXZpc2lvbiAyNjYwNjMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvc2ltdWxhdG9yX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDEwIEBA
IGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRweS5jb21t
b24udGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0CiBmcm9tIHdlYmtpdHB5LnBvcnQuc2Vy
dmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MKIAorZnJvbSB3ZWJraXRjb3JlcHkgaW1w
b3J0IFRpbWVvdXQKKwogCiBjbGFzcyBTaW11bGF0b3JQcm9jZXNzKFNlcnZlclByb2Nlc3MpOgog
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9wbHQvbGl2ZXBsdC5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9wbHQvbGl2ZXBs
dC5weQkocmV2aXNpb24gMjY2MDYzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfcGx0L2xpdmVwbHQucHkJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw2IEBAIGZyb20gcGx0
cmVzdWx0cyBpbXBvcnQgUExUUmVzdWx0cwogZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVy
CiBmcm9tIHRpbWUgaW1wb3J0IHNsZWVwCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIu
dXRpbHMgaW1wb3J0IGdldF9kcml2ZXJfYmluYXJ5X3BhdGgKLWZyb20gd2Via2l0cHkuY29tbW9u
LnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAogCiAjIEZJWE1FOiB3ZSB3YW50IHRvIGF2
b2lkIGhhcmRjb2RpbmcgdGhlIG9mZnNldHMKICMgd2UgdXNlIHRoaXMgdG8gbWFrZSBzdXJlIHRo
ZSB3aW5kb3cuaW5uZXJIZWlnaHQgb2YgZWFjaCBicm93c2VyIGlzIHRoZSBzYW1lCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5CShy
ZXZpc2lvbiAyNjYwNjMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRl
ZF9kZXZpY2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE1ICsyNywxNCBAQCBpbXBvcnQgcGxp
c3RsaWIKIGltcG9ydCByZQogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0
IFZlcnNpb24KLQogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVk
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJv
cgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhv
c3QKLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAog
ZnJvbSB3ZWJraXRweS5wb3J0LmRldmljZSBpbXBvcnQgRGV2aWNlCiBmcm9tIHdlYmtpdHB5Lnhj
b2RlLmRldmljZV90eXBlIGltcG9ydCBEZXZpY2VUeXBlCiAKK2Zyb20gd2Via2l0Y29yZXB5IGlt
cG9ydCBWZXJzaW9uLCBUaW1lb3V0CisKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf
XykKIAogCkluZGV4OiBUb29scy9nbGliL2FwaV90ZXN0X3J1bm5lci5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9nbGliL2FwaV90ZXN0X3J1bm5lci5weQkocmV2aXNpb24gMjY2MDYzKQorKysgVG9v
bHMvZ2xpYi9hcGlfdGVzdF9ydW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcg
QEAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbih0b3BfbGV2ZQogaW1wb3J0IGNvbW1v
bgogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQgSG9zdAogZnJvbSB3ZWJraXRweS5j
b21tb24udGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBlY3RhdGlvbnMKLWZyb20gd2Vi
a2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAorZnJvbSB3ZWJraXRj
b3JlcHkgaW1wb3J0IFRpbWVvdXQKIAogaWYgb3MubmFtZSA9PSAncG9zaXgnIGFuZCBzeXMudmVy
c2lvbl9pbmZvWzBdIDwgMzoKICAgICB0cnk6CkBAIC0yMzAsNyArMjMwLDcgQEAgY2xhc3MgVGVz
dFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgICAgIGNvbW1vbi5wYXJzZV9vdXRwdXRfbGlu
ZXMoZmQsIHN5cy5zdGRvdXQud3JpdGUpCiAgICAgICAgICAgICAgICAgc3RhdHVzID0gc2VsZi5f
d2FpdHBpZChwaWQpCiAgICAgICAgICAgICAgICAgb3MuY2xvc2UoZmQpCi0gICAgICAgICAgICBl
eGNlcHQgUnVudGltZUVycm9yOgorICAgICAgICAgICAgZXhjZXB0IFRpbWVvdXQuRXhjZXB0aW9u
OgogICAgICAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhwaWQpCiAgICAgICAgICAgICAg
ICAgb3MuY2xvc2UoZmQpCiAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiKipUSU1F
T1VUKiogJXNcbiIgJSBzdWJ0ZXN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407113</attachid>
            <date>2020-08-24 11:00:02 -0700</date>
            <delta_ts>2020-08-24 12:23:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200824110001.patch</filename>
            <type>text/plain</type>
            <size>8902</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjA3NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTA4LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5OiBVc2Ugd2Via2l0
Y29yZXB5J3MgVGltZW91dCBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vdGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weTogVXNlIHdlYmtpdGNvcmVweSdzIFRpbWVvdXQg
b2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0
LnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9k
ZXZpY2UucHk6IERpdHRvLgorCiAyMDIwLTA4LTI0ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBk
YXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVu
Y2htYXJrX3J1bm5lci5weQkocmV2aXNpb24gMjY2MDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsMTAgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBp
bXBvcnQgc3lzCiAKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CisKIGZyb20gd2Vi
a2l0cHkuYmVuY2htYXJrX3J1bm5lci5iZW5jaG1hcmtfcnVubmVyIGltcG9ydCBCZW5jaG1hcmtS
dW5uZXIKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5odHRwX3NlcnZlcl9kcml2ZXIu
aHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5
Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIAog
aWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsam9pbgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9j
b250ZXh0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weQkocmV2aXNpb24gMjY2MDc0KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5
CShub25leGlzdGVudCkKQEAgLTEsOTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
Ci0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdGltZQotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGlt
ZW91dAotCi0KLWNsYXNzIFRpbWVvdXRDb250ZXh0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgot
Ci0gICAgZGVmIHRlc3RfY3VycmVudF90aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICB3aXRoIFRpbWVvdXQoMSkg
YXMgdG1wOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXAuZGF0YSwgVGltZW91dC5j
dXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50
KCkpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgVGltZW91dCwgMCkKLQotICAgIGRlZiB0ZXN0X3Rp
bWVvdXRfZGF0YShzZWxmKToKLSAgICAgICAgdG1wID0gVGltZW91dCgxKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotICAgICAgICB3aXRoIHRtcDoKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50LCB0bXAuZGF0YS50
aHJlYWRfaWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGltZS50aW1lKCkgKyAxID49
IHRtcC5kYXRhLmFsYXJtX3RpbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1w
LmRhdGEpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfcHJlY2VkZW5jZShzZWxmKToKLSAg
ICAgICAgdG1wX291dGVyID0gVGltZW91dCgyKQotICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0
KDEpCi0gICAgICAgIHdpdGggdG1wX291dGVyOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRt
cF9pbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9pbm5lci5kYXRh
LCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291
dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3ByZWNl
ZGVuY2Uoc2VsZik6Ci0gICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQoMSkKLSAgICAgICAgdG1w
X2lubmVyID0gVGltZW91dCgyKQotICAgICAgICB3aXRoIHRtcF9vdXRlcjoKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAg
ICAgICAgICAgd2l0aCB0bXBfaW5uZXI6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X25v
X3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHdpdGggVGltZW91dCgyKToKLSAgICAgICAgICAgIHRp
bWUuc2xlZXAoMSkKLQotICAgIGRlZiB0ZXN0X2Jhc2ljX3RpbWVvdXQoc2VsZik6Ci0gICAgICAg
IGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAg
ICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVu
dGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbl9jb25z
dHJ1Y3Rvcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAg
ICAgICAgICAgIHdpdGggVGltZW91dCgxLCBFeGNlcHRpb24oJ1RoaXMgc2hvdWxkIGJlIHJhaXNl
ZCcpKToKLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKEV4Y2VwdGlvbiwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRf
aW5uZXJfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAg
ICAgICAgICB3aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJUaGlzIHNob3VsZG4ndCBiZSByYWlz
ZWQiKSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAgICAgICAgICAgICAg
ICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJv
ciwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfdGltZW91dChz
ZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRp
bWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhp
cyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgotICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVw
KDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVv
dXQpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3Mu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9w
cm9jZXNzLnB5CShyZXZpc2lvbiAyNjYwNzQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvc2ltdWxhdG9yX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDEwIEBA
IGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRweS5jb21t
b24udGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0CiBmcm9tIHdlYmtpdHB5LnBvcnQuc2Vy
dmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MKIAorZnJvbSB3ZWJraXRjb3JlcHkgaW1w
b3J0IFRpbWVvdXQKKwogCiBjbGFzcyBTaW11bGF0b3JQcm9jZXNzKFNlcnZlclByb2Nlc3MpOgog
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9wbHQvbGl2ZXBsdC5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9wbHQvbGl2ZXBs
dC5weQkocmV2aXNpb24gMjY2MDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfcGx0L2xpdmVwbHQucHkJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw2IEBAIGZyb20gcGx0
cmVzdWx0cyBpbXBvcnQgUExUUmVzdWx0cwogZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVy
CiBmcm9tIHRpbWUgaW1wb3J0IHNsZWVwCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIu
dXRpbHMgaW1wb3J0IGdldF9kcml2ZXJfYmluYXJ5X3BhdGgKLWZyb20gd2Via2l0cHkuY29tbW9u
LnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAogCiAjIEZJWE1FOiB3ZSB3YW50IHRvIGF2
b2lkIGhhcmRjb2RpbmcgdGhlIG9mZnNldHMKICMgd2UgdXNlIHRoaXMgdG8gbWFrZSBzdXJlIHRo
ZSB3aW5kb3cuaW5uZXJIZWlnaHQgb2YgZWFjaCBicm93c2VyIGlzIHRoZSBzYW1lCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5CShy
ZXZpc2lvbiAyNjYwNzQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRl
ZF9kZXZpY2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE1ICsyNywxNSBAQCBpbXBvcnQgcGxp
c3RsaWIKIGltcG9ydCByZQogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0
IFZlcnNpb24KLQogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVk
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJv
cgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhv
c3QKLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAog
ZnJvbSB3ZWJraXRweS5wb3J0LmRldmljZSBpbXBvcnQgRGV2aWNlCiBmcm9tIHdlYmtpdHB5Lnhj
b2RlLmRldmljZV90eXBlIGltcG9ydCBEZXZpY2VUeXBlCiAKK2Zyb20gd2Via2l0Y29yZXB5IGlt
cG9ydCBWZXJzaW9uCitmcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0
IFRpbWVvdXQKKwogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKSW5kZXg6
IFRvb2xzL2dsaWIvYXBpX3Rlc3RfcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL2dsaWIv
YXBpX3Rlc3RfcnVubmVyLnB5CShyZXZpc2lvbiAyNjYwNzQpCisrKyBUb29scy9nbGliL2FwaV90
ZXN0X3J1bm5lci5weQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBzeXMucGF0aC5p
bnNlcnQoMCwgb3MucGF0aC5qb2luKHRvcF9sZXZlCiBpbXBvcnQgY29tbW9uCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi50ZXN0X2V4
cGVjdGF0aW9ucyBpbXBvcnQgVGVzdEV4cGVjdGF0aW9ucwotZnJvbSB3ZWJraXRweS5jb21tb24u
dGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0Citmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQg
VGltZW91dAogCiBpZiBvcy5uYW1lID09ICdwb3NpeCcgYW5kIHN5cy52ZXJzaW9uX2luZm9bMF0g
PCAzOgogICAgIHRyeToKQEAgLTIzMCw3ICsyMzAsNyBAQCBjbGFzcyBUZXN0UnVubmVyKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgY29tbW9uLnBhcnNlX291dHB1dF9saW5lcyhmZCwgc3lzLnN0
ZG91dC53cml0ZSkKICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzZWxmLl93YWl0cGlkKHBpZCkK
ICAgICAgICAgICAgICAgICBvcy5jbG9zZShmZCkKLSAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1l
RXJyb3I6CisgICAgICAgICAgICBleGNlcHQgVGltZW91dC5FeGNlcHRpb246CiAgICAgICAgICAg
ICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHBpZCkKICAgICAgICAgICAgICAgICBvcy5jbG9zZShm
ZCkKICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCIqKlRJTUVPVVQqKiAlc1xuIiAl
IHN1YnRlc3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407122</attachid>
            <date>2020-08-24 12:27:09 -0700</date>
            <delta_ts>2020-08-24 13:11:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200824122708.patch</filename>
            <type>text/plain</type>
            <size>8877</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjA3NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTA4LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5OiBVc2Ugd2Via2l0
Y29yZXB5J3MgVGltZW91dCBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vdGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weTogVXNlIHdlYmtpdGNvcmVweSdzIFRpbWVvdXQg
b2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0
LnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9k
ZXZpY2UucHk6IERpdHRvLgorCiAyMDIwLTA4LTI0ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBk
YXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVu
Y2htYXJrX3J1bm5lci5weQkocmV2aXNpb24gMjY2MDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsMTAgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBp
bXBvcnQgc3lzCiAKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CisKIGZyb20gd2Vi
a2l0cHkuYmVuY2htYXJrX3J1bm5lci5iZW5jaG1hcmtfcnVubmVyIGltcG9ydCBCZW5jaG1hcmtS
dW5uZXIKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5odHRwX3NlcnZlcl9kcml2ZXIu
aHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5
Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIAog
aWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsam9pbgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9j
b250ZXh0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weQkocmV2aXNpb24gMjY2MDc0KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5
CShub25leGlzdGVudCkKQEAgLTEsOTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
Ci0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdGltZQotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGlt
ZW91dAotCi0KLWNsYXNzIFRpbWVvdXRDb250ZXh0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgot
Ci0gICAgZGVmIHRlc3RfY3VycmVudF90aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICB3aXRoIFRpbWVvdXQoMSkg
YXMgdG1wOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXAuZGF0YSwgVGltZW91dC5j
dXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50
KCkpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgVGltZW91dCwgMCkKLQotICAgIGRlZiB0ZXN0X3Rp
bWVvdXRfZGF0YShzZWxmKToKLSAgICAgICAgdG1wID0gVGltZW91dCgxKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotICAgICAgICB3aXRoIHRtcDoKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50LCB0bXAuZGF0YS50
aHJlYWRfaWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGltZS50aW1lKCkgKyAxID49
IHRtcC5kYXRhLmFsYXJtX3RpbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1w
LmRhdGEpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfcHJlY2VkZW5jZShzZWxmKToKLSAg
ICAgICAgdG1wX291dGVyID0gVGltZW91dCgyKQotICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0
KDEpCi0gICAgICAgIHdpdGggdG1wX291dGVyOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRt
cF9pbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9pbm5lci5kYXRh
LCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291
dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3ByZWNl
ZGVuY2Uoc2VsZik6Ci0gICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQoMSkKLSAgICAgICAgdG1w
X2lubmVyID0gVGltZW91dCgyKQotICAgICAgICB3aXRoIHRtcF9vdXRlcjoKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAg
ICAgICAgICAgd2l0aCB0bXBfaW5uZXI6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X25v
X3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHdpdGggVGltZW91dCgyKToKLSAgICAgICAgICAgIHRp
bWUuc2xlZXAoMSkKLQotICAgIGRlZiB0ZXN0X2Jhc2ljX3RpbWVvdXQoc2VsZik6Ci0gICAgICAg
IGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAg
ICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVu
dGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbl9jb25z
dHJ1Y3Rvcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAg
ICAgICAgICAgIHdpdGggVGltZW91dCgxLCBFeGNlcHRpb24oJ1RoaXMgc2hvdWxkIGJlIHJhaXNl
ZCcpKToKLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKEV4Y2VwdGlvbiwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRf
aW5uZXJfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAg
ICAgICAgICB3aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJUaGlzIHNob3VsZG4ndCBiZSByYWlz
ZWQiKSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAgICAgICAgICAgICAg
ICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJv
ciwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfdGltZW91dChz
ZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRp
bWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhp
cyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgotICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVw
KDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVv
dXQpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3Mu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9w
cm9jZXNzLnB5CShyZXZpc2lvbiAyNjYwNzQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvc2ltdWxhdG9yX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDEwIEBA
IGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRweS5jb21t
b24udGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0CiBmcm9tIHdlYmtpdHB5LnBvcnQuc2Vy
dmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MKIAorZnJvbSB3ZWJraXRweS5jb21tb24u
dGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0CisKIAogY2xhc3MgU2ltdWxhdG9yUHJvY2Vz
cyhTZXJ2ZXJQcm9jZXNzKToKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfcGx0L2xpdmVwbHQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfcGx0L2xpdmVwbHQucHkJKHJldmlzaW9uIDI2NjA3NCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0y
LDcgKzIsNiBAQCBmcm9tIHBsdHJlc3VsdHMgaW1wb3J0IFBMVFJlc3VsdHMKIGZyb20gc2VsZW5p
dW0gaW1wb3J0IHdlYmRyaXZlcgogZnJvbSB0aW1lIGltcG9ydCBzbGVlcAogZnJvbSB3ZWJraXRw
eS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBnZXRfZHJpdmVyX2JpbmFyeV9wYXRoCi1m
cm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIAogIyBG
SVhNRTogd2Ugd2FudCB0byBhdm9pZCBoYXJkY29kaW5nIHRoZSBvZmZzZXRzCiAjIHdlIHVzZSB0
aGlzIHRvIG1ha2Ugc3VyZSB0aGUgd2luZG93LmlubmVySGVpZ2h0IG9mIGVhY2ggYnJvd3NlciBp
cyB0aGUgc2FtZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRf
ZGV2aWNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2lt
dWxhdGVkX2RldmljZS5weQkocmV2aXNpb24gMjY2MDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNywxNSAr
MjcsMTQgQEAgaW1wb3J0IHBsaXN0bGliCiBpbXBvcnQgcmUKIGltcG9ydCB0aW1lCiAKLWZyb20g
d2Via2l0Y29yZXB5IGltcG9ydCBWZXJzaW9uCi0KIGZyb20gd2Via2l0cHkuY29tbW9uLm1lbW9p
emVkIGltcG9ydCBtZW1vaXplZAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2
ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1o
b3N0IGltcG9ydCBTeXN0ZW1Ib3N0Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRl
eHQgaW1wb3J0IFRpbWVvdXQKIGZyb20gd2Via2l0cHkucG9ydC5kZXZpY2UgaW1wb3J0IERldmlj
ZQogZnJvbSB3ZWJraXRweS54Y29kZS5kZXZpY2VfdHlwZSBpbXBvcnQgRGV2aWNlVHlwZQogCitm
cm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgVmVyc2lvbiwgVGltZW91dAorCiBfbG9nID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIApJbmRleDogVG9vbHMvZ2xpYi9hcGlfdGVzdF9ydW5u
ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvZ2xpYi9hcGlfdGVzdF9ydW5uZXIucHkJKHJldmlz
aW9uIDI2NjA3NCkKKysrIFRvb2xzL2dsaWIvYXBpX3Rlc3RfcnVubmVyLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw3ICszMCw3IEBAIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4odG9w
X2xldmUKIGltcG9ydCBjb21tb24KIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhv
c3QKIGZyb20gd2Via2l0cHkuY29tbW9uLnRlc3RfZXhwZWN0YXRpb25zIGltcG9ydCBUZXN0RXhw
ZWN0YXRpb25zCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRp
bWVvdXQKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CiAKIGlmIG9zLm5hbWUgPT0g
J3Bvc2l4JyBhbmQgc3lzLnZlcnNpb25faW5mb1swXSA8IDM6CiAgICAgdHJ5OgpAQCAtMjMwLDcg
KzIzMCw3IEBAIGNsYXNzIFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBjb21t
b24ucGFyc2Vfb3V0cHV0X2xpbmVzKGZkLCBzeXMuc3Rkb3V0LndyaXRlKQogICAgICAgICAgICAg
ICAgIHN0YXR1cyA9IHNlbGYuX3dhaXRwaWQocGlkKQogICAgICAgICAgICAgICAgIG9zLmNsb3Nl
KGZkKQotICAgICAgICAgICAgZXhjZXB0IFJ1bnRpbWVFcnJvcjoKKyAgICAgICAgICAgIGV4Y2Vw
dCBUaW1lb3V0LkV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Mo
cGlkKQogICAgICAgICAgICAgICAgIG9zLmNsb3NlKGZkKQogICAgICAgICAgICAgICAgIHN5cy5z
dGRvdXQud3JpdGUoIioqVElNRU9VVCoqICVzXG4iICUgc3VidGVzdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407130</attachid>
            <date>2020-08-24 13:42:44 -0700</date>
            <delta_ts>2020-08-24 15:27:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200824134243.patch</filename>
            <type>text/plain</type>
            <size>8921</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjA3NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTA4LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5OiBVc2Ugd2Via2l0
Y29yZXB5J3MgVGltZW91dCBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21t
b24vdGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weTogVXNlIHdlYmtpdGNvcmVweSdzIFRpbWVvdXQg
b2JqZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0
LnB5OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9k
ZXZpY2UucHk6IERpdHRvLgorCiAyMDIwLTA4LTI0ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFNob3cgcGlja2VyIGZvciBkYXRlIGFuZCBk
YXRldGltZS1sb2NhbCBpbnB1dCB0eXBlcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVu
Y2htYXJrX3J1bm5lci5weQkocmV2aXNpb24gMjY2MDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDkgKzQsMTAgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBp
bXBvcnQgc3lzCiAKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CisKIGZyb20gd2Vi
a2l0cHkuYmVuY2htYXJrX3J1bm5lci5iZW5jaG1hcmtfcnVubmVyIGltcG9ydCBCZW5jaG1hcmtS
dW5uZXIKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5odHRwX3NlcnZlcl9kcml2ZXIu
aHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5
Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIAog
aWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsam9pbgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9j
b250ZXh0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weQkocmV2aXNpb24gMjY2MDc0KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5
CShub25leGlzdGVudCkKQEAgLTEsOTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
Ci0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdGltZQotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGlt
ZW91dAotCi0KLWNsYXNzIFRpbWVvdXRDb250ZXh0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgot
Ci0gICAgZGVmIHRlc3RfY3VycmVudF90aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICB3aXRoIFRpbWVvdXQoMSkg
YXMgdG1wOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXAuZGF0YSwgVGltZW91dC5j
dXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50
KCkpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgVGltZW91dCwgMCkKLQotICAgIGRlZiB0ZXN0X3Rp
bWVvdXRfZGF0YShzZWxmKToKLSAgICAgICAgdG1wID0gVGltZW91dCgxKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotICAgICAgICB3aXRoIHRtcDoKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50LCB0bXAuZGF0YS50
aHJlYWRfaWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGltZS50aW1lKCkgKyAxID49
IHRtcC5kYXRhLmFsYXJtX3RpbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1w
LmRhdGEpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfcHJlY2VkZW5jZShzZWxmKToKLSAg
ICAgICAgdG1wX291dGVyID0gVGltZW91dCgyKQotICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0
KDEpCi0gICAgICAgIHdpdGggdG1wX291dGVyOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRt
cF9pbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9pbm5lci5kYXRh
LCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291
dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3ByZWNl
ZGVuY2Uoc2VsZik6Ci0gICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQoMSkKLSAgICAgICAgdG1w
X2lubmVyID0gVGltZW91dCgyKQotICAgICAgICB3aXRoIHRtcF9vdXRlcjoKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAg
ICAgICAgICAgd2l0aCB0bXBfaW5uZXI6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X25v
X3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHdpdGggVGltZW91dCgyKToKLSAgICAgICAgICAgIHRp
bWUuc2xlZXAoMSkKLQotICAgIGRlZiB0ZXN0X2Jhc2ljX3RpbWVvdXQoc2VsZik6Ci0gICAgICAg
IGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAg
ICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVu
dGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbl9jb25z
dHJ1Y3Rvcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAg
ICAgICAgICAgIHdpdGggVGltZW91dCgxLCBFeGNlcHRpb24oJ1RoaXMgc2hvdWxkIGJlIHJhaXNl
ZCcpKToKLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKEV4Y2VwdGlvbiwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRf
aW5uZXJfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAg
ICAgICAgICB3aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJUaGlzIHNob3VsZG4ndCBiZSByYWlz
ZWQiKSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAgICAgICAgICAgICAg
ICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJv
ciwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfdGltZW91dChz
ZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRp
bWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhp
cyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgotICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVw
KDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVv
dXQpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3Mu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9w
cm9jZXNzLnB5CShyZXZpc2lvbiAyNjYwNzQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvc2ltdWxhdG9yX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDkgKzI1LDEwIEBA
IGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRweS5jb21t
b24udGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0CiBmcm9tIHdlYmtpdHB5LnBvcnQuc2Vy
dmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MKIAorZnJvbSB3ZWJraXRweS5jb21tb24u
dGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0CisKIAogY2xhc3MgU2ltdWxhdG9yUHJvY2Vz
cyhTZXJ2ZXJQcm9jZXNzKToKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2
ZXJfcGx0L2xpdmVwbHQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS93
ZWJkcml2ZXJfcGx0L2xpdmVwbHQucHkJKHJldmlzaW9uIDI2NjA3NCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0y
LDcgKzIsNiBAQCBmcm9tIHBsdHJlc3VsdHMgaW1wb3J0IFBMVFJlc3VsdHMKIGZyb20gc2VsZW5p
dW0gaW1wb3J0IHdlYmRyaXZlcgogZnJvbSB0aW1lIGltcG9ydCBzbGVlcAogZnJvbSB3ZWJraXRw
eS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBnZXRfZHJpdmVyX2JpbmFyeV9wYXRoCi1m
cm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIAogIyBG
SVhNRTogd2Ugd2FudCB0byBhdm9pZCBoYXJkY29kaW5nIHRoZSBvZmZzZXRzCiAjIHdlIHVzZSB0
aGlzIHRvIG1ha2Ugc3VyZSB0aGUgd2luZG93LmlubmVySGVpZ2h0IG9mIGVhY2ggYnJvd3NlciBp
cyB0aGUgc2FtZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRf
ZGV2aWNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2lt
dWxhdGVkX2RldmljZS5weQkocmV2aXNpb24gMjY2MDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNywxNSAr
MjcsMTUgQEAgaW1wb3J0IHBsaXN0bGliCiBpbXBvcnQgcmUKIGltcG9ydCB0aW1lCiAKLWZyb20g
d2Via2l0Y29yZXB5IGltcG9ydCBWZXJzaW9uCi0KIGZyb20gd2Via2l0cHkuY29tbW9uLm1lbW9p
emVkIGltcG9ydCBtZW1vaXplZAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2
ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1o
b3N0IGltcG9ydCBTeXN0ZW1Ib3N0Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRl
eHQgaW1wb3J0IFRpbWVvdXQKIGZyb20gd2Via2l0cHkucG9ydC5kZXZpY2UgaW1wb3J0IERldmlj
ZQogZnJvbSB3ZWJraXRweS54Y29kZS5kZXZpY2VfdHlwZSBpbXBvcnQgRGV2aWNlVHlwZQogCitm
cm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgVmVyc2lvbgorZnJvbSB3ZWJraXRweS5jb21tb24udGlt
ZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0CisKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihf
X25hbWVfXykKIAogCkluZGV4OiBUb29scy9nbGliL2FwaV90ZXN0X3J1bm5lci5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9nbGliL2FwaV90ZXN0X3J1bm5lci5weQkocmV2aXNpb24gMjY2MDc0KQor
KysgVG9vbHMvZ2xpYi9hcGlfdGVzdF9ydW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcg
KzMwLDcgQEAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbih0b3BfbGV2ZQogaW1wb3J0
IGNvbW1vbgogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQgSG9zdAogZnJvbSB3ZWJr
aXRweS5jb21tb24udGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBlY3RhdGlvbnMKLWZy
b20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAorZnJvbSB3
ZWJraXRjb3JlcHkgaW1wb3J0IFRpbWVvdXQKIAogaWYgb3MubmFtZSA9PSAncG9zaXgnIGFuZCBz
eXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKICAgICB0cnk6CkBAIC0yMzAsNyArMjMwLDcgQEAgY2xh
c3MgVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgICAgIGNvbW1vbi5wYXJzZV9vdXRw
dXRfbGluZXMoZmQsIHN5cy5zdGRvdXQud3JpdGUpCiAgICAgICAgICAgICAgICAgc3RhdHVzID0g
c2VsZi5fd2FpdHBpZChwaWQpCiAgICAgICAgICAgICAgICAgb3MuY2xvc2UoZmQpCi0gICAgICAg
ICAgICBleGNlcHQgUnVudGltZUVycm9yOgorICAgICAgICAgICAgZXhjZXB0IFRpbWVvdXQuRXhj
ZXB0aW9uOgogICAgICAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhwaWQpCiAgICAgICAg
ICAgICAgICAgb3MuY2xvc2UoZmQpCiAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgi
KipUSU1FT1VUKiogJXNcbiIgJSBzdWJ0ZXN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407140</attachid>
            <date>2020-08-24 15:24:39 -0700</date>
            <delta_ts>2020-08-25 08:49:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200824152438.patch</filename>
            <type>text/plain</type>
            <size>12176</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjA4NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDIwLTA4LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIE1hY09TLCBjaGVja2luZyB0
aGUgY3VycmVudCB0aHJlYWRfaWQgcHJldmVudHMgZnV0dXJlIGZvcmtpbmcuIFRoaXMgY2hlY2sg
aXMgdXNlZnVsLAorICAgICAgICBidXQgbm90IHJlcXVpcmVkLgorCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5OgorICAgICAg
ICAoVGltZW91dCk6IFJlbW92ZSB0aHJlYWRpbmcgY2hlY2suCisgICAgICAgIChUaW1lb3V0LmN1
cnJlbnQpOgorICAgICAgICAoVGltZW91dC5iaW5kLmhhbmRsZXIpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dC5weToKKyAgICAgICAgKFRpbWVvdXQp
OiBEZWxldGVkLCBpbXBvcnQgZnJvbSB3ZWJraXRjb3JlcHkuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5OiBSZW1vdmVkLgorICAg
ICAgICAqIGdsaWIvYXBpX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoVGVzdFJ1bm5lci5fcnVu
X2dvb2dsZV90ZXN0KTogVXNlIHNwZWNpZmljIFRpbWVvdXQgZXhjZXB0aW9uLgorCiAyMDIwLTA4
LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbcmVz
dWx0c2RicHldIEZpeCBwaXAgcGFja2FnZQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGltZW91dC5weQko
cmV2aXNpb24gMjY2MDc0KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5
L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2IEBA
IGltcG9ydCBtYXRoCiBpbXBvcnQgb3MKIGltcG9ydCBzaWduYWwKIGltcG9ydCB0aW1lCi1pbXBv
cnQgdGhyZWFkaW5nCiAKIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBsb2csIHN0cmluZ191dGls
cwogCkBAIC00MSw3ICs0MCw2IEBAIGNsYXNzIFRpbWVvdXQob2JqZWN0KToKICAgICAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGFsYXJtX3RpbWUsIGhhbmRsZXIpOgogICAgICAgICAgICAgc2VsZi5h
bGFybV90aW1lID0gYWxhcm1fdGltZQogICAgICAgICAgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxl
cgotICAgICAgICAgICAgc2VsZi50aHJlYWRfaWQgPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQo
KS5pZGVudAogICAgICAgICAgICAgc2VsZi50cmlnZ2VyZWQgPSBGYWxzZQogCiAgICAgICAgIGRl
ZiBfX2x0X18oc2VsZiwgb3RoZXIpOgpAQCAtODUsOSArODMsNiBAQCBjbGFzcyBUaW1lb3V0KG9i
amVjdCk6CiAgICAgICAgIGZvciBlbGVtZW50IGluIGNscy5fcHJvY2Vzc190b190aW1lb3V0X21h
cFtvcy5nZXRwaWQoKV06CiAgICAgICAgICAgICBpZiBlbGVtZW50LnRyaWdnZXJlZDoKICAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgZWxlbWVudC50aHJlYWRfaWQgIT0g
dGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQ6Ci0gICAgICAgICAgICAgICAgbG9nLmNy
aXRpY2FsKCdVc2luZyBib3RoIGFsYXJtcyBhbmQgdGhyZWFkaW5nIGluIHRoZSBzYW1lIHByb2Nl
c3MsIHRoaXMgaXMgdW5zdXBwb3J0ZWQnKQotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ1RpbWVvdXQgb3JpZ2luYXRlcyBmcm9tIGEgZGlmZmVyZW50IHRocmVhZCcpCiAgICAgICAg
ICAgICByZXR1cm4gZWxlbWVudAogICAgICAgICByZXR1cm4gTm9uZQogCkBAIC0xMjIsOSArMTE3
LDYgQEAgY2xhc3MgVGltZW91dChvYmplY3QpOgogCiAgICAgICAgIGRlZiBoYW5kbGVyKHNpZ251
bSwgZnJhbWUpOgogICAgICAgICAgICAgYXNzZXJ0IHNpZ251bSA9PSBzaWduYWwuU0lHQUxSTQot
ICAgICAgICAgICAgaWYgY3VycmVudC50aHJlYWRfaWQgIT0gdGhyZWFkaW5nLmN1cnJlbnRfdGhy
ZWFkKCkuaWRlbnQ6Ci0gICAgICAgICAgICAgICAgbG9nLmNyaXRpY2FsKCdVc2luZyBib3RoIGFs
YXJtcyBhbmQgdGhyZWFkaW5nIGluIHRoZSBzYW1lIHByb2Nlc3MsIHRoaXMgaXMgdW5zdXBwb3J0
ZWQnKQotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1RpbWVvdXQgb3JpZ2luYXRl
cyBmcm9tIGEgZGlmZmVyZW50IHRocmVhZCcpCiAgICAgICAgICAgICBjdXJyZW50LnRyaWdnZXJl
ZCA9IFRydWUKICAgICAgICAgICAgIFRpbWVvdXQuYmluZCgpCiAgICAgICAgICAgICBjdXJyZW50
LmhhbmRsZXIoc2lnbnVtLCBmcmFtZSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL3RpbWVvdXRfY29udGV4dC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHkJKHJldmlzaW9uIDI2NjA3NCkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dC5weQkod29ya2luZyBjb3B5
KQpAQCAtMjAsMTAwICsyMCw0IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgbWF0aAotaW1wb3J0IG9zCi1pbXBvcnQgc2ln
bmFsCi1pbXBvcnQgdGltZQotaW1wb3J0IHRocmVhZGluZwotCi1fbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoX19uYW1lX18pCi0KLQotY2xhc3MgVGltZW91dChvYmplY3QpOgotCi0gICAgdGhyZWFk
X2V4Y2VwdGlvbiA9IFJ1bnRpbWVFcnJvcignVGltZW91dCBvcmlnaW5hdGVzIGZyb20gYSBkaWZm
ZXJlbnQgdGhyZWFkJykKLSAgICBfcHJvY2Vzc190b190aW1lb3V0X21hcCA9IHt9Ci0KLSAgICBj
bGFzcyBUaW1lb3V0RGF0YShvYmplY3QpOgotCi0gICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBh
bGFybV90aW1lLCBoYW5kbGVyKToKLSAgICAgICAgICAgIHNlbGYuYWxhcm1fdGltZSA9IGFsYXJt
X3RpbWUKLSAgICAgICAgICAgIHNlbGYuaGFuZGxlciA9IGhhbmRsZXIKLSAgICAgICAgICAgIHNl
bGYudGhyZWFkX2lkID0gdGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQKLQotICAgIEBz
dGF0aWNtZXRob2QKLSAgICBkZWYgZGVmYXVsdF9oYW5kbGVyKHNpZ251bSwgZnJhbWUpOgotICAg
ICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ1RpbWVvdXQgYWxhcm0gd2FzIHRyaWdnZXJlZCcpCi0K
LSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIGN1cnJlbnQoKToKLSAgICAgICAgcmVzdWx0ID0g
VGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcC5nZXQob3MuZ2V0cGlkKCksIFtdKQotICAg
ICAgICBpZiBub3QgcmVzdWx0OgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgaWYg
cmVzdWx0WzBdLnRocmVhZF9pZCAhPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5pZGVudDoK
LSAgICAgICAgICAgIF9sb2cuY3JpdGljYWwoJ1VzaW5nIGJvdGggYWxhcm1zIGFuZCB0aHJlYWRp
bmcgaW4gdGhlIHNhbWUgcHJvY2VzcywgdGhpcyBpcyB1bnN1cHBvcnRlZCcpCi0gICAgICAgICAg
ICByYWlzZSBUaW1lb3V0LnRocmVhZF9leGNlcHRpb24KLSAgICAgICAgcmV0dXJuIHJlc3VsdFsw
XQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlY29uZHM9MSwgaGFuZGxlcj1Ob25lKToKLSAg
ICAgICAgaWYgc2Vjb25kcyA9PSAwOgotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdD
YW5ub3QgaGF2ZSBhIHRpbWVvdXQgb2YgMCBzZWNvbmRzJykKLQotICAgICAgICBpZiBpc2luc3Rh
bmNlKGhhbmRsZXIsIEJhc2VFeGNlcHRpb24pOgotICAgICAgICAgICAgZXhjZXB0aW9uID0gaGFu
ZGxlcgotCi0gICAgICAgICAgICBkZWYgZXhjZXB0aW9uX2hhbmRsZXIoc2lnbnVtLCBmcmFtZSk6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgZXhjZXB0aW9uCi0KLSAgICAgICAgICAgIGhhbmRsZXIg
PSBleGNlcHRpb25faGFuZGxlcgotCi0gICAgICAgIHNlbGYuX3RpbWVvdXQgPSBzZWNvbmRzCi0g
ICAgICAgIHNlbGYuX2hhbmRsZXIgPSBoYW5kbGVyIGlmIGhhbmRsZXIgZWxzZSBUaW1lb3V0LmRl
ZmF1bHRfaGFuZGxlcgotICAgICAgICBzZWxmLmRhdGEgPSBOb25lCi0KLSAgICBAc3RhdGljbWV0
aG9kCi0gICAgZGVmIF9iaW5kX3RpbWVvdXRfZGF0YV90b19hbGFybShkYXRhKToKLSAgICAgICAg
ZGVmIGhhbmRsZXIoc2lnbnVtLCBmcmFtZSk6Ci0gICAgICAgICAgICBhc3NlcnQgc2lnbnVtID09
IHNpZ25hbC5TSUdBTFJNCi0gICAgICAgICAgICBpZiBkYXRhLnRocmVhZF9pZCAhPSB0aHJlYWRp
bmcuY3VycmVudF90aHJlYWQoKS5pZGVudDoKLSAgICAgICAgICAgICAgICByYWlzZSBUaW1lb3V0
LnRocmVhZF9leGNlcHRpb24KLSAgICAgICAgICAgIGRhdGEuaGFuZGxlcihzaWdudW0sIGZyYW1l
KQotCi0gICAgICAgIGN1cnJlbnRfdGltZSA9IHRpbWUudGltZSgpCi0gICAgICAgIGlmIGRhdGEu
YWxhcm1fdGltZSA8PSBjdXJyZW50X3RpbWU6Ci0gICAgICAgICAgICBoYW5kbGVyKHNpZ25hbC5T
SUdBTFJNLCBOb25lKQotCi0gICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR0FMUk0sIGhh
bmRsZXIpCi0gICAgICAgIHNpZ25hbC5hbGFybShpbnQobWF0aC5jZWlsKGRhdGEuYWxhcm1fdGlt
ZSAtIGN1cnJlbnRfdGltZSkpKQotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAg
c2lnbmFsLmFsYXJtKDApICAjIEltaWVkaWF0bHkgZGlzYWJsZSB0aGUgYWxhcm0gc28gd2UgYXJl
bid0IGludGVydXB0ZWQuCi0gICAgICAgIHNlbGYuZGF0YSA9IFRpbWVvdXQuVGltZW91dERhdGEo
dGltZS50aW1lKCkgKyBzZWxmLl90aW1lb3V0LCBzZWxmLl9oYW5kbGVyKQotICAgICAgICBjdXJy
ZW50X3RpbWVvdXQgPSBUaW1lb3V0LmN1cnJlbnQoKQotCi0gICAgICAgICMgQW5vdGhlciB0aW1l
b3V0IGlzIG1vcmUgdXJnZW50LgotICAgICAgICBpZiBjdXJyZW50X3RpbWVvdXQgYW5kIGN1cnJl
bnRfdGltZW91dC5hbGFybV90aW1lIDwgc2VsZi5kYXRhLmFsYXJtX3RpbWU6Ci0gICAgICAgICAg
ICBmb3IgaSBpbiByYW5nZShsZW4oVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5n
ZXRwaWQoKV0pIC0gMSk6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5kYXRhLmFsYXJtX3RpbWUg
PCBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXVtpICsgMV0uYWxh
cm1fdGltZToKLSAgICAgICAgICAgICAgICAgICAgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0
X21hcFtvcy5nZXRwaWQoKV0uaW5zZXJ0KGksIHNlbGYuZGF0YSkKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLSAgICAgICAgICAgIFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3Mu
Z2V0cGlkKCldLmFwcGVuZChzZWxmLmRhdGEpCi0KLSAgICAgICAgIyBUaGlzIGlzIHRoZSBtb3N0
IHVyZ2VudCB0aW1lb3V0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBUaW1lb3V0Ll9wcm9j
ZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXSA9IFtzZWxmLmRhdGFdICsgVGltZW91dC5f
cHJvY2Vzc190b190aW1lb3V0X21hcC5nZXQob3MuZ2V0cGlkKCksIFtdKQotCi0gICAgICAgIFRp
bWVvdXQuX2JpbmRfdGltZW91dF9kYXRhX3RvX2FsYXJtKFRpbWVvdXQuY3VycmVudCgpKQotICAg
ICAgICByZXR1cm4gc2VsZgotCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNf
dmFsdWUsIHRyYWNlYmFjayk6Ci0gICAgICAgIHNpZ25hbC5hbGFybSgwKSAgIyBJbWllZGlhdGx5
IGRpc2FibGUgdGhlIGFsYXJtIHNvIHdlIGFyZW4ndCBpbnRlcnVwdGVkLgotCi0gICAgICAgIGlm
IG5vdCBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXToKLSAgICAg
ICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignTm8gdGltZW91dCByZWdpc3RlcmVkJykKLSAgICAg
ICAgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV0ucmVtb3ZlKHNl
bGYuZGF0YSkKLSAgICAgICAgc2VsZi5kYXRhID0gTm9uZQotCi0gICAgICAgIGlmIFRpbWVvdXQu
X3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldOgotICAgICAgICAgICAgVGltZW91
dC5fYmluZF90aW1lb3V0X2RhdGFfdG9fYWxhcm0oVGltZW91dC5jdXJyZW50KCkpCitmcm9tIHdl
YmtpdGNvcmVweSBpbXBvcnQgVGltZW91dApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weQkocmV2aXNp
b24gMjY2MDc0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250
ZXh0X3VuaXR0ZXN0LnB5CShub25leGlzdGVudCkKQEAgLTEsOTggKzAsMCBAQAotIyBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdGltZQotaW1wb3J0IHRocmVh
ZGluZwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29u
dGV4dCBpbXBvcnQgVGltZW91dAotCi0KLWNsYXNzIFRpbWVvdXRDb250ZXh0VGVzdHModW5pdHRl
c3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRlc3RfY3VycmVudF90aW1lb3V0KHNlbGYpOgotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICB3
aXRoIFRpbWVvdXQoMSkgYXMgdG1wOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXAu
ZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
VGltZW91dC5jdXJyZW50KCkpCi0KLSAgICBkZWYgdGVzdF9pbnZhbGlkX3RpbWVvdXQoc2VsZik6
Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgVGltZW91dCwgMCkKLQot
ICAgIGRlZiB0ZXN0X3RpbWVvdXRfZGF0YShzZWxmKToKLSAgICAgICAgdG1wID0gVGltZW91dCgx
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotICAgICAgICB3aXRo
IHRtcDoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0g
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlk
ZW50LCB0bXAuZGF0YS50aHJlYWRfaWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGlt
ZS50aW1lKCkgKyAxID49IHRtcC5kYXRhLmFsYXJtX3RpbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfcHJlY2Vk
ZW5jZShzZWxmKToKLSAgICAgICAgdG1wX291dGVyID0gVGltZW91dCgyKQotICAgICAgICB0bXBf
aW5uZXIgPSBUaW1lb3V0KDEpCi0gICAgICAgIHdpdGggdG1wX291dGVyOgotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAg
ICAgICAgICB3aXRoIHRtcF9pbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHRtcF9pbm5lci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3RfbmVz
dGVkX291dGVyX3ByZWNlZGVuY2Uoc2VsZik6Ci0gICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQo
MSkKLSAgICAgICAgdG1wX2lubmVyID0gVGltZW91dCgyKQotICAgICAgICB3aXRoIHRtcF9vdXRl
cjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQu
Y3VycmVudCgpKQotICAgICAgICAgICAgd2l0aCB0bXBfaW5uZXI6Ci0gICAgICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQo
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQot
ICAgIGRlZiB0ZXN0X25vX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHdpdGggVGltZW91dCgyKToK
LSAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAgIGRlZiB0ZXN0X2Jhc2ljX3RpbWVvdXQo
c2VsZik6Ci0gICAgICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBU
aW1lb3V0KDEpOgotICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0
X2V4Y2VwdGlvbl9jb25zdHJ1Y3Rvcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxk
X3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGltZW91dCgxLCBFeGNlcHRpb24oJ1RoaXMg
c2hvdWxkIGJlIHJhaXNlZCcpKToKLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4Y2VwdGlvbiwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBk
ZWYgdGVzdF9uZXN0ZWRfaW5uZXJfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90
aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJUaGlzIHNo
b3VsZG4ndCBiZSByYWlzZWQiKSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgot
ICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRf
b3V0ZXJfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAg
ICAgICAgICB3aXRoIFRpbWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMs
IEV4Y2VwdGlvbigiVGhpcyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgotICAgICAgICAgICAgICAg
ICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJv
ciwgc2hvdWxkX3RpbWVvdXQpCkluZGV4OiBUb29scy9nbGliL2FwaV90ZXN0X3J1bm5lci5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9nbGliL2FwaV90ZXN0X3J1bm5lci5weQkocmV2aXNpb24gMjY2
MDc0KQorKysgVG9vbHMvZ2xpYi9hcGlfdGVzdF9ydW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDcgQEAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbih0b3BfbGV2ZQog
aW1wb3J0IGNvbW1vbgogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdCBpbXBvcnQgSG9zdAogZnJv
bSB3ZWJraXRweS5jb21tb24udGVzdF9leHBlY3RhdGlvbnMgaW1wb3J0IFRlc3RFeHBlY3RhdGlv
bnMKLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAor
ZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFRpbWVvdXQKIAogaWYgb3MubmFtZSA9PSAncG9zaXgn
IGFuZCBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKICAgICB0cnk6CkBAIC0yMzAsNyArMjMwLDcg
QEAgY2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgICAgIGNvbW1vbi5wYXJz
ZV9vdXRwdXRfbGluZXMoZmQsIHN5cy5zdGRvdXQud3JpdGUpCiAgICAgICAgICAgICAgICAgc3Rh
dHVzID0gc2VsZi5fd2FpdHBpZChwaWQpCiAgICAgICAgICAgICAgICAgb3MuY2xvc2UoZmQpCi0g
ICAgICAgICAgICBleGNlcHQgUnVudGltZUVycm9yOgorICAgICAgICAgICAgZXhjZXB0IFRpbWVv
dXQuRXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhwaWQpCiAg
ICAgICAgICAgICAgICAgb3MuY2xvc2UoZmQpCiAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53
cml0ZSgiKipUSU1FT1VUKiogJXNcbiIgJSBzdWJ0ZXN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407196</attachid>
            <date>2020-08-25 09:06:37 -0700</date>
            <delta_ts>2020-08-25 10:31:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200825090636.patch</filename>
            <type>text/plain</type>
            <size>15435</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjExNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTA4LTI1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVuY2htYXJrX3J1
bm5lci5weTogVXNlIFRpbWVvdXQgZnJvbSB3ZWJraXRjb3JlcHkuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weTogUmVt
b3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3Mu
cHk6CisgICAgICAgIChTaW11bGF0b3JQcm9jZXNzLl9zdGFydCk6IE9wdC1vdXQgb2YgcGF0Y2hp
bmcgdGltZS5zbGVlcCgpLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Bs
dC9saXZlcGx0LnB5OiBVc2UgVGltZW91dCBmcm9tIHdlYmtpdGNvcmVweS4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHk6CisgICAgICAgIChTaW11
bGF0ZWREZXZpY2UubGF1bmNoX2FwcCk6IE9wdC1vdXQgb2YgcGF0Y2hpbmcgdGltZS5zbGVlcCgp
LgorICAgICAgICAqIGdsaWIvYXBpX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoVGVzdFJ1bm5l
ci5fcnVuX2dvb2dsZV90ZXN0KTogVXNlIHNwZWNpZmljIFRpbWVvdXQgZXhjZXB0aW9uLgorCiAy
MDIwLTA4LTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgRml4IFRMU1ZlcnNpb24uRGVmYXVsdEJlaGF2aW9yIG9uIE1vamF2ZQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1h
cmtfcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVuY2htYXJrX3J1bm5lci5weQkocmV2aXNpb24gMjY2MTE0
KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9i
ZW5jaG1hcmtfcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsMTAgQEAgaW1wb3J0
IGpzb24KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgc3lzCiAKK2Zyb20gd2Via2l0Y29yZXB5IGlt
cG9ydCBUaW1lb3V0CisKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5iZW5jaG1hcmtf
cnVubmVyIGltcG9ydCBCZW5jaG1hcmtSdW5uZXIKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1
bm5lci5odHRwX3NlcnZlcl9kcml2ZXIuaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0
IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2Nv
bnRleHQgaW1wb3J0IFRpbWVvdXQKIAogaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKICAg
ICBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dC5weQkocmV2aXNpb24gMjY2MTE0
KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5CShu
b25leGlzdGVudCkKQEAgLTEsMTE5ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
IyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAot
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBtYXRoCi1pbXBvcnQgb3MKLWlt
cG9ydCBzaWduYWwKLWltcG9ydCB0aW1lCi1pbXBvcnQgdGhyZWFkaW5nCi0KLV9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBUaW1lb3V0KG9iamVjdCk6Ci0KLSAg
ICB0aHJlYWRfZXhjZXB0aW9uID0gUnVudGltZUVycm9yKCdUaW1lb3V0IG9yaWdpbmF0ZXMgZnJv
bSBhIGRpZmZlcmVudCB0aHJlYWQnKQotICAgIF9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwID0ge30K
LQotICAgIGNsYXNzIFRpbWVvdXREYXRhKG9iamVjdCk6Ci0KLSAgICAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGFsYXJtX3RpbWUsIGhhbmRsZXIpOgotICAgICAgICAgICAgc2VsZi5hbGFybV90aW1l
ID0gYWxhcm1fdGltZQotICAgICAgICAgICAgc2VsZi5oYW5kbGVyID0gaGFuZGxlcgotICAgICAg
ICAgICAgc2VsZi50aHJlYWRfaWQgPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5pZGVudAot
Ci0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBkZWZhdWx0X2hhbmRsZXIoc2lnbnVtLCBmcmFt
ZSk6Ci0gICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignVGltZW91dCBhbGFybSB3YXMgdHJpZ2dl
cmVkJykKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgY3VycmVudCgpOgotICAgICAgICBy
ZXN1bHQgPSBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwLmdldChvcy5nZXRwaWQoKSwg
W10pCi0gICAgICAgIGlmIG5vdCByZXN1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAg
ICAgICBpZiByZXN1bHRbMF0udGhyZWFkX2lkICE9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgp
LmlkZW50OgotICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgnVXNpbmcgYm90aCBhbGFybXMgYW5k
IHRocmVhZGluZyBpbiB0aGUgc2FtZSBwcm9jZXNzLCB0aGlzIGlzIHVuc3VwcG9ydGVkJykKLSAg
ICAgICAgICAgIHJhaXNlIFRpbWVvdXQudGhyZWFkX2V4Y2VwdGlvbgotICAgICAgICByZXR1cm4g
cmVzdWx0WzBdCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vjb25kcz0xLCBoYW5kbGVyPU5v
bmUpOgotICAgICAgICBpZiBzZWNvbmRzID09IDA6Ci0gICAgICAgICAgICByYWlzZSBSdW50aW1l
RXJyb3IoJ0Nhbm5vdCBoYXZlIGEgdGltZW91dCBvZiAwIHNlY29uZHMnKQotCi0gICAgICAgIGlm
IGlzaW5zdGFuY2UoaGFuZGxlciwgQmFzZUV4Y2VwdGlvbik6Ci0gICAgICAgICAgICBleGNlcHRp
b24gPSBoYW5kbGVyCi0KLSAgICAgICAgICAgIGRlZiBleGNlcHRpb25faGFuZGxlcihzaWdudW0s
IGZyYW1lKToKLSAgICAgICAgICAgICAgICByYWlzZSBleGNlcHRpb24KLQotICAgICAgICAgICAg
aGFuZGxlciA9IGV4Y2VwdGlvbl9oYW5kbGVyCi0KLSAgICAgICAgc2VsZi5fdGltZW91dCA9IHNl
Y29uZHMKLSAgICAgICAgc2VsZi5faGFuZGxlciA9IGhhbmRsZXIgaWYgaGFuZGxlciBlbHNlIFRp
bWVvdXQuZGVmYXVsdF9oYW5kbGVyCi0gICAgICAgIHNlbGYuZGF0YSA9IE5vbmUKLQotICAgIEBz
dGF0aWNtZXRob2QKLSAgICBkZWYgX2JpbmRfdGltZW91dF9kYXRhX3RvX2FsYXJtKGRhdGEpOgot
ICAgICAgICBkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKLSAgICAgICAgICAgIGFzc2VydCBz
aWdudW0gPT0gc2lnbmFsLlNJR0FMUk0KLSAgICAgICAgICAgIGlmIGRhdGEudGhyZWFkX2lkICE9
IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgotICAgICAgICAgICAgICAgIHJhaXNl
IFRpbWVvdXQudGhyZWFkX2V4Y2VwdGlvbgotICAgICAgICAgICAgZGF0YS5oYW5kbGVyKHNpZ251
bSwgZnJhbWUpCi0KLSAgICAgICAgY3VycmVudF90aW1lID0gdGltZS50aW1lKCkKLSAgICAgICAg
aWYgZGF0YS5hbGFybV90aW1lIDw9IGN1cnJlbnRfdGltZToKLSAgICAgICAgICAgIGhhbmRsZXIo
c2lnbmFsLlNJR0FMUk0sIE5vbmUpCi0KLSAgICAgICAgc2lnbmFsLnNpZ25hbChzaWduYWwuU0lH
QUxSTSwgaGFuZGxlcikKLSAgICAgICAgc2lnbmFsLmFsYXJtKGludChtYXRoLmNlaWwoZGF0YS5h
bGFybV90aW1lIC0gY3VycmVudF90aW1lKSkpCi0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgot
ICAgICAgICBzaWduYWwuYWxhcm0oMCkgICMgSW1pZWRpYXRseSBkaXNhYmxlIHRoZSBhbGFybSBz
byB3ZSBhcmVuJ3QgaW50ZXJ1cHRlZC4KLSAgICAgICAgc2VsZi5kYXRhID0gVGltZW91dC5UaW1l
b3V0RGF0YSh0aW1lLnRpbWUoKSArIHNlbGYuX3RpbWVvdXQsIHNlbGYuX2hhbmRsZXIpCi0gICAg
ICAgIGN1cnJlbnRfdGltZW91dCA9IFRpbWVvdXQuY3VycmVudCgpCi0KLSAgICAgICAgIyBBbm90
aGVyIHRpbWVvdXQgaXMgbW9yZSB1cmdlbnQuCi0gICAgICAgIGlmIGN1cnJlbnRfdGltZW91dCBh
bmQgY3VycmVudF90aW1lb3V0LmFsYXJtX3RpbWUgPCBzZWxmLmRhdGEuYWxhcm1fdGltZToKLSAg
ICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRf
bWFwW29zLmdldHBpZCgpXSkgLSAxKToKLSAgICAgICAgICAgICAgICBpZiBzZWxmLmRhdGEuYWxh
cm1fdGltZSA8IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldW2kg
KyAxXS5hbGFybV90aW1lOgotICAgICAgICAgICAgICAgICAgICBUaW1lb3V0Ll9wcm9jZXNzX3Rv
X3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5pbnNlcnQoaSwgc2VsZi5kYXRhKQotICAgICAgICAg
ICAgICAgICAgICBicmVhawotICAgICAgICAgICAgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0
X21hcFtvcy5nZXRwaWQoKV0uYXBwZW5kKHNlbGYuZGF0YSkKLQotICAgICAgICAjIFRoaXMgaXMg
dGhlIG1vc3QgdXJnZW50IHRpbWVvdXQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIFRpbWVv
dXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldID0gW3NlbGYuZGF0YV0gKyBU
aW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwLmdldChvcy5nZXRwaWQoKSwgW10pCi0KLSAg
ICAgICAgVGltZW91dC5fYmluZF90aW1lb3V0X2RhdGFfdG9fYWxhcm0oVGltZW91dC5jdXJyZW50
KCkpCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5
cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKLSAgICAgICAgc2lnbmFsLmFsYXJtKDApICAjIElt
aWVkaWF0bHkgZGlzYWJsZSB0aGUgYWxhcm0gc28gd2UgYXJlbid0IGludGVydXB0ZWQuCi0KLSAg
ICAgICAgaWYgbm90IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCld
OgotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdObyB0aW1lb3V0IHJlZ2lzdGVyZWQn
KQotICAgICAgICBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5y
ZW1vdmUoc2VsZi5kYXRhKQotICAgICAgICBzZWxmLmRhdGEgPSBOb25lCi0KLSAgICAgICAgaWYg
VGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV06Ci0gICAgICAgICAg
ICBUaW1lb3V0Ll9iaW5kX3RpbWVvdXRfZGF0YV90b19hbGFybShUaW1lb3V0LmN1cnJlbnQoKSkK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0
dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1l
b3V0X2NvbnRleHRfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI2NjExNCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weQkobm9uZXhpc3Rl
bnQpCkBAIC0xLDk4ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0
OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotaW1wb3J0IHRpbWUKLWltcG9ydCB0aHJlYWRpbmcKLWltcG9ydCB1bml0dGVzdAotCi1m
cm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKLQotCi1j
bGFzcyBUaW1lb3V0Q29udGV4dFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0
ZXN0X2N1cnJlbnRfdGltZW91dChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25l
LCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgd2l0aCBUaW1lb3V0KDEpIGFzIHRtcDoKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAg
ZGVmIHRlc3RfaW52YWxpZF90aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhSdW50aW1lRXJyb3IsIFRpbWVvdXQsIDApCi0KLSAgICBkZWYgdGVzdF90aW1lb3V0X2RhdGEo
c2VsZik6Ci0gICAgICAgIHRtcCA9IFRpbWVvdXQoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCB0bXAuZGF0YSkKLSAgICAgICAgd2l0aCB0bXA6Ci0gICAgICAgICAgICBzZWxmLmFz
c2VydE5vdEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5pZGVudCwgdG1wLmRhdGEudGhyZWFkX2lkKQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRpbWUudGltZSgpICsgMSA+PSB0bXAuZGF0YS5h
bGFybV90aW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotCi0g
ICAgZGVmIHRlc3RfbmVzdGVkX2lubmVyX3ByZWNlZGVuY2Uoc2VsZik6Ci0gICAgICAgIHRtcF9v
dXRlciA9IFRpbWVvdXQoMikKLSAgICAgICAgdG1wX2lubmVyID0gVGltZW91dCgxKQotICAgICAg
ICB3aXRoIHRtcF9vdXRlcjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVy
LmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICAgICAgd2l0aCB0bXBfaW5uZXI6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfaW5uZXIuZGF0YSwgVGltZW91dC5j
dXJyZW50KCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBU
aW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0
LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9vdXRlcl9wcmVjZWRlbmNlKHNlbGYp
OgotICAgICAgICB0bXBfb3V0ZXIgPSBUaW1lb3V0KDEpCi0gICAgICAgIHRtcF9pbm5lciA9IFRp
bWVvdXQoMikKLSAgICAgICAgd2l0aCB0bXBfb3V0ZXI6Ci0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHdp
dGggdG1wX2lubmVyOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVy
LmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0
bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0KLSAgICBkZWYgdGVzdF9ub190aW1lb3V0KHNl
bGYpOgotICAgICAgICB3aXRoIFRpbWVvdXQoMik6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKDEp
Ci0KLSAgICBkZWYgdGVzdF9iYXNpY190aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxk
X3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKLSAgICAgICAgICAgICAg
ICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwg
c2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9leGNlcHRpb25fY29uc3RydWN0b3JfdGlt
ZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3
aXRoIFRpbWVvdXQoMSwgRXhjZXB0aW9uKCdUaGlzIHNob3VsZCBiZSByYWlzZWQnKSk6Ci0gICAg
ICAgICAgICAgICAgdGltZS5zbGVlcCgyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhFeGNl
cHRpb24sIHNob3VsZF90aW1lb3V0KQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX2lubmVyX3RpbWVv
dXQoc2VsZik6Ci0gICAgICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0
aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhpcyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgotICAg
ICAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKLSAgICAgICAgICAgICAgICAgICAgdGltZS5z
bGVlcCgyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHNob3VsZF90
aW1lb3V0KQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3RpbWVvdXQoc2VsZik6Ci0gICAg
ICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgot
ICAgICAgICAgICAgICAgIHdpdGggVGltZW91dCgzLCBFeGNlcHRpb24oIlRoaXMgc2hvdWxkbid0
IGJlIHJhaXNlZCIpKToKLSAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHNob3VsZF90aW1lb3V0KQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9wcm9jZXNzLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weQko
cmV2aXNpb24gMjY2MTE0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRv
cl9wcm9jZXNzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw4IEBAIGltcG9ydCBvcwog
aW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRweS5jb21tb24udGltZW91dF9j
b250ZXh0IGltcG9ydCBUaW1lb3V0Citmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgVGltZW91dAor
CiBmcm9tIHdlYmtpdHB5LnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MK
IAogCkBAIC0xMDQsNyArMTA1LDcgQEAgY2xhc3MgU2ltdWxhdG9yUHJvY2VzcyhTZXJ2ZXJQcm9j
ZXNzKToKICAgICAgICAgc2VsZi5fc3lzdGVtX3BpZCA9IHNlbGYuX3BpZAogCiAgICAgICAgICMg
RklYTUUgPHJkYXI6Ly9wcm9ibGVtLzU3MDMyMDQyPjogVGhpcyB0aW1lb3V0IHNob3VsZCBiZSAx
NSBzZWNvbmRzCi0gICAgICAgIHdpdGggVGltZW91dCgzMCwgUnVudGltZUVycm9yKCdUaW1lZCBv
dXQgd2FpdGluZyBmb3IgcGlkIHt9IHRvIGNvbm5lY3QgYXQgcG9ydCB7fScuZm9ybWF0KHNlbGYu
X3BpZCwgc2VsZi5fdGFyZ2V0X2hvc3QubGlzdGVuaW5nX3BvcnQoKSkpKToKKyAgICAgICAgd2l0
aCBUaW1lb3V0KDMwLCBoYW5kbGVyPVJ1bnRpbWVFcnJvcignVGltZWQgb3V0IHdhaXRpbmcgZm9y
IHBpZCB7fSB0byBjb25uZWN0IGF0IHBvcnQge30nLmZvcm1hdChzZWxmLl9waWQsIHNlbGYuX3Rh
cmdldF9ob3N0Lmxpc3RlbmluZ19wb3J0KCkpKSwgcGF0Y2g9RmFsc2UpOgogICAgICAgICAgICAg
c3RkaW4gPSBOb25lCiAgICAgICAgICAgICBzdGRvdXQgPSBOb25lCiAgICAgICAgICAgICBzdGRl
cnIgPSBOb25lCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9wbHQvbGl2
ZXBsdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9w
bHQvbGl2ZXBsdC5weQkocmV2aXNpb24gMjY2MTE0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93ZWJkcml2ZXJfcGx0L2xpdmVwbHQucHkJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw2IEBA
IGZyb20gcGx0cmVzdWx0cyBpbXBvcnQgUExUUmVzdWx0cwogZnJvbSBzZWxlbml1bSBpbXBvcnQg
d2ViZHJpdmVyCiBmcm9tIHRpbWUgaW1wb3J0IHNsZWVwCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFy
a19ydW5uZXIudXRpbHMgaW1wb3J0IGdldF9kcml2ZXJfYmluYXJ5X3BhdGgKLWZyb20gd2Via2l0
cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAogCiAjIEZJWE1FOiB3ZSB3
YW50IHRvIGF2b2lkIGhhcmRjb2RpbmcgdGhlIG9mZnNldHMKICMgd2UgdXNlIHRoaXMgdG8gbWFr
ZSBzdXJlIHRoZSB3aW5kb3cuaW5uZXJIZWlnaHQgb2YgZWFjaCBicm93c2VyIGlzIHRoZSBzYW1l
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2
aWNlLnB5CShyZXZpc2lvbiAyNjYxMTQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2Rl
L3NpbXVsYXRlZF9kZXZpY2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEyICsyNywxMSBAQCBp
bXBvcnQgcGxpc3RsaWIKIGltcG9ydCByZQogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRjb3Jl
cHkgaW1wb3J0IFZlcnNpb24KK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBWZXJzaW9uLCBUaW1l
b3V0CiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAogZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5zeXN0ZW1ob3N0IGltcG9ydCBTeXN0ZW1Ib3N0Ci1m
cm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIGZyb20g
d2Via2l0cHkucG9ydC5kZXZpY2UgaW1wb3J0IERldmljZQogZnJvbSB3ZWJraXRweS54Y29kZS5k
ZXZpY2VfdHlwZSBpbXBvcnQgRGV2aWNlVHlwZQogCkBAIC02NDAsNyArNjM5LDcgQEAgY2xhc3Mg
U2ltdWxhdGVkRGV2aWNlKG9iamVjdCk6CiAKICAgICAgICAgb3V0cHV0ID0gTm9uZQogCi0gICAg
ICAgIHdpdGggVGltZW91dCh0aW1lb3V0LCBSdW50aW1lRXJyb3IodSdUaW1lZCBvdXQgd2FpdGlu
ZyBmb3IgcHJvY2VzcyB0byBvcGVuIHt9IG9uIHt9Jy5mb3JtYXQoYnVuZGxlX2lkLCBzZWxmLnVk
aWQpKSk6CisgICAgICAgIHdpdGggVGltZW91dCh0aW1lb3V0LCBoYW5kbGVyPVJ1bnRpbWVFcnJv
cih1J1RpbWVkIG91dCB3YWl0aW5nIGZvciBwcm9jZXNzIHRvIG9wZW4ge30gb24ge30nLmZvcm1h
dChidW5kbGVfaWQsIHNlbGYudWRpZCkpLCBwYXRjaD1GYWxzZSk6CiAgICAgICAgICAgICB3aGls
ZSBUcnVlOgogICAgICAgICAgICAgICAgIG91dHB1dCA9IHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21t
YW5kKAogICAgICAgICAgICAgICAgICAgICBbJ3hjcnVuJywgJ3NpbWN0bCcsICdsYXVuY2gnLCBz
ZWxmLnVkaWQsIGJ1bmRsZV9pZF0gKyBhcmdzLApJbmRleDogVG9vbHMvZ2xpYi9hcGlfdGVzdF9y
dW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvZ2xpYi9hcGlfdGVzdF9ydW5uZXIucHkJKHJl
dmlzaW9uIDI2NjExNCkKKysrIFRvb2xzL2dsaWIvYXBpX3Rlc3RfcnVubmVyLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4o
dG9wX2xldmUKIGltcG9ydCBjb21tb24KIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0
IEhvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLnRlc3RfZXhwZWN0YXRpb25zIGltcG9ydCBUZXN0
RXhwZWN0YXRpb25zCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0
IFRpbWVvdXQKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CiAKIGlmIG9zLm5hbWUg
PT0gJ3Bvc2l4JyBhbmQgc3lzLnZlcnNpb25faW5mb1swXSA8IDM6CiAgICAgdHJ5OgpAQCAtMjMw
LDcgKzIzMCw3IEBAIGNsYXNzIFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBj
b21tb24ucGFyc2Vfb3V0cHV0X2xpbmVzKGZkLCBzeXMuc3Rkb3V0LndyaXRlKQogICAgICAgICAg
ICAgICAgIHN0YXR1cyA9IHNlbGYuX3dhaXRwaWQocGlkKQogICAgICAgICAgICAgICAgIG9zLmNs
b3NlKGZkKQotICAgICAgICAgICAgZXhjZXB0IFJ1bnRpbWVFcnJvcjoKKyAgICAgICAgICAgIGV4
Y2VwdCBUaW1lb3V0LkV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nl
c3MocGlkKQogICAgICAgICAgICAgICAgIG9zLmNsb3NlKGZkKQogICAgICAgICAgICAgICAgIHN5
cy5zdGRvdXQud3JpdGUoIioqVElNRU9VVCoqICVzXG4iICUgc3VidGVzdCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407205</attachid>
            <date>2020-08-25 10:30:40 -0700</date>
            <delta_ts>2020-08-25 16:45:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200825103039.patch</filename>
            <type>text/plain</type>
            <size>9352</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjEyOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTA4LTI1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVuY2htYXJrX3J1
bm5lci5weTogVXNlIFRpbWVvdXQgZnJvbSB3ZWJraXRjb3JlcHkuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weTogUmVt
b3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3Mu
cHk6CisgICAgICAgIChTaW11bGF0b3JQcm9jZXNzLl9zdGFydCk6IE9wdC1vdXQgb2YgcGF0Y2hp
bmcgdGltZS5zbGVlcCgpLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Bs
dC9saXZlcGx0LnB5OiBVc2UgVGltZW91dCBmcm9tIHdlYmtpdGNvcmVweS4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHk6CisgICAgICAgIChTaW11
bGF0ZWREZXZpY2UubGF1bmNoX2FwcCk6IE9wdC1vdXQgb2YgcGF0Y2hpbmcgdGltZS5zbGVlcCgp
LgorICAgICAgICAqIGdsaWIvYXBpX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoVGVzdFJ1bm5l
ci5fcnVuX2dvb2dsZV90ZXN0KTogVXNlIHNwZWNpZmljIFRpbWVvdXQgZXhjZXB0aW9uLgorCiAy
MDIwLTA4LTI1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFttYWNPU10gVXBkYXRlIGF1ZGlvIGFyYml0cmF0aW9uIG1hbmFnZXIgd2hlbiBhdWRpbyB0
cmFuc3BvcnQgY2hhbmdlcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVuY2htYXJrX3J1
bm5lci5weQkocmV2aXNpb24gMjY2MTI4KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC00LDkgKzQsMTAgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgc3lz
CiAKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CisKIGZyb20gd2Via2l0cHkuYmVu
Y2htYXJrX3J1bm5lci5iZW5jaG1hcmtfcnVubmVyIGltcG9ydCBCZW5jaG1hcmtSdW5uZXIKIGZy
b20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5odHRwX3NlcnZlcl9kcml2ZXIuaHR0cF9zZXJ2
ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5Ci1mcm9tIHdl
YmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIAogaWYgc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKToKICAgICBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9p
bgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3Vu
aXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3Rp
bWVvdXRfY29udGV4dF91bml0dGVzdC5weQkocmV2aXNpb24gMjY2MTI4KQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5CShub25leGlz
dGVudCkKQEAgLTEsOTggKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBt
ZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMg
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgot
IyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi1pbXBvcnQgdGltZQotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVuaXR0ZXN0Ci0K
LWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAotCi0K
LWNsYXNzIFRpbWVvdXRDb250ZXh0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVm
IHRlc3RfY3VycmVudF90aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICB3aXRoIFRpbWVvdXQoMSkgYXMgdG1wOgot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXAuZGF0YSwgVGltZW91dC5jdXJyZW50KCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0KLSAg
ICBkZWYgdGVzdF9pbnZhbGlkX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFJ1bnRpbWVFcnJvciwgVGltZW91dCwgMCkKLQotICAgIGRlZiB0ZXN0X3RpbWVvdXRfZGF0
YShzZWxmKToKLSAgICAgICAgdG1wID0gVGltZW91dCgxKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIHRtcC5kYXRhKQotICAgICAgICB3aXRoIHRtcDoKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0Tm90RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50LCB0bXAuZGF0YS50aHJlYWRfaWQp
Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGltZS50aW1lKCkgKyAxID49IHRtcC5kYXRh
LmFsYXJtX3RpbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0K
LSAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfcHJlY2VkZW5jZShzZWxmKToKLSAgICAgICAgdG1w
X291dGVyID0gVGltZW91dCgyKQotICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0KDEpCi0gICAg
ICAgIHdpdGggdG1wX291dGVyOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0
ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRtcF9pbm5lcjoK
LSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9pbm5lci5kYXRhLCBUaW1lb3V0
LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEs
IFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVv
dXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX291dGVyX3ByZWNlZGVuY2Uoc2Vs
Zik6Ci0gICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQoMSkKLSAgICAgICAgdG1wX2lubmVyID0g
VGltZW91dCgyKQotICAgICAgICB3aXRoIHRtcF9vdXRlcjoKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICAgICAg
d2l0aCB0bXBfaW5uZXI6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0
ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0X25vX3RpbWVvdXQo
c2VsZik6Ci0gICAgICAgIHdpdGggVGltZW91dCgyKToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAo
MSkKLQotICAgIGRlZiB0ZXN0X2Jhc2ljX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIGRlZiBzaG91
bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAgICAgICAgICAg
ICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9y
LCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbl9jb25zdHJ1Y3Rvcl90
aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAgICAgICAgICAg
IHdpdGggVGltZW91dCgxLCBFeGNlcHRpb24oJ1RoaXMgc2hvdWxkIGJlIHJhaXNlZCcpKToKLSAg
ICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4
Y2VwdGlvbiwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfaW5uZXJfdGlt
ZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3
aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJUaGlzIHNob3VsZG4ndCBiZSByYWlzZWQiKSk6Ci0g
ICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAgICAgICAgICAgICAgICAgICB0aW1l
LnNsZWVwKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxk
X3RpbWVvdXQpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfdGltZW91dChzZWxmKToKLSAg
ICAgICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6
Ci0gICAgICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhpcyBzaG91bGRu
J3QgYmUgcmFpc2VkIikpOgotICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVvdXQpCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3MucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9wcm9jZXNzLnB5
CShyZXZpc2lvbiAyNjYxMjgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxh
dG9yX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDEwIEBAIGltcG9ydCBv
cwogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRweS5jb21tb24udGltZW91
dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0Citmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgVGltZW91
dAorCiBmcm9tIHdlYmtpdHB5LnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nl
c3MKK2Zyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAog
CiAKIGNsYXNzIFNpbXVsYXRvclByb2Nlc3MoU2VydmVyUHJvY2Vzcyk6CkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9wbHQvbGl2ZXBsdC5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZlcl9wbHQvbGl2ZXBsdC5weQkocmV2aXNpb24g
MjY2MTI4KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJkcml2ZXJfcGx0L2xpdmVwbHQu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw2IEBAIGZyb20gcGx0cmVzdWx0cyBpbXBvcnQg
UExUUmVzdWx0cwogZnJvbSBzZWxlbml1bSBpbXBvcnQgd2ViZHJpdmVyCiBmcm9tIHRpbWUgaW1w
b3J0IHNsZWVwCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGdl
dF9kcml2ZXJfYmluYXJ5X3BhdGgKLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4
dCBpbXBvcnQgVGltZW91dAogCiAjIEZJWE1FOiB3ZSB3YW50IHRvIGF2b2lkIGhhcmRjb2Rpbmcg
dGhlIG9mZnNldHMKICMgd2UgdXNlIHRoaXMgdG8gbWFrZSBzdXJlIHRoZSB3aW5kb3cuaW5uZXJI
ZWlnaHQgb2YgZWFjaCBicm93c2VyIGlzIHRoZSBzYW1lCkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5CShyZXZpc2lvbiAyNjYxMjgp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHkJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDE1ICsyNywxNiBAQCBpbXBvcnQgcGxpc3RsaWIKIGltcG9ydCBy
ZQogaW1wb3J0IHRpbWUKIAotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFZlcnNpb24KK2Zyb20g
d2Via2l0Y29yZXB5IGltcG9ydCBWZXJzaW9uLCBUaW1lb3V0CiAKIGZyb20gd2Via2l0cHkuY29t
bW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVt
LmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5zeXN0ZW1ob3N0IGltcG9ydCBTeXN0ZW1Ib3N0Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1l
b3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIGZyb20gd2Via2l0cHkucG9ydC5kZXZpY2UgaW1w
b3J0IERldmljZQogZnJvbSB3ZWJraXRweS54Y29kZS5kZXZpY2VfdHlwZSBpbXBvcnQgRGV2aWNl
VHlwZQogCitmcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVv
dXQKKwogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKSW5kZXg6IFRvb2xz
L2dsaWIvYXBpX3Rlc3RfcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL2dsaWIvYXBpX3Rl
c3RfcnVubmVyLnB5CShyZXZpc2lvbiAyNjYxMjgpCisrKyBUb29scy9nbGliL2FwaV90ZXN0X3J1
bm5lci5weQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBzeXMucGF0aC5pbnNlcnQo
MCwgb3MucGF0aC5qb2luKHRvcF9sZXZlCiBpbXBvcnQgY29tbW9uCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi50ZXN0X2V4cGVjdGF0
aW9ucyBpbXBvcnQgVGVzdEV4cGVjdGF0aW9ucwotZnJvbSB3ZWJraXRweS5jb21tb24udGltZW91
dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0Citmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgVGltZW91
dAogCiBpZiBvcy5uYW1lID09ICdwb3NpeCcgYW5kIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOgog
ICAgIHRyeToKQEAgLTIzMCw3ICsyMzAsNyBAQCBjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgY29tbW9uLnBhcnNlX291dHB1dF9saW5lcyhmZCwgc3lzLnN0ZG91dC53
cml0ZSkKICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzZWxmLl93YWl0cGlkKHBpZCkKICAgICAg
ICAgICAgICAgICBvcy5jbG9zZShmZCkKLSAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6
CisgICAgICAgICAgICBleGNlcHQgVGltZW91dC5FeGNlcHRpb246CiAgICAgICAgICAgICAgICAg
c2VsZi5fa2lsbF9wcm9jZXNzKHBpZCkKICAgICAgICAgICAgICAgICBvcy5jbG9zZShmZCkKICAg
ICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCIqKlRJTUVPVVQqKiAlc1xuIiAlIHN1YnRl
c3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407249</attachid>
            <date>2020-08-25 16:41:49 -0700</date>
            <delta_ts>2020-08-26 09:28:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200825164148.patch</filename>
            <type>text/plain</type>
            <size>11287</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjE1MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTA4LTI1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci93ZWJzZXJ2ZXJfYmVuY2htYXJrX3J1
bm5lci5weTogVXNlIFRpbWVvdXQgZnJvbSB3ZWJraXRjb3JlcHkuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weTogUmVt
b3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3Mu
cHk6CisgICAgICAgIChTaW11bGF0b3JQcm9jZXNzLl9zdGFydCk6IE9wdC1vdXQgb2YgcGF0Y2hp
bmcgdGltZS5zbGVlcCgpLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3Bs
dC9saXZlcGx0LnB5OiBVc2UgVGltZW91dCBmcm9tIHdlYmtpdGNvcmVweS4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHk6CisgICAgICAgIChTaW11
bGF0ZWREZXZpY2UubGF1bmNoX2FwcCk6IE9wdC1vdXQgb2YgcGF0Y2hpbmcgdGltZS5zbGVlcCgp
LgorICAgICAgICAqIGdsaWIvYXBpX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoVGVzdFJ1bm5l
ci5fcnVuX2dvb2dsZV90ZXN0KTogVXNlIHNwZWNpZmljIFRpbWVvdXQgZXhjZXB0aW9uLgorCiAy
MDIwLTA4LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIHVubmVlZGVkIEhBVkUoTkVUV09SS19GUkFNRVdPUkspIG1hY3JvCklu
ZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rp
bWVvdXQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29y
ZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5CShyZXZpc2lvbiAyNjYxNTEpCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3RpbWVvdXQucHkJKHdv
cmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBjbGFzcyBUaW1lb3V0KG9iamVjdCk6CiAg
ICAgICAgICAgICBzZWxmLl9wYXRjaCA9IE5vbmUKIAogICAgIGRlZiBfX2VudGVyX18oc2VsZik6
Ci0gICAgICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0oKToKKyAgICAgICAgd2l0aCBzZWxmLkRp
c2FibGVBbGFybShwYXRjaD1zZWxmLl9wYXRjaCk6CiAgICAgICAgICAgICBzZWxmLmRhdGEgPSBz
ZWxmLkRhdGEodGltZS50aW1lKCkgKyBzZWxmLl90aW1lb3V0LCBzZWxmLl9oYW5kbGVyKQogICAg
ICAgICAgICAgYmlzZWN0Lmluc29ydChzZWxmLl9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdl
dHBpZCgpXSwgc2VsZi5kYXRhKQogCkBAIC0xODEsNyArMTgxLDcgQEAgY2xhc3MgVGltZW91dChv
YmplY3QpOgogICAgICAgICBpZiBzZWxmLl9wYXRjaDoKICAgICAgICAgICAgIHNlbGYuX3BhdGNo
Ll9fZXhpdF9fKCphcmdzLCAqKmt3YXJncykKIAotICAgICAgICB3aXRoIHNlbGYuRGlzYWJsZUFs
YXJtKCk6CisgICAgICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0ocGF0Y2g9c2VsZi5fcGF0Y2gp
OgogICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0
cGlkKCldOgogICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignTm8gdGltZW91dCBy
ZWdpc3RlcmVkJykKICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3Mu
Z2V0cGlkKCldLnJlbW92ZShzZWxmLmRhdGEpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvd2Vic2VydmVyX2JlbmNobWFya19ydW5uZXIucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3dlYnNlcnZlcl9i
ZW5jaG1hcmtfcnVubmVyLnB5CShyZXZpc2lvbiAyNjYxNTEpCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvd2Vic2VydmVyX2JlbmNobWFya19ydW5uZXIucHkJKHdv
cmtpbmcgY29weSkKQEAgLTQsOSArNCwxMCBAQCBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcK
IGltcG9ydCBzeXMKIAorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFRpbWVvdXQKKwogZnJvbSB3
ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmJlbmNobWFya19ydW5uZXIgaW1wb3J0IEJlbmNobWFy
a1J1bm5lcgogZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmh0dHBfc2VydmVyX2RyaXZl
ci5odHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSFRUUFNlcnZlckRyaXZlckZhY3Rv
cnkKLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAog
CiBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgogICAgIGZyb20gdXJsbGliLnBhcnNlIGlt
cG9ydCB1cmxqb2luCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0
X2NvbnRleHRfdW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vdGltZW91dF9jb250ZXh0X3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNjYxNTEpCisr
KyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHRfdW5pdHRlc3Qu
cHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw5OCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCB0aW1lCi1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQg
dW5pdHRlc3QKLQotZnJvbSB3ZWJraXRweS5jb21tb24udGltZW91dF9jb250ZXh0IGltcG9ydCBU
aW1lb3V0Ci0KLQotY2xhc3MgVGltZW91dENvbnRleHRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6
Ci0KLSAgICBkZWYgdGVzdF9jdXJyZW50X3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHdpdGggVGltZW91dCgx
KSBhcyB0bXA6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcC5kYXRhLCBUaW1lb3V0
LmN1cnJlbnQoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJl
bnQoKSkKLQotICAgIGRlZiB0ZXN0X2ludmFsaWRfdGltZW91dChzZWxmKToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBUaW1lb3V0LCAwKQotCi0gICAgZGVmIHRlc3Rf
dGltZW91dF9kYXRhKHNlbGYpOgotICAgICAgICB0bXAgPSBUaW1lb3V0KDEpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoTm9uZSwgdG1wLmRhdGEpCi0gICAgICAgIHdpdGggdG1wOgotICAgICAg
ICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChOb25lLCB0bXAuZGF0YSkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwodGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQsIHRtcC5kYXRh
LnRocmVhZF9pZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0aW1lLnRpbWUoKSArIDEg
Pj0gdG1wLmRhdGEuYWxhcm1fdGltZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB0
bXAuZGF0YSkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9pbm5lcl9wcmVjZWRlbmNlKHNlbGYpOgot
ICAgICAgICB0bXBfb3V0ZXIgPSBUaW1lb3V0KDIpCi0gICAgICAgIHRtcF9pbm5lciA9IFRpbWVv
dXQoMSkKLSAgICAgICAgd2l0aCB0bXBfb3V0ZXI6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHdpdGgg
dG1wX2lubmVyOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX2lubmVyLmRh
dGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBf
b3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgVGltZW91dC5jdXJyZW50KCkpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfcHJl
Y2VkZW5jZShzZWxmKToKLSAgICAgICAgdG1wX291dGVyID0gVGltZW91dCgxKQotICAgICAgICB0
bXBfaW5uZXIgPSBUaW1lb3V0KDIpCi0gICAgICAgIHdpdGggdG1wX291dGVyOgotICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0g
ICAgICAgICAgICB3aXRoIHRtcF9pbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE5vbmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3Rf
bm9fdGltZW91dChzZWxmKToKLSAgICAgICAgd2l0aCBUaW1lb3V0KDIpOgotICAgICAgICAgICAg
dGltZS5zbGVlcCgxKQotCi0gICAgZGVmIHRlc3RfYmFzaWNfdGltZW91dChzZWxmKToKLSAgICAg
ICAgZGVmIHNob3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6Ci0g
ICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhS
dW50aW1lRXJyb3IsIHNob3VsZF90aW1lb3V0KQotCi0gICAgZGVmIHRlc3RfZXhjZXB0aW9uX2Nv
bnN0cnVjdG9yX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgot
ICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEsIEV4Y2VwdGlvbignVGhpcyBzaG91bGQgYmUgcmFp
c2VkJykpOgotICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoRXhjZXB0aW9uLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X25lc3Rl
ZF9pbm5lcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAg
ICAgICAgICAgIHdpdGggVGltZW91dCgzLCBFeGNlcHRpb24oIlRoaXMgc2hvdWxkbid0IGJlIHJh
aXNlZCIpKToKLSAgICAgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6Ci0gICAgICAgICAgICAg
ICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVy
cm9yLCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9vdXRlcl90aW1lb3V0
KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdpdGgg
VGltZW91dCgxKToKLSAgICAgICAgICAgICAgICB3aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJU
aGlzIHNob3VsZG4ndCBiZSByYWlzZWQiKSk6Ci0gICAgICAgICAgICAgICAgICAgIHRpbWUuc2xl
ZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzaG91bGRfdGlt
ZW91dCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vz
cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9y
X3Byb2Nlc3MucHkJKHJldmlzaW9uIDI2NjE1MSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weQkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsOCBA
QCBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiAKLWZyb20gd2Via2l0cHkuY29t
bW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAorZnJvbSB3ZWJraXRjb3JlcHkgaW1w
b3J0IFRpbWVvdXQKKwogZnJvbSB3ZWJraXRweS5wb3J0LnNlcnZlcl9wcm9jZXNzIGltcG9ydCBT
ZXJ2ZXJQcm9jZXNzCiAKIApAQCAtMTA0LDcgKzEwNSw3IEBAIGNsYXNzIFNpbXVsYXRvclByb2Nl
c3MoU2VydmVyUHJvY2Vzcyk6CiAgICAgICAgIHNlbGYuX3N5c3RlbV9waWQgPSBzZWxmLl9waWQK
IAogICAgICAgICAjIEZJWE1FIDxyZGFyOi8vcHJvYmxlbS81NzAzMjA0Mj46IFRoaXMgdGltZW91
dCBzaG91bGQgYmUgMTUgc2Vjb25kcwotICAgICAgICB3aXRoIFRpbWVvdXQoMzAsIFJ1bnRpbWVF
cnJvcignVGltZWQgb3V0IHdhaXRpbmcgZm9yIHBpZCB7fSB0byBjb25uZWN0IGF0IHBvcnQge30n
LmZvcm1hdChzZWxmLl9waWQsIHNlbGYuX3RhcmdldF9ob3N0Lmxpc3RlbmluZ19wb3J0KCkpKSk6
CisgICAgICAgIHdpdGggVGltZW91dCgzMCwgaGFuZGxlcj1SdW50aW1lRXJyb3IoJ1RpbWVkIG91
dCB3YWl0aW5nIGZvciBwaWQge30gdG8gY29ubmVjdCBhdCBwb3J0IHt9Jy5mb3JtYXQoc2VsZi5f
cGlkLCBzZWxmLl90YXJnZXRfaG9zdC5saXN0ZW5pbmdfcG9ydCgpKSksIHBhdGNoPUZhbHNlKToK
ICAgICAgICAgICAgIHN0ZGluID0gTm9uZQogICAgICAgICAgICAgc3Rkb3V0ID0gTm9uZQogICAg
ICAgICAgICAgc3RkZXJyID0gTm9uZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS93ZWJk
cml2ZXJfcGx0L2xpdmVwbHQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS93ZWJkcml2ZXJfcGx0L2xpdmVwbHQucHkJKHJldmlzaW9uIDI2NjE1MSkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0LnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0yLDcgKzIsNiBAQCBmcm9tIHBsdHJlc3VsdHMgaW1wb3J0IFBMVFJlc3VsdHMKIGZyb20gc2Vs
ZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgogZnJvbSB0aW1lIGltcG9ydCBzbGVlcAogZnJvbSB3ZWJr
aXRweS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBnZXRfZHJpdmVyX2JpbmFyeV9wYXRo
Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKIAog
IyBGSVhNRTogd2Ugd2FudCB0byBhdm9pZCBoYXJkY29kaW5nIHRoZSBvZmZzZXRzCiAjIHdlIHVz
ZSB0aGlzIHRvIG1ha2Ugc3VyZSB0aGUgd2luZG93LmlubmVySGVpZ2h0IG9mIGVhY2ggYnJvd3Nl
ciBpcyB0aGUgc2FtZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0
ZWRfZGV2aWNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUv
c2ltdWxhdGVkX2RldmljZS5weQkocmV2aXNpb24gMjY2MTUxKQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNywx
MiArMjcsMTEgQEAgaW1wb3J0IHBsaXN0bGliCiBpbXBvcnQgcmUKIGltcG9ydCB0aW1lCiAKLWZy
b20gd2Via2l0Y29yZXB5IGltcG9ydCBWZXJzaW9uCitmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQg
VmVyc2lvbiwgVGltZW91dAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQg
bWVtb2l6ZWQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNj
cmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQg
U3lzdGVtSG9zdAotZnJvbSB3ZWJraXRweS5jb21tb24udGltZW91dF9jb250ZXh0IGltcG9ydCBU
aW1lb3V0CiBmcm9tIHdlYmtpdHB5LnBvcnQuZGV2aWNlIGltcG9ydCBEZXZpY2UKIGZyb20gd2Vi
a2l0cHkueGNvZGUuZGV2aWNlX3R5cGUgaW1wb3J0IERldmljZVR5cGUKIApAQCAtNjQwLDcgKzYz
OSw3IEBAIGNsYXNzIFNpbXVsYXRlZERldmljZShvYmplY3QpOgogCiAgICAgICAgIG91dHB1dCA9
IE5vbmUKIAotICAgICAgICB3aXRoIFRpbWVvdXQodGltZW91dCwgUnVudGltZUVycm9yKHUnVGlt
ZWQgb3V0IHdhaXRpbmcgZm9yIHByb2Nlc3MgdG8gb3BlbiB7fSBvbiB7fScuZm9ybWF0KGJ1bmRs
ZV9pZCwgc2VsZi51ZGlkKSkpOgorICAgICAgICB3aXRoIFRpbWVvdXQodGltZW91dCwgaGFuZGxl
cj1SdW50aW1lRXJyb3IodSdUaW1lZCBvdXQgd2FpdGluZyBmb3IgcHJvY2VzcyB0byBvcGVuIHt9
IG9uIHt9Jy5mb3JtYXQoYnVuZGxlX2lkLCBzZWxmLnVkaWQpKSwgcGF0Y2g9RmFsc2UpOgogICAg
ICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLmV4ZWN1
dGl2ZS5ydW5fY29tbWFuZCgKICAgICAgICAgICAgICAgICAgICAgWyd4Y3J1bicsICdzaW1jdGwn
LCAnbGF1bmNoJywgc2VsZi51ZGlkLCBidW5kbGVfaWRdICsgYXJncywKSW5kZXg6IFRvb2xzL2ds
aWIvYXBpX3Rlc3RfcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL2dsaWIvYXBpX3Rlc3Rf
cnVubmVyLnB5CShyZXZpc2lvbiAyNjYxNTEpCisrKyBUb29scy9nbGliL2FwaV90ZXN0X3J1bm5l
ci5weQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBzeXMucGF0aC5pbnNlcnQoMCwg
b3MucGF0aC5qb2luKHRvcF9sZXZlCiBpbXBvcnQgY29tbW9uCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi50ZXN0X2V4cGVjdGF0aW9u
cyBpbXBvcnQgVGVzdEV4cGVjdGF0aW9ucwotZnJvbSB3ZWJraXRweS5jb21tb24udGltZW91dF9j
b250ZXh0IGltcG9ydCBUaW1lb3V0Citmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgVGltZW91dAog
CiBpZiBvcy5uYW1lID09ICdwb3NpeCcgYW5kIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOgogICAg
IHRyeToKQEAgLTIzMCw3ICsyMzAsNyBAQCBjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgY29tbW9uLnBhcnNlX291dHB1dF9saW5lcyhmZCwgc3lzLnN0ZG91dC53cml0
ZSkKICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzZWxmLl93YWl0cGlkKHBpZCkKICAgICAgICAg
ICAgICAgICBvcy5jbG9zZShmZCkKLSAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6Cisg
ICAgICAgICAgICBleGNlcHQgVGltZW91dC5FeGNlcHRpb246CiAgICAgICAgICAgICAgICAgc2Vs
Zi5fa2lsbF9wcm9jZXNzKHBpZCkKICAgICAgICAgICAgICAgICBvcy5jbG9zZShmZCkKICAgICAg
ICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCIqKlRJTUVPVVQqKiAlc1xuIiAlIHN1YnRlc3Qp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407305</attachid>
            <date>2020-08-26 09:28:20 -0700</date>
            <delta_ts>2020-08-26 21:18:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200826092819.patch</filename>
            <type>text/plain</type>
            <size>14100</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjE2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA4LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorICAg
ICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGltZW91
dC5weToKKyAgICAgICAgKFRpbWVvdXQuX19lbnRlcl9fKTogRm9yd2FyZCBwYXRjaCBmbGFnIHRv
IGRpc2FibGUgY29udGV4dC4KKyAgICAgICAgKFRpbWVvdXQuX19leGl0X18pOiBEaXR0by4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHk6IFJlcGxh
Y2Ugd2l0aCB3ZWJraXRjb3JlcHkncyBUaW1lb3V0IG9iamVjdC4KKyAgICAgICAgKFRpbWVvdXQp
OiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29u
dGV4dF91bml0dGVzdC5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvc2ltdWxhdG9yX3Byb2Nlc3MucHk6CisgICAgICAgIChTaW11bGF0b3JQcm9jZXNzLl9zdGFy
dCk6IE9wdC1vdXQgb2YgcGF0Y2hpbmcgdGltZS5zbGVlcCgpLgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkveGNvZGUvc2ltdWxhdGVkX2RldmljZS5weToKKyAgICAgICAgKFNpbXVsYXRlZERl
dmljZS5sYXVuY2hfYXBwKTogT3B0LW91dCBvZiBwYXRjaGluZyB0aW1lLnNsZWVwKCkuCisgICAg
ICAgICogZ2xpYi9hcGlfdGVzdF9ydW5uZXIucHk6CisgICAgICAgIChUZXN0UnVubmVyLl9ydW5f
Z29vZ2xlX3Rlc3QpOiBVc2Ugc3BlY2lmaWMgVGltZW91dCBleGNlcHRpb24uCisKIDIwMjAtMDgt
MjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIGVudW1lcmF0
ZURldmljZXMgc2hvdWxkIGV4cG9zZSBhdWRpb291dHB1dCBkZXZpY2VzIHRoYXQgYXJlIHRpZWQg
dG8gYW4gYXVkaW8gaW5wdXQgZGV2aWNlCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJ
KHJldmlzaW9uIDI2NjE2NykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVw
eS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcg
QEAgZnJvbSB3ZWJraXRjb3JlcHkudGltZW91dCBpbXBvcnQgVGltZW91dAogZnJvbSB3ZWJraXRj
b3JlcHkuc3VicHJvY2Vzc191dGlscyBpbXBvcnQgVGltZW91dEV4cGlyZWQsIENvbXBsZXRlZFBy
b2Nlc3MsIHJ1bgogZnJvbSB3ZWJraXRjb3JlcHkub3V0cHV0X2NhcHR1cmUgaW1wb3J0IExvZ2dl
ckNhcHR1cmUsIE91dHB1dENhcHR1cmUsIE91dHB1dER1cGxpY2F0ZQogCi12ZXJzaW9uID0gVmVy
c2lvbigwLCA0LCAwKQordmVyc2lvbiA9IFZlcnNpb24oMCwgNCwgMSkKIAogZnJvbSB3ZWJraXRj
b3JlcHkuYXV0b2luc3RhbGwgaW1wb3J0IFBhY2thZ2UsIEF1dG9JbnN0YWxsCiBpZiBzeXMudmVy
c2lvbl9pbmZvID4gKDMsIDApOgpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
Y29yZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGltZW91dC5weQkocmV2aXNp
b24gMjY2MTY3KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtp
dGNvcmVweS90aW1lb3V0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNyArMTY5LDcgQEAgY2xh
c3MgVGltZW91dChvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcGF0Y2ggPSBOb25lCiAKICAg
ICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICB3aXRoIHNlbGYuRGlzYWJsZUFsYXJtKCk6
CisgICAgICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0ocGF0Y2g9c2VsZi5fcGF0Y2gpOgogICAg
ICAgICAgICAgc2VsZi5kYXRhID0gc2VsZi5EYXRhKHRpbWUudGltZSgpICsgc2VsZi5fdGltZW91
dCwgc2VsZi5faGFuZGxlcikKICAgICAgICAgICAgIGJpc2VjdC5pbnNvcnQoc2VsZi5fcHJvY2Vz
c190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV0sIHNlbGYuZGF0YSkKIApAQCAtMTgxLDcgKzE4
MSw3IEBAIGNsYXNzIFRpbWVvdXQob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5fcGF0Y2g6CiAg
ICAgICAgICAgICBzZWxmLl9wYXRjaC5fX2V4aXRfXygqYXJncywgKiprd2FyZ3MpCiAKLSAgICAg
ICAgd2l0aCBzZWxmLkRpc2FibGVBbGFybSgpOgorICAgICAgICB3aXRoIHNlbGYuRGlzYWJsZUFs
YXJtKHBhdGNoPXNlbGYuX3BhdGNoKToKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9wcm9jZXNz
X3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXToKICAgICAgICAgICAgICAgICByYWlzZSBSdW50
aW1lRXJyb3IoJ05vIHRpbWVvdXQgcmVnaXN0ZXJlZCcpCiAgICAgICAgICAgICBzZWxmLl9wcm9j
ZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5yZW1vdmUoc2VsZi5kYXRhKQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dC5weQko
cmV2aXNpb24gMjY2MTY3KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91
dF9jb250ZXh0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCwxMDAgKzIwLDQgQEAKICMgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBt
YXRoCi1pbXBvcnQgb3MKLWltcG9ydCBzaWduYWwKLWltcG9ydCB0aW1lCi1pbXBvcnQgdGhyZWFk
aW5nCi0KLV9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLQotCi1jbGFzcyBUaW1l
b3V0KG9iamVjdCk6Ci0KLSAgICB0aHJlYWRfZXhjZXB0aW9uID0gUnVudGltZUVycm9yKCdUaW1l
b3V0IG9yaWdpbmF0ZXMgZnJvbSBhIGRpZmZlcmVudCB0aHJlYWQnKQotICAgIF9wcm9jZXNzX3Rv
X3RpbWVvdXRfbWFwID0ge30KLQotICAgIGNsYXNzIFRpbWVvdXREYXRhKG9iamVjdCk6Ci0KLSAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFsYXJtX3RpbWUsIGhhbmRsZXIpOgotICAgICAgICAg
ICAgc2VsZi5hbGFybV90aW1lID0gYWxhcm1fdGltZQotICAgICAgICAgICAgc2VsZi5oYW5kbGVy
ID0gaGFuZGxlcgotICAgICAgICAgICAgc2VsZi50aHJlYWRfaWQgPSB0aHJlYWRpbmcuY3VycmVu
dF90aHJlYWQoKS5pZGVudAotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBkZWZhdWx0X2hh
bmRsZXIoc2lnbnVtLCBmcmFtZSk6Ci0gICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignVGltZW91
dCBhbGFybSB3YXMgdHJpZ2dlcmVkJykKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgY3Vy
cmVudCgpOgotICAgICAgICByZXN1bHQgPSBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFw
LmdldChvcy5nZXRwaWQoKSwgW10pCi0gICAgICAgIGlmIG5vdCByZXN1bHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gTm9uZQotICAgICAgICBpZiByZXN1bHRbMF0udGhyZWFkX2lkICE9IHRocmVhZGlu
Zy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgotICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgnVXNp
bmcgYm90aCBhbGFybXMgYW5kIHRocmVhZGluZyBpbiB0aGUgc2FtZSBwcm9jZXNzLCB0aGlzIGlz
IHVuc3VwcG9ydGVkJykKLSAgICAgICAgICAgIHJhaXNlIFRpbWVvdXQudGhyZWFkX2V4Y2VwdGlv
bgotICAgICAgICByZXR1cm4gcmVzdWx0WzBdCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vj
b25kcz0xLCBoYW5kbGVyPU5vbmUpOgotICAgICAgICBpZiBzZWNvbmRzID09IDA6Ci0gICAgICAg
ICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ0Nhbm5vdCBoYXZlIGEgdGltZW91dCBvZiAwIHNlY29u
ZHMnKQotCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoaGFuZGxlciwgQmFzZUV4Y2VwdGlvbik6Ci0g
ICAgICAgICAgICBleGNlcHRpb24gPSBoYW5kbGVyCi0KLSAgICAgICAgICAgIGRlZiBleGNlcHRp
b25faGFuZGxlcihzaWdudW0sIGZyYW1lKToKLSAgICAgICAgICAgICAgICByYWlzZSBleGNlcHRp
b24KLQotICAgICAgICAgICAgaGFuZGxlciA9IGV4Y2VwdGlvbl9oYW5kbGVyCi0KLSAgICAgICAg
c2VsZi5fdGltZW91dCA9IHNlY29uZHMKLSAgICAgICAgc2VsZi5faGFuZGxlciA9IGhhbmRsZXIg
aWYgaGFuZGxlciBlbHNlIFRpbWVvdXQuZGVmYXVsdF9oYW5kbGVyCi0gICAgICAgIHNlbGYuZGF0
YSA9IE5vbmUKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX2JpbmRfdGltZW91dF9kYXRh
X3RvX2FsYXJtKGRhdGEpOgotICAgICAgICBkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKLSAg
ICAgICAgICAgIGFzc2VydCBzaWdudW0gPT0gc2lnbmFsLlNJR0FMUk0KLSAgICAgICAgICAgIGlm
IGRhdGEudGhyZWFkX2lkICE9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50OgotICAg
ICAgICAgICAgICAgIHJhaXNlIFRpbWVvdXQudGhyZWFkX2V4Y2VwdGlvbgotICAgICAgICAgICAg
ZGF0YS5oYW5kbGVyKHNpZ251bSwgZnJhbWUpCi0KLSAgICAgICAgY3VycmVudF90aW1lID0gdGlt
ZS50aW1lKCkKLSAgICAgICAgaWYgZGF0YS5hbGFybV90aW1lIDw9IGN1cnJlbnRfdGltZToKLSAg
ICAgICAgICAgIGhhbmRsZXIoc2lnbmFsLlNJR0FMUk0sIE5vbmUpCi0KLSAgICAgICAgc2lnbmFs
LnNpZ25hbChzaWduYWwuU0lHQUxSTSwgaGFuZGxlcikKLSAgICAgICAgc2lnbmFsLmFsYXJtKGlu
dChtYXRoLmNlaWwoZGF0YS5hbGFybV90aW1lIC0gY3VycmVudF90aW1lKSkpCi0KLSAgICBkZWYg
X19lbnRlcl9fKHNlbGYpOgotICAgICAgICBzaWduYWwuYWxhcm0oMCkgICMgSW1pZWRpYXRseSBk
aXNhYmxlIHRoZSBhbGFybSBzbyB3ZSBhcmVuJ3QgaW50ZXJ1cHRlZC4KLSAgICAgICAgc2VsZi5k
YXRhID0gVGltZW91dC5UaW1lb3V0RGF0YSh0aW1lLnRpbWUoKSArIHNlbGYuX3RpbWVvdXQsIHNl
bGYuX2hhbmRsZXIpCi0gICAgICAgIGN1cnJlbnRfdGltZW91dCA9IFRpbWVvdXQuY3VycmVudCgp
Ci0KLSAgICAgICAgIyBBbm90aGVyIHRpbWVvdXQgaXMgbW9yZSB1cmdlbnQuCi0gICAgICAgIGlm
IGN1cnJlbnRfdGltZW91dCBhbmQgY3VycmVudF90aW1lb3V0LmFsYXJtX3RpbWUgPCBzZWxmLmRh
dGEuYWxhcm1fdGltZToKLSAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihUaW1lb3V0Ll9w
cm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXSkgLSAxKToKLSAgICAgICAgICAgICAg
ICBpZiBzZWxmLmRhdGEuYWxhcm1fdGltZSA8IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9t
YXBbb3MuZ2V0cGlkKCldW2kgKyAxXS5hbGFybV90aW1lOgotICAgICAgICAgICAgICAgICAgICBU
aW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXS5pbnNlcnQoaSwgc2Vs
Zi5kYXRhKQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgVGltZW91dC5f
cHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV0uYXBwZW5kKHNlbGYuZGF0YSkKLQot
ICAgICAgICAjIFRoaXMgaXMgdGhlIG1vc3QgdXJnZW50IHRpbWVvdXQKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCld
ID0gW3NlbGYuZGF0YV0gKyBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwLmdldChvcy5n
ZXRwaWQoKSwgW10pCi0KLSAgICAgICAgVGltZW91dC5fYmluZF90aW1lb3V0X2RhdGFfdG9fYWxh
cm0oVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19l
eGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKLSAgICAgICAgc2ln
bmFsLmFsYXJtKDApICAjIEltaWVkaWF0bHkgZGlzYWJsZSB0aGUgYWxhcm0gc28gd2UgYXJlbid0
IGludGVydXB0ZWQuCi0KLSAgICAgICAgaWYgbm90IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91
dF9tYXBbb3MuZ2V0cGlkKCldOgotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdObyB0
aW1lb3V0IHJlZ2lzdGVyZWQnKQotICAgICAgICBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRf
bWFwW29zLmdldHBpZCgpXS5yZW1vdmUoc2VsZi5kYXRhKQotICAgICAgICBzZWxmLmRhdGEgPSBO
b25lCi0KLSAgICAgICAgaWYgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRw
aWQoKV06Ci0gICAgICAgICAgICBUaW1lb3V0Ll9iaW5kX3RpbWVvdXRfZGF0YV90b19hbGFybShU
aW1lb3V0LmN1cnJlbnQoKSkKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHRfdW5pdHRlc3Qu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9j
b250ZXh0X3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNjYxNjcpCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHRfdW5pdHRlc3QucHkJKG5vbmV4aXN0ZW50KQpA
QCAtMSw5OCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LWltcG9ydCB0aW1lCi1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSB3
ZWJraXRweS5jb21tb24udGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0Ci0KLQotY2xhc3Mg
VGltZW91dENvbnRleHRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9j
dXJyZW50X3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGlt
ZW91dC5jdXJyZW50KCkpCi0gICAgICAgIHdpdGggVGltZW91dCgxKSBhcyB0bXA6Ci0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcC5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0
ZXN0X2ludmFsaWRfdGltZW91dChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVu
dGltZUVycm9yLCBUaW1lb3V0LCAwKQotCi0gICAgZGVmIHRlc3RfdGltZW91dF9kYXRhKHNlbGYp
OgotICAgICAgICB0bXAgPSBUaW1lb3V0KDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9u
ZSwgdG1wLmRhdGEpCi0gICAgICAgIHdpdGggdG1wOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRO
b3RFcXVhbChOb25lLCB0bXAuZGF0YSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGhy
ZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQsIHRtcC5kYXRhLnRocmVhZF9pZCkKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0aW1lLnRpbWUoKSArIDEgPj0gdG1wLmRhdGEuYWxhcm1f
dGltZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB0bXAuZGF0YSkKLQotICAgIGRl
ZiB0ZXN0X25lc3RlZF9pbm5lcl9wcmVjZWRlbmNlKHNlbGYpOgotICAgICAgICB0bXBfb3V0ZXIg
PSBUaW1lb3V0KDIpCi0gICAgICAgIHRtcF9pbm5lciA9IFRpbWVvdXQoMSkKLSAgICAgICAgd2l0
aCB0bXBfb3V0ZXI6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRh
LCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHdpdGggdG1wX2lubmVyOgotICAgICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX2lubmVyLmRhdGEsIFRpbWVvdXQuY3VycmVu
dCgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91
dC5jdXJyZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJy
ZW50KCkpCi0KLSAgICBkZWYgdGVzdF9uZXN0ZWRfb3V0ZXJfcHJlY2VkZW5jZShzZWxmKToKLSAg
ICAgICAgdG1wX291dGVyID0gVGltZW91dCgxKQotICAgICAgICB0bXBfaW5uZXIgPSBUaW1lb3V0
KDIpCi0gICAgICAgIHdpdGggdG1wX291dGVyOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICB3aXRoIHRt
cF9pbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRh
LCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291
dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3Rfbm9fdGltZW91dChzZWxmKToK
LSAgICAgICAgd2l0aCBUaW1lb3V0KDIpOgotICAgICAgICAgICAgdGltZS5zbGVlcCgxKQotCi0g
ICAgZGVmIHRlc3RfYmFzaWNfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNob3VsZF90aW1l
b3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgdGlt
ZS5zbGVlcCgyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHNob3Vs
ZF90aW1lb3V0KQotCi0gICAgZGVmIHRlc3RfZXhjZXB0aW9uX2NvbnN0cnVjdG9yX3RpbWVvdXQo
c2VsZik6Ci0gICAgICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBU
aW1lb3V0KDEsIEV4Y2VwdGlvbignVGhpcyBzaG91bGQgYmUgcmFpc2VkJykpOgotICAgICAgICAg
ICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjZXB0aW9u
LCBzaG91bGRfdGltZW91dCkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9pbm5lcl90aW1lb3V0KHNl
bGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGlt
ZW91dCgzLCBFeGNlcHRpb24oIlRoaXMgc2hvdWxkbid0IGJlIHJhaXNlZCIpKToKLSAgICAgICAg
ICAgICAgICB3aXRoIFRpbWVvdXQoMSk6Ci0gICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAo
MikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzaG91bGRfdGltZW91
dCkKLQotICAgIGRlZiB0ZXN0X25lc3RlZF9vdXRlcl90aW1lb3V0KHNlbGYpOgotICAgICAgICBk
ZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdpdGggVGltZW91dCgxKToKLSAgICAg
ICAgICAgICAgICB3aXRoIFRpbWVvdXQoMywgRXhjZXB0aW9uKCJUaGlzIHNob3VsZG4ndCBiZSBy
YWlzZWQiKSk6Ci0gICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzaG91bGRfdGltZW91dCkKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3MucHkJKHJldmlz
aW9uIDI2NjE2NykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zaW11bGF0b3JfcHJv
Y2Vzcy5weQkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIGNsYXNzIFNpbXVsYXRv
clByb2Nlc3MoU2VydmVyUHJvY2Vzcyk6CiAgICAgICAgIHNlbGYuX3N5c3RlbV9waWQgPSBzZWxm
Ll9waWQKIAogICAgICAgICAjIEZJWE1FIDxyZGFyOi8vcHJvYmxlbS81NzAzMjA0Mj46IFRoaXMg
dGltZW91dCBzaG91bGQgYmUgMTUgc2Vjb25kcwotICAgICAgICB3aXRoIFRpbWVvdXQoMzAsIFJ1
bnRpbWVFcnJvcignVGltZWQgb3V0IHdhaXRpbmcgZm9yIHBpZCB7fSB0byBjb25uZWN0IGF0IHBv
cnQge30nLmZvcm1hdChzZWxmLl9waWQsIHNlbGYuX3RhcmdldF9ob3N0Lmxpc3RlbmluZ19wb3J0
KCkpKSk6CisgICAgICAgIHdpdGggVGltZW91dCgzMCwgaGFuZGxlcj1SdW50aW1lRXJyb3IoJ1Rp
bWVkIG91dCB3YWl0aW5nIGZvciBwaWQge30gdG8gY29ubmVjdCBhdCBwb3J0IHt9Jy5mb3JtYXQo
c2VsZi5fcGlkLCBzZWxmLl90YXJnZXRfaG9zdC5saXN0ZW5pbmdfcG9ydCgpKSksIHBhdGNoPUZh
bHNlKToKICAgICAgICAgICAgIHN0ZGluID0gTm9uZQogICAgICAgICAgICAgc3Rkb3V0ID0gTm9u
ZQogICAgICAgICAgICAgc3RkZXJyID0gTm9uZQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkveGNvZGUvc2ltdWxhdGVkX2RldmljZS5weQkocmV2aXNpb24gMjY2MTY3KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0ZWRfZGV2aWNlLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC02NDAsNyArNjQwLDcgQEAgY2xhc3MgU2ltdWxhdGVkRGV2aWNlKG9iamVjdCk6
CiAKICAgICAgICAgb3V0cHV0ID0gTm9uZQogCi0gICAgICAgIHdpdGggVGltZW91dCh0aW1lb3V0
LCBSdW50aW1lRXJyb3IodSdUaW1lZCBvdXQgd2FpdGluZyBmb3IgcHJvY2VzcyB0byBvcGVuIHt9
IG9uIHt9Jy5mb3JtYXQoYnVuZGxlX2lkLCBzZWxmLnVkaWQpKSk6CisgICAgICAgIHdpdGggVGlt
ZW91dCh0aW1lb3V0LCBoYW5kbGVyPVJ1bnRpbWVFcnJvcih1J1RpbWVkIG91dCB3YWl0aW5nIGZv
ciBwcm9jZXNzIHRvIG9wZW4ge30gb24ge30nLmZvcm1hdChidW5kbGVfaWQsIHNlbGYudWRpZCkp
LCBwYXRjaD1GYWxzZSk6CiAgICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAg
IG91dHB1dCA9IHNlbGYuZXhlY3V0aXZlLnJ1bl9jb21tYW5kKAogICAgICAgICAgICAgICAgICAg
ICBbJ3hjcnVuJywgJ3NpbWN0bCcsICdsYXVuY2gnLCBzZWxmLnVkaWQsIGJ1bmRsZV9pZF0gKyBh
cmdzLApJbmRleDogVG9vbHMvZ2xpYi9hcGlfdGVzdF9ydW5uZXIucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvZ2xpYi9hcGlfdGVzdF9ydW5uZXIucHkJKHJldmlzaW9uIDI2NjE2NykKKysrIFRvb2xz
L2dsaWIvYXBpX3Rlc3RfcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBA
IHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4odG9wX2xldmUKIGltcG9ydCBjb21tb24K
IGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKIGZyb20gd2Via2l0cHkuY29t
bW9uLnRlc3RfZXhwZWN0YXRpb25zIGltcG9ydCBUZXN0RXhwZWN0YXRpb25zCi1mcm9tIHdlYmtp
dHB5LmNvbW1vbi50aW1lb3V0X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKK2Zyb20gd2Via2l0Y29y
ZXB5IGltcG9ydCBUaW1lb3V0CiAKIGlmIG9zLm5hbWUgPT0gJ3Bvc2l4JyBhbmQgc3lzLnZlcnNp
b25faW5mb1swXSA8IDM6CiAgICAgdHJ5OgpAQCAtMjMwLDcgKzIzMCw3IEBAIGNsYXNzIFRlc3RS
dW5uZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBjb21tb24ucGFyc2Vfb3V0cHV0X2xpbmVz
KGZkLCBzeXMuc3Rkb3V0LndyaXRlKQogICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNlbGYuX3dh
aXRwaWQocGlkKQogICAgICAgICAgICAgICAgIG9zLmNsb3NlKGZkKQotICAgICAgICAgICAgZXhj
ZXB0IFJ1bnRpbWVFcnJvcjoKKyAgICAgICAgICAgIGV4Y2VwdCBUaW1lb3V0LkV4Y2VwdGlvbjoK
ICAgICAgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3MocGlkKQogICAgICAgICAgICAgICAg
IG9zLmNsb3NlKGZkKQogICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIioqVElNRU9V
VCoqICVzXG4iICUgc3VidGVzdCkK
</data>
<flag name="review"
          id="422652"
          type_id="1"
          status="+"
          setter="dewei_zhu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407374</attachid>
            <date>2020-08-26 21:17:40 -0700</date>
            <delta_ts>2020-08-27 07:16:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200826211738.patch</filename>
            <type>text/plain</type>
            <size>14078</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjIyMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDIwLTA4LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERld2VpIFpodS4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAg
KiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3RpbWVvdXQucHk6
CisgICAgICAgIChUaW1lb3V0Ll9fZW50ZXJfXyk6IEZvcndhcmQgcGF0Y2ggZmxhZyB0byBkaXNh
YmxlIGNvbnRleHQuCisgICAgICAgIChUaW1lb3V0Ll9fZXhpdF9fKTogRGl0dG8uCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5OiBSZXBsYWNlIHdp
dGggd2Via2l0Y29yZXB5J3MgVGltZW91dCBvYmplY3QuCisgICAgICAgIChUaW1lb3V0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHRf
dW5pdHRlc3QucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3Np
bXVsYXRvcl9wcm9jZXNzLnB5OgorICAgICAgICAoU2ltdWxhdG9yUHJvY2Vzcy5fc3RhcnQpOiBP
cHQtb3V0IG9mIHBhdGNoaW5nIHRpbWUuc2xlZXAoKS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHk6CisgICAgICAgIChTaW11bGF0ZWREZXZpY2Uu
bGF1bmNoX2FwcCk6IE9wdC1vdXQgb2YgcGF0Y2hpbmcgdGltZS5zbGVlcCgpLgorICAgICAgICAq
IGdsaWIvYXBpX3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoVGVzdFJ1bm5lci5fcnVuX2dvb2ds
ZV90ZXN0KTogVXNlIHNwZWNpZmljIFRpbWVvdXQgZXhjZXB0aW9uLgorCiAyMDIwLTA4LTI2ICBD
YXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdW1dQRV0gQWRkIGJvdHMgZm9yIGdlbmVyYXRpbmcgbmlnaHRseSBidW5kbGUgcGFja2Fn
ZXMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3Jl
cHkvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQkocmV2aXNpb24gMjY2MjIwKQorKysg
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRf
Xy5weQkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBmcm9tIHdlYmtpdGNvcmVweS50
aW1lb3V0IGltcG9ydCBUaW1lb3V0CiBmcm9tIHdlYmtpdGNvcmVweS5zdWJwcm9jZXNzX3V0aWxz
IGltcG9ydCBUaW1lb3V0RXhwaXJlZCwgQ29tcGxldGVkUHJvY2VzcywgcnVuCiBmcm9tIHdlYmtp
dGNvcmVweS5vdXRwdXRfY2FwdHVyZSBpbXBvcnQgTG9nZ2VyQ2FwdHVyZSwgT3V0cHV0Q2FwdHVy
ZSwgT3V0cHV0RHVwbGljYXRlCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDQsIDEpCit2ZXJzaW9u
ID0gVmVyc2lvbigwLCA0LCAyKQogCiBmcm9tIHdlYmtpdGNvcmVweS5hdXRvaW5zdGFsbCBpbXBv
cnQgUGFja2FnZSwgQXV0b0luc3RhbGwKIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6Cklu
ZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rp
bWVvdXQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29y
ZXB5L3dlYmtpdGNvcmVweS90aW1lb3V0LnB5CShyZXZpc2lvbiAyNjYyMjApCisrKyBUb29scy9T
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3RpbWVvdXQucHkJKHdv
cmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBjbGFzcyBUaW1lb3V0KG9iamVjdCk6CiAg
ICAgICAgICAgICBzZWxmLl9wYXRjaCA9IE5vbmUKIAogICAgIGRlZiBfX2VudGVyX18oc2VsZik6
Ci0gICAgICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0oKToKKyAgICAgICAgd2l0aCBzZWxmLkRp
c2FibGVBbGFybShwYXRjaD1zZWxmLl9wYXRjaCk6CiAgICAgICAgICAgICBzZWxmLmRhdGEgPSBz
ZWxmLkRhdGEodGltZS50aW1lKCkgKyBzZWxmLl90aW1lb3V0LCBzZWxmLl9oYW5kbGVyKQogICAg
ICAgICAgICAgYmlzZWN0Lmluc29ydChzZWxmLl9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdl
dHBpZCgpXSwgc2VsZi5kYXRhKQogCkBAIC0xODEsNyArMTgxLDcgQEAgY2xhc3MgVGltZW91dChv
YmplY3QpOgogICAgICAgICBpZiBzZWxmLl9wYXRjaDoKICAgICAgICAgICAgIHNlbGYuX3BhdGNo
Ll9fZXhpdF9fKCphcmdzLCAqKmt3YXJncykKIAotICAgICAgICB3aXRoIHNlbGYuRGlzYWJsZUFs
YXJtKCk6CisgICAgICAgIHdpdGggc2VsZi5EaXNhYmxlQWxhcm0ocGF0Y2g9c2VsZi5fcGF0Y2gp
OgogICAgICAgICAgICAgaWYgbm90IHNlbGYuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0
cGlkKCldOgogICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignTm8gdGltZW91dCBy
ZWdpc3RlcmVkJykKICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3Mu
Z2V0cGlkKCldLnJlbW92ZShzZWxmLmRhdGEpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5CShyZXZpc2lvbiAyNjYyMjApCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTIwLDEwMCArMjAsNCBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG1hdGgKLWltcG9ydCBvcwotaW1wb3J0
IHNpZ25hbAotaW1wb3J0IHRpbWUKLWltcG9ydCB0aHJlYWRpbmcKLQotX2xvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLWNsYXNzIFRpbWVvdXQob2JqZWN0KToKLQotICAgIHRo
cmVhZF9leGNlcHRpb24gPSBSdW50aW1lRXJyb3IoJ1RpbWVvdXQgb3JpZ2luYXRlcyBmcm9tIGEg
ZGlmZmVyZW50IHRocmVhZCcpCi0gICAgX3Byb2Nlc3NfdG9fdGltZW91dF9tYXAgPSB7fQotCi0g
ICAgY2xhc3MgVGltZW91dERhdGEob2JqZWN0KToKLQotICAgICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgYWxhcm1fdGltZSwgaGFuZGxlcik6Ci0gICAgICAgICAgICBzZWxmLmFsYXJtX3RpbWUgPSBh
bGFybV90aW1lCi0gICAgICAgICAgICBzZWxmLmhhbmRsZXIgPSBoYW5kbGVyCi0gICAgICAgICAg
ICBzZWxmLnRocmVhZF9pZCA9IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLmlkZW50Ci0KLSAg
ICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIGRlZmF1bHRfaGFuZGxlcihzaWdudW0sIGZyYW1lKToK
LSAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdUaW1lb3V0IGFsYXJtIHdhcyB0cmlnZ2VyZWQn
KQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBjdXJyZW50KCk6Ci0gICAgICAgIHJlc3Vs
dCA9IFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXAuZ2V0KG9zLmdldHBpZCgpLCBbXSkK
LSAgICAgICAgaWYgbm90IHJlc3VsdDoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAg
IGlmIHJlc3VsdFswXS50aHJlYWRfaWQgIT0gdGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRl
bnQ6Ci0gICAgICAgICAgICBfbG9nLmNyaXRpY2FsKCdVc2luZyBib3RoIGFsYXJtcyBhbmQgdGhy
ZWFkaW5nIGluIHRoZSBzYW1lIHByb2Nlc3MsIHRoaXMgaXMgdW5zdXBwb3J0ZWQnKQotICAgICAg
ICAgICAgcmFpc2UgVGltZW91dC50aHJlYWRfZXhjZXB0aW9uCi0gICAgICAgIHJldHVybiByZXN1
bHRbMF0KLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZWNvbmRzPTEsIGhhbmRsZXI9Tm9uZSk6
Ci0gICAgICAgIGlmIHNlY29uZHMgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJv
cignQ2Fubm90IGhhdmUgYSB0aW1lb3V0IG9mIDAgc2Vjb25kcycpCi0KLSAgICAgICAgaWYgaXNp
bnN0YW5jZShoYW5kbGVyLCBCYXNlRXhjZXB0aW9uKToKLSAgICAgICAgICAgIGV4Y2VwdGlvbiA9
IGhhbmRsZXIKLQotICAgICAgICAgICAgZGVmIGV4Y2VwdGlvbl9oYW5kbGVyKHNpZ251bSwgZnJh
bWUpOgotICAgICAgICAgICAgICAgIHJhaXNlIGV4Y2VwdGlvbgotCi0gICAgICAgICAgICBoYW5k
bGVyID0gZXhjZXB0aW9uX2hhbmRsZXIKLQotICAgICAgICBzZWxmLl90aW1lb3V0ID0gc2Vjb25k
cwotICAgICAgICBzZWxmLl9oYW5kbGVyID0gaGFuZGxlciBpZiBoYW5kbGVyIGVsc2UgVGltZW91
dC5kZWZhdWx0X2hhbmRsZXIKLSAgICAgICAgc2VsZi5kYXRhID0gTm9uZQotCi0gICAgQHN0YXRp
Y21ldGhvZAotICAgIGRlZiBfYmluZF90aW1lb3V0X2RhdGFfdG9fYWxhcm0oZGF0YSk6Ci0gICAg
ICAgIGRlZiBoYW5kbGVyKHNpZ251bSwgZnJhbWUpOgotICAgICAgICAgICAgYXNzZXJ0IHNpZ251
bSA9PSBzaWduYWwuU0lHQUxSTQotICAgICAgICAgICAgaWYgZGF0YS50aHJlYWRfaWQgIT0gdGhy
ZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkuaWRlbnQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVGlt
ZW91dC50aHJlYWRfZXhjZXB0aW9uCi0gICAgICAgICAgICBkYXRhLmhhbmRsZXIoc2lnbnVtLCBm
cmFtZSkKLQotICAgICAgICBjdXJyZW50X3RpbWUgPSB0aW1lLnRpbWUoKQotICAgICAgICBpZiBk
YXRhLmFsYXJtX3RpbWUgPD0gY3VycmVudF90aW1lOgotICAgICAgICAgICAgaGFuZGxlcihzaWdu
YWwuU0lHQUxSTSwgTm9uZSkKLQotICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdBTFJN
LCBoYW5kbGVyKQotICAgICAgICBzaWduYWwuYWxhcm0oaW50KG1hdGguY2VpbChkYXRhLmFsYXJt
X3RpbWUgLSBjdXJyZW50X3RpbWUpKSkKLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAg
ICAgIHNpZ25hbC5hbGFybSgwKSAgIyBJbWllZGlhdGx5IGRpc2FibGUgdGhlIGFsYXJtIHNvIHdl
IGFyZW4ndCBpbnRlcnVwdGVkLgotICAgICAgICBzZWxmLmRhdGEgPSBUaW1lb3V0LlRpbWVvdXRE
YXRhKHRpbWUudGltZSgpICsgc2VsZi5fdGltZW91dCwgc2VsZi5faGFuZGxlcikKLSAgICAgICAg
Y3VycmVudF90aW1lb3V0ID0gVGltZW91dC5jdXJyZW50KCkKLQotICAgICAgICAjIEFub3RoZXIg
dGltZW91dCBpcyBtb3JlIHVyZ2VudC4KLSAgICAgICAgaWYgY3VycmVudF90aW1lb3V0IGFuZCBj
dXJyZW50X3RpbWVvdXQuYWxhcm1fdGltZSA8IHNlbGYuZGF0YS5hbGFybV90aW1lOgotICAgICAg
ICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBb
b3MuZ2V0cGlkKCldKSAtIDEpOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuZGF0YS5hbGFybV90
aW1lIDwgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV1baSArIDFd
LmFsYXJtX3RpbWU6Ci0gICAgICAgICAgICAgICAgICAgIFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGlt
ZW91dF9tYXBbb3MuZ2V0cGlkKCldLmluc2VydChpLCBzZWxmLmRhdGEpCi0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrCi0gICAgICAgICAgICBUaW1lb3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFw
W29zLmdldHBpZCgpXS5hcHBlbmQoc2VsZi5kYXRhKQotCi0gICAgICAgICMgVGhpcyBpcyB0aGUg
bW9zdCB1cmdlbnQgdGltZW91dAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgVGltZW91dC5f
cHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV0gPSBbc2VsZi5kYXRhXSArIFRpbWVv
dXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXAuZ2V0KG9zLmdldHBpZCgpLCBbXSkKLQotICAgICAg
ICBUaW1lb3V0Ll9iaW5kX3RpbWVvdXRfZGF0YV90b19hbGFybShUaW1lb3V0LmN1cnJlbnQoKSkK
LSAgICAgICAgcmV0dXJuIHNlbGYKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwg
ZXhjX3ZhbHVlLCB0cmFjZWJhY2spOgotICAgICAgICBzaWduYWwuYWxhcm0oMCkgICMgSW1pZWRp
YXRseSBkaXNhYmxlIHRoZSBhbGFybSBzbyB3ZSBhcmVuJ3QgaW50ZXJ1cHRlZC4KLQotICAgICAg
ICBpZiBub3QgVGltZW91dC5fcHJvY2Vzc190b190aW1lb3V0X21hcFtvcy5nZXRwaWQoKV06Ci0g
ICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ05vIHRpbWVvdXQgcmVnaXN0ZXJlZCcpCi0g
ICAgICAgIFRpbWVvdXQuX3Byb2Nlc3NfdG9fdGltZW91dF9tYXBbb3MuZ2V0cGlkKCldLnJlbW92
ZShzZWxmLmRhdGEpCi0gICAgICAgIHNlbGYuZGF0YSA9IE5vbmUKLQotICAgICAgICBpZiBUaW1l
b3V0Ll9wcm9jZXNzX3RvX3RpbWVvdXRfbWFwW29zLmdldHBpZCgpXToKLSAgICAgICAgICAgIFRp
bWVvdXQuX2JpbmRfdGltZW91dF9kYXRhX3RvX2FsYXJtKFRpbWVvdXQuY3VycmVudCgpKQorZnJv
bSB3ZWJraXRjb3JlcHkgaW1wb3J0IFRpbWVvdXQKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3RpbWVvdXRfY29udGV4dF91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHRfdW5pdHRlc3QucHkJKHJl
dmlzaW9uIDI2NjIyMCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3RpbWVvdXRf
Y29udGV4dF91bml0dGVzdC5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDk4ICswLDAgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwot
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IHRpbWUKLWltcG9ydCB0
aHJlYWRpbmcKLWltcG9ydCB1bml0dGVzdAotCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0
X2NvbnRleHQgaW1wb3J0IFRpbWVvdXQKLQotCi1jbGFzcyBUaW1lb3V0Q29udGV4dFRlc3RzKHVu
aXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0ZXN0X2N1cnJlbnRfdGltZW91dChzZWxmKToK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAg
ICAgd2l0aCBUaW1lb3V0KDEpIGFzIHRtcDoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
dG1wLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIFRpbWVvdXQuY3VycmVudCgpKQotCi0gICAgZGVmIHRlc3RfaW52YWxpZF90aW1lb3V0KHNl
bGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIFRpbWVvdXQsIDAp
Ci0KLSAgICBkZWYgdGVzdF90aW1lb3V0X2RhdGEoc2VsZik6Ci0gICAgICAgIHRtcCA9IFRpbWVv
dXQoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB0bXAuZGF0YSkKLSAgICAgICAg
d2l0aCB0bXA6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKE5vbmUsIHRtcC5kYXRh
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0aHJlYWRpbmcuY3VycmVudF90aHJlYWQo
KS5pZGVudCwgdG1wLmRhdGEudGhyZWFkX2lkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KHRpbWUudGltZSgpICsgMSA+PSB0bXAuZGF0YS5hbGFybV90aW1lKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIHRtcC5kYXRhKQotCi0gICAgZGVmIHRlc3RfbmVzdGVkX2lubmVyX3By
ZWNlZGVuY2Uoc2VsZik6Ci0gICAgICAgIHRtcF9vdXRlciA9IFRpbWVvdXQoMikKLSAgICAgICAg
dG1wX2lubmVyID0gVGltZW91dCgxKQotICAgICAgICB3aXRoIHRtcF9vdXRlcjoKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQot
ICAgICAgICAgICAgd2l0aCB0bXBfaW5uZXI6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCh0bXBfaW5uZXIuZGF0YSwgVGltZW91dC5jdXJyZW50KCkpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1lb3V0LmN1cnJlbnQoKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBUaW1lb3V0LmN1cnJlbnQoKSkKLQotICAgIGRlZiB0ZXN0
X25lc3RlZF9vdXRlcl9wcmVjZWRlbmNlKHNlbGYpOgotICAgICAgICB0bXBfb3V0ZXIgPSBUaW1l
b3V0KDEpCi0gICAgICAgIHRtcF9pbm5lciA9IFRpbWVvdXQoMikKLSAgICAgICAgd2l0aCB0bXBf
b3V0ZXI6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRtcF9vdXRlci5kYXRhLCBUaW1l
b3V0LmN1cnJlbnQoKSkKLSAgICAgICAgICAgIHdpdGggdG1wX2lubmVyOgotICAgICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwodG1wX291dGVyLmRhdGEsIFRpbWVvdXQuY3VycmVudCgpKQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bXBfb3V0ZXIuZGF0YSwgVGltZW91dC5jdXJy
ZW50KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgVGltZW91dC5jdXJyZW50KCkp
Ci0KLSAgICBkZWYgdGVzdF9ub190aW1lb3V0KHNlbGYpOgotICAgICAgICB3aXRoIFRpbWVvdXQo
Mik6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKDEpCi0KLSAgICBkZWYgdGVzdF9iYXNpY190aW1l
b3V0KHNlbGYpOgotICAgICAgICBkZWYgc2hvdWxkX3RpbWVvdXQoKToKLSAgICAgICAgICAgIHdp
dGggVGltZW91dCgxKToKLSAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2hvdWxkX3RpbWVvdXQpCi0KLSAgICBkZWYg
dGVzdF9leGNlcHRpb25fY29uc3RydWN0b3JfdGltZW91dChzZWxmKToKLSAgICAgICAgZGVmIHNo
b3VsZF90aW1lb3V0KCk6Ci0gICAgICAgICAgICB3aXRoIFRpbWVvdXQoMSwgRXhjZXB0aW9uKCdU
aGlzIHNob3VsZCBiZSByYWlzZWQnKSk6Ci0gICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhFeGNlcHRpb24sIHNob3VsZF90aW1lb3V0KQotCi0g
ICAgZGVmIHRlc3RfbmVzdGVkX2lubmVyX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIGRlZiBzaG91
bGRfdGltZW91dCgpOgotICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDMsIEV4Y2VwdGlvbigiVGhp
cyBzaG91bGRuJ3QgYmUgcmFpc2VkIikpOgotICAgICAgICAgICAgICAgIHdpdGggVGltZW91dCgx
KToKLSAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyKQotICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhSdW50aW1lRXJyb3IsIHNob3VsZF90aW1lb3V0KQotCi0gICAgZGVmIHRlc3RfbmVz
dGVkX291dGVyX3RpbWVvdXQoc2VsZik6Ci0gICAgICAgIGRlZiBzaG91bGRfdGltZW91dCgpOgot
ICAgICAgICAgICAgd2l0aCBUaW1lb3V0KDEpOgotICAgICAgICAgICAgICAgIHdpdGggVGltZW91
dCgzLCBFeGNlcHRpb24oIlRoaXMgc2hvdWxkbid0IGJlIHJhaXNlZCIpKToKLSAgICAgICAgICAg
ICAgICAgICAgdGltZS5zbGVlcCgyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1l
RXJyb3IsIHNob3VsZF90aW1lb3V0KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L3NpbXVsYXRvcl9wcm9jZXNzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weQkocmV2aXNpb24gMjY2MjIwKQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9wcm9jZXNzLnB5CSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQsNyArMTA0LDcgQEAgY2xhc3MgU2ltdWxhdG9yUHJvY2VzcyhTZXJ2ZXJQcm9jZXNz
KToKICAgICAgICAgc2VsZi5fc3lzdGVtX3BpZCA9IHNlbGYuX3BpZAogCiAgICAgICAgICMgRklY
TUUgPHJkYXI6Ly9wcm9ibGVtLzU3MDMyMDQyPjogVGhpcyB0aW1lb3V0IHNob3VsZCBiZSAxNSBz
ZWNvbmRzCi0gICAgICAgIHdpdGggVGltZW91dCgzMCwgUnVudGltZUVycm9yKCdUaW1lZCBvdXQg
d2FpdGluZyBmb3IgcGlkIHt9IHRvIGNvbm5lY3QgYXQgcG9ydCB7fScuZm9ybWF0KHNlbGYuX3Bp
ZCwgc2VsZi5fdGFyZ2V0X2hvc3QubGlzdGVuaW5nX3BvcnQoKSkpKToKKyAgICAgICAgd2l0aCBU
aW1lb3V0KDMwLCBoYW5kbGVyPVJ1bnRpbWVFcnJvcignVGltZWQgb3V0IHdhaXRpbmcgZm9yIHBp
ZCB7fSB0byBjb25uZWN0IGF0IHBvcnQge30nLmZvcm1hdChzZWxmLl9waWQsIHNlbGYuX3Rhcmdl
dF9ob3N0Lmxpc3RlbmluZ19wb3J0KCkpKSwgcGF0Y2g9RmFsc2UpOgogICAgICAgICAgICAgc3Rk
aW4gPSBOb25lCiAgICAgICAgICAgICBzdGRvdXQgPSBOb25lCiAgICAgICAgICAgICBzdGRlcnIg
PSBOb25lCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZp
Y2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS94Y29kZS9zaW11bGF0
ZWRfZGV2aWNlLnB5CShyZXZpc2lvbiAyNjYyMjApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTY0MCw3ICs2NDAs
NyBAQCBjbGFzcyBTaW11bGF0ZWREZXZpY2Uob2JqZWN0KToKIAogICAgICAgICBvdXRwdXQgPSBO
b25lCiAKLSAgICAgICAgd2l0aCBUaW1lb3V0KHRpbWVvdXQsIFJ1bnRpbWVFcnJvcih1J1RpbWVk
IG91dCB3YWl0aW5nIGZvciBwcm9jZXNzIHRvIG9wZW4ge30gb24ge30nLmZvcm1hdChidW5kbGVf
aWQsIHNlbGYudWRpZCkpKToKKyAgICAgICAgd2l0aCBUaW1lb3V0KHRpbWVvdXQsIGhhbmRsZXI9
UnVudGltZUVycm9yKHUnVGltZWQgb3V0IHdhaXRpbmcgZm9yIHByb2Nlc3MgdG8gb3BlbiB7fSBv
biB7fScuZm9ybWF0KGJ1bmRsZV9pZCwgc2VsZi51ZGlkKSksIHBhdGNoPUZhbHNlKToKICAgICAg
ICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5leGVjdXRp
dmUucnVuX2NvbW1hbmQoCiAgICAgICAgICAgICAgICAgICAgIFsneGNydW4nLCAnc2ltY3RsJywg
J2xhdW5jaCcsIHNlbGYudWRpZCwgYnVuZGxlX2lkXSArIGFyZ3MsCkluZGV4OiBUb29scy9nbGli
L2FwaV90ZXN0X3J1bm5lci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9nbGliL2FwaV90ZXN0X3J1
bm5lci5weQkocmV2aXNpb24gMjY2MjIwKQorKysgVG9vbHMvZ2xpYi9hcGlfdGVzdF9ydW5uZXIu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAgc3lzLnBhdGguaW5zZXJ0KDAsIG9z
LnBhdGguam9pbih0b3BfbGV2ZQogaW1wb3J0IGNvbW1vbgogZnJvbSB3ZWJraXRweS5jb21tb24u
aG9zdCBpbXBvcnQgSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24udGVzdF9leHBlY3RhdGlvbnMg
aW1wb3J0IFRlc3RFeHBlY3RhdGlvbnMKLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29u
dGV4dCBpbXBvcnQgVGltZW91dAorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFRpbWVvdXQKIAog
aWYgb3MubmFtZSA9PSAncG9zaXgnIGFuZCBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKICAgICB0
cnk6CkBAIC0yMzAsNyArMjMwLDcgQEAgY2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAg
ICAgICAgICAgIGNvbW1vbi5wYXJzZV9vdXRwdXRfbGluZXMoZmQsIHN5cy5zdGRvdXQud3JpdGUp
CiAgICAgICAgICAgICAgICAgc3RhdHVzID0gc2VsZi5fd2FpdHBpZChwaWQpCiAgICAgICAgICAg
ICAgICAgb3MuY2xvc2UoZmQpCi0gICAgICAgICAgICBleGNlcHQgUnVudGltZUVycm9yOgorICAg
ICAgICAgICAgZXhjZXB0IFRpbWVvdXQuRXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHNlbGYu
X2tpbGxfcHJvY2VzcyhwaWQpCiAgICAgICAgICAgICAgICAgb3MuY2xvc2UoZmQpCiAgICAgICAg
ICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiKipUSU1FT1VUKiogJXNcbiIgJSBzdWJ0ZXN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407396</attachid>
            <date>2020-08-27 07:16:13 -0700</date>
            <delta_ts>2020-08-28 08:21:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215584-20200827071612.patch</filename>
            <type>text/plain</type>
            <size>5094</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NjIzMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTA4LTI3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBNb3ZlIFRpbWVvdXQgdG8gd2Via2l0Y29yZXB5
IChQYXJ0IDMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTU1ODQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY3MjcwNzEzPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5OiBVc2Ugd2Via2l0Y29y
ZXB5J3MgVGltZW91dCBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24v
dGltZW91dF9jb250ZXh0LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
cG9ydC9zaW11bGF0b3JfcHJvY2Vzcy5weTogVXNlIHdlYmtpdGNvcmVweSdzIFRpbWVvdXQgb2Jq
ZWN0LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0LnB5
OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZp
Y2UucHk6IERpdHRvLgorCiAyMDIwLTA4LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgVHJhbnNmb3JtU3RyZWFtCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvd2Vic2VydmVyX2JlbmNobWFy
a19ydW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL3dlYnNlcnZlcl9iZW5jaG1hcmtfcnVubmVyLnB5CShyZXZpc2lvbiAyNjYyMzEp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvd2Vic2VydmVyX2Jl
bmNobWFya19ydW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCwxMCBAQCBpbXBvcnQg
anNvbgogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBzeXMKIAorZnJvbSB3ZWJraXRjb3JlcHkgaW1w
b3J0IFRpbWVvdXQKKwogZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmJlbmNobWFya19y
dW5uZXIgaW1wb3J0IEJlbmNobWFya1J1bm5lcgogZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVu
bmVyLmh0dHBfc2VydmVyX2RyaXZlci5odHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQg
SFRUUFNlcnZlckRyaXZlckZhY3RvcnkKLWZyb20gd2Via2l0cHkuY29tbW9uLnRpbWVvdXRfY29u
dGV4dCBpbXBvcnQgVGltZW91dAogCiBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgogICAg
IGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vdGltZW91dF9jb250ZXh0LnB5CShyZXZpc2lvbiAyNjYyMzEp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi90aW1lb3V0X2NvbnRleHQucHkJKG5v
bmV4aXN0ZW50KQpAQCAtMSwyMyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMg
YXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLWZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3Byb2Nlc3MucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NpbXVsYXRvcl9wcm9jZXNzLnB5CShyZXZp
c2lvbiAyNjYyMzEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2ltdWxhdG9yX3By
b2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDggQEAgaW1wb3J0IG9zCiBpbXBv
cnQgc3lzCiBpbXBvcnQgdGltZQogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi50aW1lb3V0X2NvbnRl
eHQgaW1wb3J0IFRpbWVvdXQKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBUaW1lb3V0CisKIGZy
b20gd2Via2l0cHkucG9ydC5zZXJ2ZXJfcHJvY2VzcyBpbXBvcnQgU2VydmVyUHJvY2VzcwogCiAK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0LnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvd2ViZHJpdmVyX3BsdC9saXZlcGx0
LnB5CShyZXZpc2lvbiAyNjYyMzEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3dlYmRyaXZl
cl9wbHQvbGl2ZXBsdC5weQkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDYgQEAgZnJvbSBwbHRy
ZXN1bHRzIGltcG9ydCBQTFRSZXN1bHRzCiBmcm9tIHNlbGVuaXVtIGltcG9ydCB3ZWJkcml2ZXIK
IGZyb20gdGltZSBpbXBvcnQgc2xlZXAKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51
dGlscyBpbXBvcnQgZ2V0X2RyaXZlcl9iaW5hcnlfcGF0aAotZnJvbSB3ZWJraXRweS5jb21tb24u
dGltZW91dF9jb250ZXh0IGltcG9ydCBUaW1lb3V0CiAKICMgRklYTUU6IHdlIHdhbnQgdG8gYXZv
aWQgaGFyZGNvZGluZyB0aGUgb2Zmc2V0cwogIyB3ZSB1c2UgdGhpcyB0byBtYWtlIHN1cmUgdGhl
IHdpbmRvdy5pbm5lckhlaWdodCBvZiBlYWNoIGJyb3dzZXIgaXMgdGhlIHNhbWUKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdGVkX2RldmljZS5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3hjb2RlL3NpbXVsYXRlZF9kZXZpY2UucHkJKHJl
dmlzaW9uIDI2NjIzMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkveGNvZGUvc2ltdWxhdGVk
X2RldmljZS5weQkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3LDExIEBAIGltcG9ydCBwbGlz
dGxpYgogaW1wb3J0IHJlCiBpbXBvcnQgdGltZQogCi1mcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQg
VmVyc2lvbgorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IFZlcnNpb24sIFRpbWVvdXQKIAogZnJv
bSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRw
eS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhvc3QKLWZyb20gd2Via2l0
cHkuY29tbW9uLnRpbWVvdXRfY29udGV4dCBpbXBvcnQgVGltZW91dAogZnJvbSB3ZWJraXRweS5w
b3J0LmRldmljZSBpbXBvcnQgRGV2aWNlCiBmcm9tIHdlYmtpdHB5Lnhjb2RlLmRldmljZV90eXBl
IGltcG9ydCBEZXZpY2VUeXBlCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>