<?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>209776</bug_id>
          
          <creation_ts>2020-03-30 14:47:58 -0700</creation_ts>
          <short_desc>[ECMA-402] Intl.DateTimeFormat dateStyle/timeStyle missing in WebKit</short_desc>
          <delta_ts>2020-08-22 13:41:25 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>213425</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shane Carr">sffc</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>andy</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>sffc</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1635747</commentid>
    <comment_count>0</comment_count>
    <who name="Shane Carr">sffc</who>
    <bug_when>2020-03-30 14:47:58 -0700</bug_when>
    <thetext>The dateStyle/timeStyle options for Intl.DateTimeFormat are at Stage 3 in TC39; the proposal is on track to reach Stage 4 in the first half of this year, and the other major browser engines (V8 and SpiderMonkey) have had it ready for some time.

As usage of these features of Intl.DateTimeFormat increases throughout the ecosystem, WebKit users will be left behind with legacy polyfills, leading to broken web sites and/or poorer performance relative to other browsers.  At Google, we are currently weighing our options for calling these features of Intl.DateTimeFormat in supported environments in order to give users better performance and smaller download sizes.

ICU4C exposes C and C++ APIs that can be used to implement dateStyle/timeStyle.  Implementing dateStyle/timeStyle is largely a matter of adding the glue between JavaScript and ICU4C, as WebKit already does for other Intl types.

Proposal repo: https://github.com/tc39/proposal-intl-datetime-style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635835</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-30 16:39:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/61079779&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664940</commentid>
    <comment_count>2</comment_count>
      <attachid>402447</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-21 23:30:46 -0700</bug_when>
    <thetext>Created attachment 402447
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664949</commentid>
    <comment_count>3</comment_count>
      <attachid>402447</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 00:29:50 -0700</bug_when>
    <thetext>Comment on attachment 402447
Patch

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

&gt; JSTests/test262/expectations.yaml:1643
&gt; +  strict mode: &apos;Test262Error: Result for full with {} Expected SameValue(Â«14:12:47 PM Coordinated Universal TimeÂ», Â«2:12:47 PM Coordinated Universal TimeÂ») to be true&apos;

I think, this and the below test requires &quot;udatpg_getDefaultHourCycle&quot; to fix, which is introduced in ICU 67.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664953</commentid>
    <comment_count>4</comment_count>
      <attachid>402447</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 00:50:54 -0700</bug_when>
    <thetext>Comment on attachment 402447
Patch

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

&gt;&gt; JSTests/test262/expectations.yaml:1643
&gt;&gt; +  strict mode: &apos;Test262Error: Result for full with {} Expected SameValue(Â«14:12:47 PM Coordinated Universal TimeÂ», Â«2:12:47 PM Coordinated Universal TimeÂ») to be true&apos;
&gt; 
&gt; I think, this and the below test requires &quot;udatpg_getDefaultHourCycle&quot; to fix, which is introduced in ICU 67.

Or, I think we should first generate some pattern from generator to determine which is the right default hour-cycle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664957</commentid>
    <comment_count>5</comment_count>
      <attachid>402450</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 01:17:53 -0700</bug_when>
    <thetext>Created attachment 402450
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664959</commentid>
    <comment_count>6</comment_count>
      <attachid>402451</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 01:26:55 -0700</bug_when>
    <thetext>Created attachment 402451
Patch

WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665015</commentid>
    <comment_count>7</comment_count>
      <attachid>402469</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 07:37:33 -0700</bug_when>
    <thetext>Created attachment 402469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665019</commentid>
    <comment_count>8</comment_count>
      <attachid>402470</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 07:43:56 -0700</bug_when>
    <thetext>Created attachment 402470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665024</commentid>
    <comment_count>9</comment_count>
      <attachid>402470</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 07:50:22 -0700</bug_when>
    <thetext>Comment on attachment 402470
Patch

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

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:584
&gt; +    }

Even if `hour` is not specified `timeStyle` can use m_hourCycle. So we do not clear it at this point. Later, we will clear it if hour is null or timeStyle is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665027</commentid>
    <comment_count>10</comment_count>
      <attachid>402470</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-22 08:01:18 -0700</bug_when>
    <thetext>Comment on attachment 402470
Patch

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

I probably should’ve waited to review until the test results from EWS were in. R=me assuming everything passes.

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:641
&gt; +        auto toUDateFormatStyle = [](const String&amp; style) {

We often use the word parse for functions that interpret a string and return a parsed form of it. I think it would be good to name this parse instead of to.

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:642
&gt; +            if (style.isNull())

I don’t think we need to optimize the null case. I suggest leaving out this if statement.

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:644
&gt; +            if (style == &quot;full&quot;_s)

I am not sure that String == ASCIILiteral is properly implemented/optimized. In the past, in fact, sometimes it involved  creating and then destroying a String. Could you check on this?

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:680
&gt; +        UDateTimePatternGenerator* generator = udatpg_open(dataLocaleWithExtensions.data(), &amp;status);

auto?

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:748
&gt; +    auto toDateTimeStyle = [](const String&amp; style) {

Ditto.

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:749
&gt; +        if (style.isNull())

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665091</commentid>
    <comment_count>11</comment_count>
      <attachid>402470</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 10:32:26 -0700</bug_when>
    <thetext>Comment on attachment 402470
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:641
&gt;&gt; +        auto toUDateFormatStyle = [](const String&amp; style) {
&gt; 
&gt; We often use the word parse for functions that interpret a string and return a parsed form of it. I think it would be good to name this parse instead of to.

Nice. Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:642
&gt;&gt; +            if (style.isNull())
&gt; 
&gt; I don’t think we need to optimize the null case. I suggest leaving out this if statement.

Sounds nice. Done.

&gt;&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:644
&gt;&gt; +            if (style == &quot;full&quot;_s)
&gt; 
&gt; I am not sure that String == ASCIILiteral is properly implemented/optimized. In the past, in fact, sometimes it involved  creating and then destroying a String. Could you check on this?

Right! I thought the exact same thing while writing this code. So..., I ensured it :D

397 inline bool operator==(const String&amp; a, const char* b) { return equal(a.impl(), reinterpret_cast&lt;const LChar*&gt;(b)); }
398 inline bool operator==(const String&amp; a, ASCIILiteral b) { return equal(a.impl(), reinterpret_cast&lt;const LChar*&gt;(b.characters())); }

407 inline bool operator!=(const String&amp; a, const char* b) { return !equal(a.impl(), reinterpret_cast&lt;const LChar*&gt;(b)); }
408 inline bool operator!=(const String&amp; a, ASCIILiteral b) { return !equal(a.impl(), reinterpret_cast&lt;const LChar*&gt;(b.characters())); }

We can use ASCIILiteral :)

&gt;&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:680
&gt;&gt; +        UDateTimePatternGenerator* generator = udatpg_open(dataLocaleWithExtensions.data(), &amp;status);
&gt; 
&gt; auto?

Sounds nice. Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:748
&gt;&gt; +    auto toDateTimeStyle = [](const String&amp; style) {
&gt; 
&gt; Ditto.

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:749
&gt;&gt; +        if (style.isNull())
&gt; 
&gt; Ditto.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665173</commentid>
    <comment_count>12</comment_count>
      <attachid>402470</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-22 14:02:21 -0700</bug_when>
    <thetext>Comment on attachment 402470
Patch

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

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:631
&gt; +            throwTypeError(globalObject, scope, &quot;dateStyle or timeStyle requires all the date and time formats are not specified&quot;_s);

Maybe &quot;dateStyle and timeStyle may not be used with other DateTimeFormat options&quot;?

&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.h:81
&gt; +    enum class DateTimeStyle : uint8_t { None, Full, Long, Medium, Short };

What about just using UDateFormatStyle directly?
This is what I did in RelativeTimeFormat (with PluralRules as precedent).

&gt; JSTests/test262/expectations.yaml:1641
&gt; +test/intl402/DateTimeFormat/prototype/format/timedatestyle-en.js:

Is this failure due to ICU version? Can you explain in the ChangeLog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665216</commentid>
    <comment_count>13</comment_count>
      <attachid>402470</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 16:16:31 -0700</bug_when>
    <thetext>Comment on attachment 402470
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:631
&gt;&gt; +            throwTypeError(globalObject, scope, &quot;dateStyle or timeStyle requires all the date and time formats are not specified&quot;_s);
&gt; 
&gt; Maybe &quot;dateStyle and timeStyle may not be used with other DateTimeFormat options&quot;?

Sounds better! Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/IntlDateTimeFormat.h:81
&gt;&gt; +    enum class DateTimeStyle : uint8_t { None, Full, Long, Medium, Short };
&gt; 
&gt; What about just using UDateFormatStyle directly?
&gt; This is what I did in RelativeTimeFormat (with PluralRules as precedent).

One of the sad thing is that UDateFormatStyle is C enum. This means that it takes `int` size instead of `uint8_t` size, and it can affect on the sizeof(IntlDateTimeFormat). So I would like to stick on the above enum to keep size small :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665217</commentid>
    <comment_count>14</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-22 16:18:32 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #13)
&gt; One of the sad thing is that UDateFormatStyle is C enum. This means that it
&gt; takes `int` size instead of `uint8_t` size, and it can affect on the
&gt; sizeof(IntlDateTimeFormat). So I would like to stick on the above enum to
&gt; keep size small :)

Oh that&apos;s a good point. I&apos;d only been thinking about the time cost of converting back and forth.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665262</commentid>
    <comment_count>15</comment_count>
      <attachid>402470</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 19:29:27 -0700</bug_when>
    <thetext>Comment on attachment 402470
Patch

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

&gt;&gt; JSTests/test262/expectations.yaml:1641
&gt;&gt; +test/intl402/DateTimeFormat/prototype/format/timedatestyle-en.js:
&gt; 
&gt; Is this failure due to ICU version? Can you explain in the ChangeLog?

This is hcDefault&apos;s bug. Our IntlDateTimeFormat is not spec compliant yet about hcDefault. We are guessing hcDefault value by parsing the resulted pattern. But I found that this returns incorrect hcDefault value in some cases, and this is one of the case.test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js is also derived from the same hcDefault issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665263</commentid>
    <comment_count>16</comment_count>
      <attachid>402470</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 19:30:26 -0700</bug_when>
    <thetext>Comment on attachment 402470
Patch

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

&gt;&gt;&gt; JSTests/test262/expectations.yaml:1641
&gt;&gt;&gt; +test/intl402/DateTimeFormat/prototype/format/timedatestyle-en.js:
&gt;&gt; 
&gt;&gt; Is this failure due to ICU version? Can you explain in the ChangeLog?
&gt; 
&gt; This is hcDefault&apos;s bug. Our IntlDateTimeFormat is not spec compliant yet about hcDefault. We are guessing hcDefault value by parsing the resulted pattern. But I found that this returns incorrect hcDefault value in some cases, and this is one of the case.test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js is also derived from the same hcDefault issue.

And this FIXME

    // FIXME: We should cache `hourCycleDefault` value obtained by generating &quot;jjmm&quot; pattern from UDateTimePatternGenerator.
    // https://bugs.webkit.org/show_bug.cgi?id=213459

is for that issue :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665278</commentid>
    <comment_count>17</comment_count>
      <attachid>402531</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-22 20:52:09 -0700</bug_when>
    <thetext>Created attachment 402531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682154</commentid>
    <comment_count>18</comment_count>
      <attachid>407055</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-22 12:14:02 -0700</bug_when>
    <thetext>Created attachment 407055
Patch

Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682162</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-22 13:36:11 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 407055 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1682163</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-08-22 13:41:25 -0700</bug_when>
    <thetext>Committed r266035: &lt;https://trac.webkit.org/changeset/266035&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402447</attachid>
            <date>2020-06-21 23:30:46 -0700</date>
            <delta_ts>2020-06-22 01:17:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209776-20200621233045.patch</filename>
            <type>text/plain</type>
            <size>20457</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDQwMDcwOGYwM2FjOTNjMDAyMjIyOGZlYWM4NjRmZTYwMjY0NzMxLi45YzY1MmRmZTliNGE3NWRh
OTE1ZmQwNmRhMmM0YmFkNzI2NWNlMTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMC0wNi0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGlt
ZVN0eWxlIG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGJ1aWx0aW5zL0RhdGVQcm90b3R5cGUuanM6CisgICAgICAgICh0
b0xvY2FsZVN0cmluZy50b0RhdGVUaW1lT3B0aW9uc0FueUFsbCk6CisgICAgICAgICh0b0xvY2Fs
ZVN0cmluZyk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcudG9EYXRlVGltZU9wdGlvbnNE
YXRlRGF0ZSk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcpOgorICAgICAgICAodG9Mb2Nh
bGVUaW1lU3RyaW5nLnRvRGF0ZVRpbWVPcHRpb25zVGltZVRpbWUpOgorICAgICAgICAodG9Mb2Nh
bGVUaW1lU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6Cisg
ICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjp0
b0RhdGVUaW1lT3B0aW9uc0FueURhdGUpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3Jt
YXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdDo6Zm9ybWF0U3R5bGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVG
b3JtYXQ6OnJlc29sdmVkT3B0aW9ucyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuaDoKKwogMjAyMC0wNi0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIFtKU0NdIENoZWNrIEdpZ2FjYWdlIHVzYWdlIGJlZm9yZSBsYXVu
Y2hpbmcgVk0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9EYXRl
UHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5
cGUuanMKaW5kZXggM2JiMmIyZWMzM2FhNjdiN2U1YjM0ZDJiMjg5ODM5YTRkNzg0ZmE5MC4uNDY4
Zjg2Mzk0ZTYxYmFkMWU0YmI4MmYzODlmYjgwYmE3MDIxMzQ4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKQEAgLTUxLDYgKzUxLDEzIEBA
IGVsc2UgaWYgKG9wdHMgPT09IG51bGwpCiAgICAgICAgICAgICBvcHRpb25zLnNlY29uZCA9PT0g
QHVuZGVmaW5lZAogICAgICAgICApOwogCisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAg
ICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIg
dGltZVN0eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7CisgICAgICAgICAgICBpZiAoZGF0ZVN0eWxl
ICE9PSBAdW5kZWZpbmVkIHx8IHRpbWVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAg
ICAgICBuZWVkc0RlZmF1bHRzID0gZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICAvLyBPbmx5
IGNyZWF0ZSBkZXNjZW5kYW50IGlmIGl0IHdpbGwgaGF2ZSBvd24gcHJvcGVydGllcy4KICAgICAg
ICAgaWYgKG5lZWRzRGVmYXVsdHMpIHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBAT2JqZWN0LkBj
cmVhdGUob3B0aW9ucyk7CkBAIC0xMDMsNiArMTEwLDE1IEBAIGVsc2UgaWYgKG9wdHMgPT09IG51
bGwpCiAgICAgICAgICAgICBvcHRpb25zLmRheSA9PT0gQHVuZGVmaW5lZAogICAgICAgICApOwog
CisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0
aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50aW1l
U3R5bGU7CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAg
ICAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigidGltZVN0eWxlIGNhbm5vdCBiZSBzcGVjaWZpZWQi
KTsKKyAgICAgICAgICAgIGlmIChkYXRlU3R5bGUgIT09IEB1bmRlZmluZWQpCisgICAgICAgICAg
ICAgICAgbmVlZHNEZWZhdWx0cyA9IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgLy8gT25s
eSBjcmVhdGUgZGVzY2VuZGFudCBpZiBpdCB3aWxsIGhhdmUgb3duIHByb3BlcnRpZXMuCiAgICAg
ICAgIGlmIChuZWVkc0RlZmF1bHRzKSB7CiAgICAgICAgICAgICBvcHRpb25zID0gQE9iamVjdC5A
Y3JlYXRlKG9wdGlvbnMpOwpAQCAtMTUwLDYgKzE2NiwxNSBAQCBlbHNlIGlmIChvcHRzID09PSBu
dWxsKQogICAgICAgICAgICAgb3B0aW9ucy5zZWNvbmQgPT09IEB1bmRlZmluZWQKICAgICAgICAg
KTsKIAorICAgICAgICBpZiAob3B0aW9ucykgeworICAgICAgICAgICAgdmFyIGRhdGVTdHlsZSA9
IG9wdGlvbnMuZGF0ZVN0eWxlOworICAgICAgICAgICAgdmFyIHRpbWVTdHlsZSA9IG9wdGlvbnMu
dGltZVN0eWxlOworICAgICAgICAgICAgaWYgKGRhdGVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAg
ICAgICAgICAgICAgICBAdGhyb3dUeXBlRXJyb3IoImRhdGVTdHlsZSBjYW5ub3QgYmUgc3BlY2lm
aWVkIik7CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAg
ICAgICAgICAgIG5lZWRzRGVmYXVsdHMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIC8v
IE9ubHkgY3JlYXRlIGRlc2NlbmRhbnQgaWYgaXQgd2lsbCBoYXZlIG93biBwcm9wZXJ0aWVzLgog
ICAgICAgICBpZiAobmVlZHNEZWZhdWx0cykgewogICAgICAgICAgICAgb3B0aW9ucyA9IEBPYmpl
Y3QuQGNyZWF0ZShvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDE2OGVmZWRhMTRkNDYxMDUyNjA3NWFmZGViYWM5
YWRiYTI1MjY2YmEuLjhkY2I3NmMwZjc3NGFlZWViOGQzMjM5YjI2Y2Y4Y2NhZGEwYWRjMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aApAQCAtOTAsNiArOTAsNyBAQAogICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8o
Y291bnQpIFwKICAgICBtYWNybyhjb3VudGVycykgXAorICAgIG1hY3JvKGRhdGVTdHlsZSkgXAog
ICAgIG1hY3JvKGRheSkgXAogICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCiAgICAgbWFjcm8o
ZGVyZWYpIFwKQEAgLTE5MSw2ICsxOTIsNyBAQAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNy
byh0aGVuKSBcCiAgICAgbWFjcm8odGltZSkgXAorICAgIG1hY3JvKHRpbWVTdHlsZSkgXAogICAg
IG1hY3JvKHRpbWVab25lKSBcCiAgICAgbWFjcm8odGltZVpvbmVOYW1lKSBcCiAgICAgbWFjcm8o
dG9FeHBvbmVudGlhbCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggN2RmYmMzNjdjZjRmYjQyOThhZGY2MTFkMTJj
NmFlMmY0Njc2MTM4NS4uZTFjZGJjYjU3N2JhN2IxMTRmYThjYTMxY2UzNTllNTMxMjVjZWMxMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXQuY3BwCkBAIC0yNzcsNiArMjc3LDE0IEBAIHN0YXRpYyBKU09iamVjdCogdG9EYXRlVGlt
ZU9wdGlvbnNBbnlEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAg
ICBpZiAoIXNlY29uZC5pc1VuZGVmaW5lZCgpKQogICAgICAgICBuZWVkRGVmYXVsdHMgPSBmYWxz
ZTsKIAorICAgIEpTVmFsdWUgZGF0ZVN0eWxlID0gb3B0aW9ucy0+Z2V0KGdsb2JhbE9iamVjdCwg
dm0ucHJvcGVydHlOYW1lcy0+ZGF0ZVN0eWxlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBudWxscHRyKTsKKyAgICBKU1ZhbHVlIHRpbWVTdHlsZSA9IG9wdGlvbnMtPmdldChnbG9i
YWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CisKKyAgICBpZiAoIWRhdGVTdHlsZS5pc1VuZGVmaW5l
ZCgpIHx8ICF0aW1lU3R5bGUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgbmVlZERlZmF1bHRzID0g
ZmFsc2U7CisKICAgICAvLyA3LiBJZiBuZWVkRGVmYXVsdHMgaXMgdHJ1ZSBhbmQgZGVmYXVsdHMg
aXMgZWl0aGVyICJkYXRlIiBvciAiYWxsIiwgdGhlbgogICAgIC8vIERlZmF1bHRzIGlzIGFsd2F5
cyAiZGF0ZSIuCiAgICAgaWYgKG5lZWREZWZhdWx0cykgewpAQCAtNTAwLDYgKzUwOCw3IEBAIHZv
aWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpYyA9IHsgIjItZGln
aXQiLCAibnVtZXJpYyIgfTsKICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9u
ZyA9IHsgIjItZGlnaXQiLCAibnVtZXJpYyIsICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIgfTsK
ICAgICBhdXRvIHNob3J0TG9uZyA9IHsgInNob3J0IiwgImxvbmciIH07CisgICAgYXV0byBmdWxs
TG9uZ01lZGl1bVNob3J0ID0geyAiZnVsbCIsICJsb25nIiwgIm1lZGl1bSIsICJzaG9ydCIgfTsK
IAogICAgIFN0cmluZyB3ZWVrZGF5ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPndlZWtkYXksIG5hcnJvd1Nob3J0TG9uZywgIndlZWtk
YXkgbXVzdCBiZSBcIm5hcnJvd1wiLCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKQEAgLTU3Miw4ICs1ODEs
NyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIu
YXBwZW5kKCdoJyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5h
cHBlbmQoJ0gnKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsK
KyAgICB9CiAKICAgICBTdHJpbmcgbWludXRlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1pbnV0ZSwgdHdvRGlnaXROdW1lcmljLCAi
bWludXRlIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAtNjA1LDUyICs2MTMsMTU1
IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9i
amVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+Zm9ybWF0TWF0Y2hlciwgeyAiYmFzaWMi
LCAiYmVzdCBmaXQiIH0sICJmb3JtYXRNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwiYmFzaWNcIiBv
ciBcImJlc3QgZml0XCIiLCAiYmVzdCBmaXQiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB2b2lkKCkpOwogCi0gICAgLy8gQWx3YXlzIHVzZSBJQ1UgZGF0ZSBmb3JtYXQgZ2VuZXJh
dG9yLCByYXRoZXIgdGhhbiBvdXIgb3duIHBhdHRlcm4gbGlzdCBhbmQgbWF0Y2hlci4KLSAgICBV
RXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICBVRGF0ZVRpbWVQYXR0ZXJuR2Vu
ZXJhdG9yKiBnZW5lcmF0b3IgPSB1ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMu
ZGF0YSgpLCAmc3RhdHVzKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXpl
IERhdGVUaW1lRm9ybWF0Il9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBTdHJpbmcg
ZGF0ZVN0eWxlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnBy
b3BlcnR5TmFtZXMtPmRhdGVTdHlsZSwgZnVsbExvbmdNZWRpdW1TaG9ydCwgImRhdGVTdHlsZSBt
dXN0IGJlIFwiZnVsbFwiLCBcImxvbmdcIiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVs
bHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKworICAgIFN0
cmluZyB0aW1lU3R5bGUgPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywg
dm0ucHJvcGVydHlOYW1lcy0+dGltZVN0eWxlLCBmdWxsTG9uZ01lZGl1bVNob3J0LCAidGltZVN0
eWxlIG11c3QgYmUgXCJmdWxsXCIsIFwibG9uZ1wiLCBcIm1lZGl1bVwiLCBvciBcInNob3J0XCIi
LCBudWxscHRyKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0g
ICAgU3RyaW5nIHNrZWxldG9uID0gc2tlbGV0b25CdWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgU3Ry
aW5nVmlldyBza2VsZXRvblZpZXcoc2tlbGV0b24pOworICAgIGJvb2wgY2FuSW5jbHVkZUhvdXIg
PSB0cnVlOwogICAgIFZlY3RvcjxVQ2hhciwgMzI+IHBhdHRlcm5CdWZmZXI7Ci0gICAgc3RhdHVz
ID0gY2FsbEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRwZ19nZXRCZXN0UGF0dGVybldpdGhP
cHRpb25zLCBnZW5lcmF0b3IsIHNrZWxldG9uVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKS5n
ZXQoKSwgc2tlbGV0b25WaWV3Lmxlbmd0aCgpLCBVREFUUEdfTUFUQ0hfSE9VUl9GSUVMRF9MRU5H
VEgsIHBhdHRlcm5CdWZmZXIpOwotICAgIHVkYXRwZ19jbG9zZShnZW5lcmF0b3IpOwotICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOwotICAg
ICAgICByZXR1cm47CisgICAgaWYgKCFkYXRlU3R5bGUuaXNOdWxsKCkgfHwgIXRpbWVTdHlsZS5p
c051bGwoKSkgeworICAgICAgICAvLyAzMC4gRm9yIGVhY2ggcm93IGluIFRhYmxlIDEsIGV4Y2Vw
dCB0aGUgaGVhZGVyIHJvdywgZG8KKyAgICAgICAgLy8gICAgIGkuIExldCBwcm9wIGJlIHRoZSBu
YW1lIGdpdmVuIGluIHRoZSBQcm9wZXJ0eSBjb2x1bW4gb2YgdGhlIHJvdy4KKyAgICAgICAgLy8g
ICAgIGlpLiBMZXQgcCBiZSBvcHQuW1s8cHJvcD5dXS4KKyAgICAgICAgLy8gICAgIGlpaS4gSWYg
cCBpcyBub3QgdW5kZWZpbmVkLCB0aGVuCisgICAgICAgIC8vICAgICAgICAgMS4gVGhyb3cgYSBU
eXBlRXJyb3IgZXhjZXB0aW9uLgorICAgICAgICBpZiAoIXdlZWtkYXkuaXNOdWxsKCkgfHwgIWVy
YS5pc051bGwoKSB8fCAheWVhci5pc051bGwoKSB8fCAhbW9udGguaXNOdWxsKCkgfHwgIWRheS5p
c051bGwoKSB8fCAhaG91ci5pc051bGwoKSB8fCAhbWludXRlLmlzTnVsbCgpIHx8ICFzZWNvbmQu
aXNOdWxsKCkgfHwgIXRpbWVab25lTmFtZS5pc051bGwoKSkgeworICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImRhdGVTdHlsZSBvciB0aW1lU3R5bGUgcmVx
dWlyZXMgYWxsIHRoZSBkYXRlIGFuZCB0aW1lIGZvcm1hdHMgYXJlIG5vdCBzcGVjaWZpZWQiX3Mp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGltZVN0
eWxlIGlzIG5vdCBzcGVjaWZpZWQsIG1faG91ckN5Y2xlIGRvZXMgbm90IG1hdHRlci4gTGV0J3Mg
c2tpcCBlbmZvcmNpbmcgc3RlcC4KKyAgICAgICAgaWYgKHRpbWVTdHlsZS5pc051bGwoKSkKKyAg
ICAgICAgICAgIGNhbkluY2x1ZGVIb3VyID0gZmFsc2U7CisKKyAgICAgICAgYXV0byB0b1VEYXRl
Rm9ybWF0U3R5bGUgPSBbXShjb25zdCBTdHJpbmcmIHN0eWxlKSB7CisgICAgICAgICAgICBpZiAo
c3R5bGUuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFVEQVRfTk9ORTsKKyAgICAg
ICAgICAgIGlmIChzdHlsZSA9PSAiZnVsbCJfcykKKyAgICAgICAgICAgICAgICByZXR1cm4gVURB
VF9GVUxMOworICAgICAgICAgICAgaWYgKHN0eWxlID09ICJsb25nIl9zKQorICAgICAgICAgICAg
ICAgIHJldHVybiBVREFUX0xPTkc7CisgICAgICAgICAgICBpZiAoc3R5bGUgPT0gIm1lZGl1bSJf
cykKKyAgICAgICAgICAgICAgICByZXR1cm4gVURBVF9NRURJVU07CisgICAgICAgICAgICBpZiAo
c3R5bGUgPT0gInNob3J0Il9zKQorICAgICAgICAgICAgICAgIHJldHVybiBVREFUX1NIT1JUOwor
ICAgICAgICAgICAgcmV0dXJuIFVEQVRfTk9ORTsKKyAgICAgICAgfTsKKworICAgICAgICAvLyBX
ZSBjYW5ub3QgdXNlIHRoaXMgVURhdGVGb3JtYXQgZGlyZWN0bHkgeWV0IGJlY2F1c2Ugd2UgbmVl
ZCB0byBlbmZvcmNlIHNwZWNpZmllZCBob3VyQ3ljbGUuCisgICAgICAgIC8vIEZpcnN0LCB3ZSBj
cmVhdGUgVURhdGVGb3JtYXQgdmlhIGRhdGVTdHlsZSBhbmQgdGltZVN0eWxlLiBBbmQgdGhlbiBj
b252ZXJ0IGl0IHRvIHBhdHRlcm4gc3RyaW5nLgorICAgICAgICAvLyBBZnRlciB1cGRhdGluZyB0
aGlzIHBhdHRlcm4gc3RyaW5nIHdpdGggbV9ob3VyQ3ljbGUsIHdlIGNyZWF0ZSBhIGZpbmFsIFVE
YXRlRm9ybWF0IHdpdGggdGhlIHVwZGF0ZWQgcGF0dGVybiBzdHJpbmcuCisgICAgICAgIFVFcnJv
ckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICBTdHJpbmdWaWV3IHRpbWVab25l
VmlldyhtX3RpbWVab25lKTsKKyAgICAgICAgYXV0byBkYXRlRm9ybWF0RnJvbVN0eWxlID0gc3Rk
Ojp1bmlxdWVfcHRyPFVEYXRlRm9ybWF0LCBVRGF0ZUZvcm1hdERlbGV0ZXI+KHVkYXRfb3Blbih0
b1VEYXRlRm9ybWF0U3R5bGUodGltZVN0eWxlKSwgdG9VRGF0ZUZvcm1hdFN0eWxlKGRhdGVTdHls
ZSksIGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksIHRpbWVab25lVmlldy51cGNvbnZl
cnRlZENoYXJhY3RlcnMoKSwgdGltZVpvbmVWaWV3Lmxlbmd0aCgpLCBudWxscHRyLCAtMSwgJnN0
YXR1cykpOworICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRo
cm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBE
YXRlVGltZUZvcm1hdCJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgY29uc3RleHByIGJvb2wgbG9jYWxpemVkID0gZmFsc2U7IC8vIEFsaWduZWQgd2l0aCBob3cg
SUNVIFNpbXBsZURhdGVUaW1lRm9ybWF0Ojpmb3JtYXQgd29ya3MuIFdlIGRvIG5vdCBuZWVkIHRv
IHRyYW5zbGF0ZSB0aGlzIHRvIGxvY2FsaXplZCBwYXR0ZXJuLgorICAgICAgICBzdGF0dXMgPSBj
YWxsQnVmZmVyUHJvZHVjaW5nRnVuY3Rpb24odWRhdF90b1BhdHRlcm4sIGRhdGVGb3JtYXRGcm9t
U3R5bGUuZ2V0KCksIGxvY2FsaXplZCwgcGF0dGVybkJ1ZmZlcik7CisgICAgICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1lRm9ybWF0Il9zKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIElmIGhv
dXIgaXMgbm90IHNwZWNpZmllZCwgbV9ob3VyQ3ljbGUgZG9lcyBub3QgbWF0dGVyLiBMZXQncyBz
a2lwIGVuZm9yY2luZyBzdGVwLgorICAgICAgICBpZiAoaG91ci5pc051bGwoKSkKKyAgICAgICAg
ICAgIGNhbkluY2x1ZGVIb3VyID0gZmFsc2U7CisKKyAgICAgICAgLy8gQWx3YXlzIHVzZSBJQ1Ug
ZGF0ZSBmb3JtYXQgZ2VuZXJhdG9yLCByYXRoZXIgdGhhbiBvdXIgb3duIHBhdHRlcm4gbGlzdCBh
bmQgbWF0Y2hlci4KKyAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Cisg
ICAgICAgIFVEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3IqIGdlbmVyYXRvciA9IHVkYXRwZ19vcGVu
KGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksICZzdGF0dXMpOworICAgICAgICBpZiAo
VV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBEYXRlVGltZUZvcm1hdCJfcyk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgc2tlbGV0b24g
PSBza2VsZXRvbkJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgU3RyaW5nVmlldyBza2VsZXRv
blZpZXcoc2tlbGV0b24pOworICAgICAgICBzdGF0dXMgPSBjYWxsQnVmZmVyUHJvZHVjaW5nRnVu
Y3Rpb24odWRhdHBnX2dldEJlc3RQYXR0ZXJuV2l0aE9wdGlvbnMsIGdlbmVyYXRvciwgc2tlbGV0
b25WaWV3LnVwY29udmVydGVkQ2hhcmFjdGVycygpLmdldCgpLCBza2VsZXRvblZpZXcubGVuZ3Ro
KCksIFVEQVRQR19NQVRDSF9IT1VSX0ZJRUxEX0xFTkdUSCwgcGF0dGVybkJ1ZmZlcik7CisgICAg
ICAgIHVkYXRwZ19jbG9zZShnZW5lcmF0b3IpOworICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJm
YWlsZWQgdG8gaW5pdGlhbGl6ZSBEYXRlVGltZUZvcm1hdCJfcyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBFbmZvcmNlIG91ciBob3VyQ3ljbGUsIHJl
cGxhY2luZyBob3VyIGNoYXJhY3RlcnMgaW4gcGF0dGVybi4KLSAgICBpZiAoIW1faG91ckN5Y2xl
LmlzTnVsbCgpKSB7Ci0gICAgICAgIFVDaGFyIGhvdXIgPSAnSCc7Ci0gICAgICAgIGlmIChtX2hv
dXJDeWNsZSA9PSAiaDExIikKLSAgICAgICAgICAgIGhvdXIgPSAnSyc7Ci0gICAgICAgIGVsc2Ug
aWYgKG1faG91ckN5Y2xlID09ICJoMTIiKQotICAgICAgICAgICAgaG91ciA9ICdoJzsKLSAgICAg
ICAgZWxzZSBpZiAobV9ob3VyQ3ljbGUgPT0gImgyNCIpCi0gICAgICAgICAgICBob3VyID0gJ2sn
OwotCi0gICAgICAgIGJvb2wgaXNFc2NhcGVkID0gZmFsc2U7CisgICAgLy8gRW5mb3JjZSBvdXIg
aG91ckN5Y2xlLCByZXBsYWNpbmcgaG91ciBjaGFyYWN0ZXJzIGluIHBhdHRlcm4uIElDVSBjYW4g
cGljayBmb3JtYXQgd2hpY2ggZG9lcyBub3QgYWdyZWUgd2l0aCBzcGVjaWZpZWQgaG91ckN5Y2xl
LgorICAgIC8vIFRoaXMgc3RlcCBtb2RpZmllcyBnZW5lcmF0ZWQgcGF0dGVybiB0byB1c2Ugc3Bl
Y2lmaWVkIGhvdXJDeWNsZSwgYW5kIGl0IGlzIHNwZWNpZmllZCBpbiAxLjEuMSBJbml0aWFsaXpl
RGF0ZVRpbWVGb3JtYXQgc3RlcCAzMy4KKyAgICBpZiAoY2FuSW5jbHVkZUhvdXIpIHsKICAgICAg
ICAgYm9vbCBoYXNIb3VyID0gZmFsc2U7Ci0gICAgICAgIGZvciAoYXV0byYgYyA6IHBhdHRlcm5C
dWZmZXIpIHsKLSAgICAgICAgICAgIGlmIChjID09ICdcJycpCi0gICAgICAgICAgICAgICAgaXNF
c2NhcGVkID0gIWlzRXNjYXBlZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKCFpc0VzY2FwZWQgJiYg
KGMgPT0gJ2gnIHx8IGMgPT0gJ0gnIHx8IGMgPT0gJ2snIHx8IGMgPT0gJ0snKSkgewotICAgICAg
ICAgICAgICAgIGMgPSBob3VyOwotICAgICAgICAgICAgICAgIGhhc0hvdXIgPSB0cnVlOworICAg
ICAgICBpZiAoIW1faG91ckN5Y2xlLmlzTnVsbCgpIHx8IGhvdXIxMiAhPSBUcmlTdGF0ZTo6SW5k
ZXRlcm1pbmF0ZSkgeworICAgICAgICAgICAgVUNoYXIgaG91ckZyb21Ib3VyQ3ljbGUgPSAnSCc7
IC8vIEgyMworICAgICAgICAgICAgaWYgKG1faG91ckN5Y2xlID09ICJoMTEiKQorICAgICAgICAg
ICAgICAgIGhvdXJGcm9tSG91ckN5Y2xlID0gJ0snOworICAgICAgICAgICAgZWxzZSBpZiAobV9o
b3VyQ3ljbGUgPT0gImgxMiIpCisgICAgICAgICAgICAgICAgaG91ckZyb21Ib3VyQ3ljbGUgPSAn
aCc7CisgICAgICAgICAgICBlbHNlIGlmIChtX2hvdXJDeWNsZSA9PSAiaDI0IikKKyAgICAgICAg
ICAgICAgICBob3VyRnJvbUhvdXJDeWNsZSA9ICdrJzsKKworICAgICAgICAgICAgYm9vbCBpc0Vz
Y2FwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgYyA6IHBhdHRlcm5CdWZmZXIp
IHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXCcnKQorICAgICAgICAgICAgICAgICAgICBp
c0VzY2FwZWQgPSAhaXNFc2NhcGVkOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc0VzY2Fw
ZWQgJiYgKGMgPT0gJ2gnIHx8IGMgPT0gJ0gnIHx8IGMgPT0gJ2snIHx8IGMgPT0gJ0snKSkgewor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAnSyc6IC8vIGgxMQorICAgICAgICAgICAgICAgICAgICBjYXNlICdIJzogLy8gaDIzCisgICAg
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChob3VyMTIgPT0g
VHJpU3RhdGU6OlRydWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICdLJzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGhvdXIxMiA9PSBUcmlTdGF0ZTo6RmFsc2Up
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICdIJzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gaG91ckZyb21Ib3Vy
Q3ljbGU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBjYXNlICdoJzogLy8gaDEyCisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgJ2snOiAvLyBoMjQKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGhvdXIxMiA9PSBUcmlTdGF0ZTo6VHJ1ZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjID0gJ2gnOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBp
ZiAoaG91cjEyID09IFRyaVN0YXRlOjpGYWxzZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjID0gJ2snOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGMgPSBob3VyRnJvbUhvdXJDeWNsZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoYXNIb3VyID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYg
KCFoYXNIb3VyKQogICAgICAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsKLSAgICB9Cisg
ICAgfSBlbHNlCisgICAgICAgIG1faG91ckN5Y2xlID0gU3RyaW5nKCk7CisKKyAgICBhdXRvIHRv
Rm9ybWF0U3R5bGUgPSBbXShjb25zdCBTdHJpbmcmIHN0eWxlKSB7CisgICAgICAgIGlmIChzdHls
ZS5pc051bGwoKSkKKyAgICAgICAgICAgIHJldHVybiBGb3JtYXRTdHlsZTo6Tm9uZTsKKyAgICAg
ICAgaWYgKHN0eWxlID09ICJmdWxsIl9zKQorICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFN0eWxl
OjpGdWxsOworICAgICAgICBpZiAoc3R5bGUgPT0gImxvbmciX3MpCisgICAgICAgICAgICByZXR1
cm4gRm9ybWF0U3R5bGU6Okxvbmc7CisgICAgICAgIGlmIChzdHlsZSA9PSAibWVkaXVtIl9zKQor
ICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFN0eWxlOjpNZWRpdW07CisgICAgICAgIGlmIChzdHls
ZSA9PSAic2hvcnQiX3MpCisgICAgICAgICAgICByZXR1cm4gRm9ybWF0U3R5bGU6OlNob3J0Owor
ICAgICAgICByZXR1cm4gRm9ybWF0U3R5bGU6Ok5vbmU7CisgICAgfTsKIAogICAgIFN0cmluZ1Zp
ZXcgcGF0dGVybihwYXR0ZXJuQnVmZmVyLmRhdGEoKSwgcGF0dGVybkJ1ZmZlci5zaXplKCkpOwog
ICAgIHNldEZvcm1hdHNGcm9tUGF0dGVybihwYXR0ZXJuKTsKKyAgICBtX2RhdGVTdHlsZSA9IHRv
Rm9ybWF0U3R5bGUoZGF0ZVN0eWxlKTsKKyAgICBtX3RpbWVTdHlsZSA9IHRvRm9ybWF0U3R5bGUo
dGltZVN0eWxlKTsKIAotICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBVRXJyb3JDb2Rl
IHN0YXR1cyA9IFVfWkVST19FUlJPUjsKICAgICBTdHJpbmdWaWV3IHRpbWVab25lVmlldyhtX3Rp
bWVab25lKTsKICAgICBtX2RhdGVGb3JtYXQgPSBzdGQ6OnVuaXF1ZV9wdHI8VURhdGVGb3JtYXQs
IFVEYXRlRm9ybWF0RGVsZXRlcj4odWRhdF9vcGVuKFVEQVRfUEFUVEVSTiwgVURBVF9QQVRURVJO
LCBkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCB0aW1lWm9uZVZpZXcudXBjb252ZXJ0
ZWRDaGFyYWN0ZXJzKCksIHRpbWVab25lVmlldy5sZW5ndGgoKSwgcGF0dGVybi51cGNvbnZlcnRl
ZENoYXJhY3RlcnMoKSwgcGF0dGVybi5sZW5ndGgoKSwgJnN0YXR1cykpOwogICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgewpAQCAtODA5LDYgKzkyMCwyNSBAQCBBU0NJSUxpdGVyYWwgSW50bERh
dGVUaW1lRm9ybWF0Ojp0aW1lWm9uZU5hbWVTdHJpbmcoVGltZVpvbmVOYW1lIHRpbWVab25lTmFt
ZSkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiB9CiAKK0FTQ0lJTGl0ZXJhbCBJ
bnRsRGF0ZVRpbWVGb3JtYXQ6OmZvcm1hdFN0eWxlU3RyaW5nKEZvcm1hdFN0eWxlIHN0eWxlKQor
eworICAgIHN3aXRjaCAoc3R5bGUpIHsKKyAgICBjYXNlIEZvcm1hdFN0eWxlOjpGdWxsOgorICAg
ICAgICByZXR1cm4gImZ1bGwiX3M7CisgICAgY2FzZSBGb3JtYXRTdHlsZTo6TG9uZzoKKyAgICAg
ICAgcmV0dXJuICJsb25nIl9zOworICAgIGNhc2UgRm9ybWF0U3R5bGU6Ok1lZGl1bToKKyAgICAg
ICAgcmV0dXJuICJtZWRpdW0iX3M7CisgICAgY2FzZSBGb3JtYXRTdHlsZTo6U2hvcnQ6CisgICAg
ICAgIHJldHVybiAic2hvcnQiX3M7CisgICAgY2FzZSBGb3JtYXRTdHlsZTo6Tm9uZToKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51
bGwoKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbDo6bnVsbCgpOworfQorCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWlu
dGwuZGF0ZXRpbWVmb3JtYXQucHJvdG90eXBlLnJlc29sdmVkb3B0aW9ucwogSlNPYmplY3QqIElu
dGxEYXRlVGltZUZvcm1hdDo6cmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpIGNvbnN0CiB7CkBAIC04NTIsNiArOTgyLDEyIEBAIEpTT2JqZWN0KiBJbnRsRGF0ZVRp
bWVGb3JtYXQ6OnJlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBj
b25zCiAgICAgaWYgKG1fdGltZVpvbmVOYW1lICE9IFRpbWVab25lTmFtZTo6Tm9uZSkKICAgICAg
ICAgb3B0aW9ucy0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50aW1lWm9uZU5hbWUs
IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgdGltZVpvbmVOYW1lU3RyaW5nKG1fdGltZVpvbmVOYW1l
KSkpOwogCisgICAgaWYgKG1fZGF0ZVN0eWxlICE9IEZvcm1hdFN0eWxlOjpOb25lKQorICAgICAg
ICBvcHRpb25zLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmRhdGVTdHlsZSwganNO
b250cml2aWFsU3RyaW5nKHZtLCBmb3JtYXRTdHlsZVN0cmluZyhtX2RhdGVTdHlsZSkpKTsKKwor
ICAgIGlmIChtX3RpbWVTdHlsZSAhPSBGb3JtYXRTdHlsZTo6Tm9uZSkKKyAgICAgICAgb3B0aW9u
cy0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50aW1lU3R5bGUsIGpzTm9udHJpdmlh
bFN0cmluZyh2bSwgZm9ybWF0U3R5bGVTdHJpbmcobV90aW1lU3R5bGUpKSk7CisKICAgICByZXR1
cm4gb3B0aW9uczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsRGF0ZVRpbWVGb3JtYXQuaAppbmRleCA5ZDI2NzFjODljMjRhMDYyNzYzYmVjY2NjYzg0ODJk
ZjJjNzU3N2VkLi41NGE5YTAyZjJlM2M4N2UxMWUzNmYyZWY3ODA1YThjMmRlYzZhYjM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQu
aApAQCAtNzgsNiArNzgsNyBAQCBjbGFzcyBJbnRsRGF0ZVRpbWVGb3JtYXQgZmluYWwgOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgZW51bSBjbGFzcyBNaW51dGUgOiB1aW50OF90IHsg
Tm9uZSwgVHdvRGlnaXQsIE51bWVyaWMgfTsKICAgICBlbnVtIGNsYXNzIFNlY29uZCA6IHVpbnQ4
X3QgeyBOb25lLCBUd29EaWdpdCwgTnVtZXJpYyB9OwogICAgIGVudW0gY2xhc3MgVGltZVpvbmVO
YW1lIDogdWludDhfdCB7IE5vbmUsIFNob3J0LCBMb25nIH07CisgICAgZW51bSBjbGFzcyBGb3Jt
YXRTdHlsZSA6IHVpbnQ4X3QgeyBOb25lLCBGdWxsLCBMb25nLCBNZWRpdW0sIFNob3J0IH07CiAK
ICAgICBzdHJ1Y3QgVURhdGVGb3JtYXREZWxldGVyIHsKICAgICAgICAgdm9pZCBvcGVyYXRvcigp
KFVEYXRlRm9ybWF0KikgY29uc3Q7CkBAIC05Myw2ICs5NCw3IEBAIGNsYXNzIEludGxEYXRlVGlt
ZUZvcm1hdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBzdGF0aWMgQVND
SUlMaXRlcmFsIG1pbnV0ZVN0cmluZyhNaW51dGUpOwogICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwg
c2Vjb25kU3RyaW5nKFNlY29uZCk7CiAgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCB0aW1lWm9uZU5h
bWVTdHJpbmcoVGltZVpvbmVOYW1lKTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGZvcm1hdFN0
eWxlU3RyaW5nKEZvcm1hdFN0eWxlKTsKIAogICAgIFdyaXRlQmFycmllcjxKU0JvdW5kRnVuY3Rp
b24+IG1fYm91bmRGb3JtYXQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVEYXRlRm9ybWF0LCBVRGF0
ZUZvcm1hdERlbGV0ZXI+IG1fZGF0ZUZvcm1hdDsKQEAgLTExMSw2ICsxMTMsOCBAQCBjbGFzcyBJ
bnRsRGF0ZVRpbWVGb3JtYXQgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAg
TWludXRlIG1fbWludXRlIHsgTWludXRlOjpOb25lIH07CiAgICAgU2Vjb25kIG1fc2Vjb25kIHsg
U2Vjb25kOjpOb25lIH07CiAgICAgVGltZVpvbmVOYW1lIG1fdGltZVpvbmVOYW1lIHsgVGltZVpv
bmVOYW1lOjpOb25lIH07CisgICAgRm9ybWF0U3R5bGUgbV9kYXRlU3R5bGUgeyBGb3JtYXRTdHls
ZTo6Tm9uZSB9OworICAgIEZvcm1hdFN0eWxlIG1fdGltZVN0eWxlIHsgRm9ybWF0U3R5bGU6Ok5v
bmUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFu
Z2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBjYWY2ZjEzNGY0MzY1N2I0YTc5NjRhZjlh
YWY1NDlhNTQ4ZDNhM2FkLi44YTc4MjJiNGEwM2I5MmMwZjQ4YmZhNWI5Njc5MjRjYWZlNDhlYjYw
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIwLTA2LTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0VDTUEtNDAyXSBJbnRsLkRhdGVUaW1lRm9ybWF0IGRhdGVTdHls
ZS90aW1lU3R5bGUgbWlzc2luZyBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTc3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogdGVzdDI2Mi9jb25maWcueWFtbDoKKyAgICAgICAgKiB0
ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorCiAyMDIwLTA2LTIxICBNaWNoYWVsIENhdGFuemFy
byAgPG1jYXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIEF0dGVtcHQgdG8gdW5za2lwIHN0
cmVzcyB0ZXN0IGFycmF5LWJ1ZmZlci12aWV3LXdhdGNocG9pbnQtY2FuLWJlLWZpcmVkLXJlYWxs
eS1hZGQtaW4tZGZnLmpzIG9uIG1vc3QgYXJjaGl0ZWN0dXJlcwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4
IGE3OWYyZGJlMzYxNjZmMGI4ZWJiOTk5ZGI4NWNmNGUxNjRiOTRkZjEuLjVjYWYxYWViNDRhMmYy
NjZiNjlmMDVkZDlmNTI1ZTAzNjAzZTM1YjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9j
b25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTIyLDcgKzIy
LDYgQEAgc2tpcDoKICAgICAtIHJlZ2V4cC1tYXRjaC1pbmRpY2VzCiAgICAgLSB0b3AtbGV2ZWwt
YXdhaXQKICAgICAtIEZpbmFsaXphdGlvblJlZ2lzdHJ5Ci0gICAgLSBJbnRsLkRhdGVUaW1lRm9y
bWF0LWRhdGV0aW1lc3R5bGUKICAgICAtIEludGwuRGF0ZVRpbWVGb3JtYXQtZGF5UGVyaW9kCiAg
ICAgLSBJbnRsLkRhdGVUaW1lRm9ybWF0LWZvcm1hdFJhbmdlCiAgICAgLSBJbnRsLkRhdGVUaW1l
Rm9ybWF0LWZyYWN0aW9uYWxTZWNvbmREaWdpdHMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApp
bmRleCA3OWE4ZjFjY2M5ZmE2OGU3ZWI2M2QxNmNmOTlmOTBhNjQ3M2NmODU5Li42ZTVjYzBkZmM1
ODhiNTgyNDgzMWQ0NTUxMjdlMmQ4YmUzZmZkOTNiIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3Qy
NjIvZXhwZWN0YXRpb25zLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55
YW1sCkBAIC0xNjM4LDYgKzE2MzgsOSBAQCB0ZXN0L2ludGw0MDIvQ29sbGF0b3IvbWlzc2luZy11
bmljb2RlLWV4dC12YWx1ZS1kZWZhdWx0cy10by10cnVlLmpzOgogdGVzdC9pbnRsNDAyL0NvbGxh
dG9yL3VzYWdlLWRlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbw4Qs
IEFFXSBhbmQgW0FFLCDDhF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gc2VhcmNoJwogICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW8OELCBBRV0gYW5kIFtBRSwgw4Rd
IHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuIHNlYXJjaCcKK3Rlc3QvaW50bDQwMi9EYXRlVGlt
ZUZvcm1hdC9wcm90b3R5cGUvZm9ybWF0L3RpbWVkYXRlc3R5bGUtZW4uanM6CisgIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IFJlc3VsdCBmb3IgZnVsbCB3aXRoIHt9IEV4cGVjdGVkIFNhbWVWYWx1
ZSjCqzE0OjEyOjQ3IFBNIENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lwrssIMKrMjoxMjo0NyBQ
TSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7KSB0byBiZSB0cnVlJworICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogUmVzdWx0IGZvciBmdWxsIHdpdGgge30gRXhwZWN0ZWQgU2FtZVZh
bHVlKMKrMTQ6MTI6NDcgUE0gQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWXCuywgwqsyOjEyOjQ3
IFBNIENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lwrspIHRvIGJlIHRydWUnCiB0ZXN0L2ludGw0
MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL3Jlc29sdmVkT3B0aW9ucy9ob3VyQ3ljbGUtZGVm
YXVsdC5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
aDI0wrssIMKraDIzwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBTYW1lVmFsdWUowqtoMjTCuywgwqtoMjPCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402450</attachid>
            <date>2020-06-22 01:17:53 -0700</date>
            <delta_ts>2020-06-22 01:26:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209776-20200622011753.patch</filename>
            <type>text/plain</type>
            <size>20411</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDQwMDcwOGYwM2FjOTNjMDAyMjIyOGZlYWM4NjRmZTYwMjY0NzMxLi4xMTc2ODU5MDYxNGI5YzMw
YjVmMWJjMmUzZmM3OGViMTA2ZjdiMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMC0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGlt
ZVN0eWxlIG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGJ1aWx0aW5zL0RhdGVQcm90b3R5cGUuanM6CisgICAgICAgICh0
b0xvY2FsZVN0cmluZy50b0RhdGVUaW1lT3B0aW9uc0FueUFsbCk6CisgICAgICAgICh0b0xvY2Fs
ZVN0cmluZyk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcudG9EYXRlVGltZU9wdGlvbnNE
YXRlRGF0ZSk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcpOgorICAgICAgICAodG9Mb2Nh
bGVUaW1lU3RyaW5nLnRvRGF0ZVRpbWVPcHRpb25zVGltZVRpbWUpOgorICAgICAgICAodG9Mb2Nh
bGVUaW1lU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6Cisg
ICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjp0
b0RhdGVUaW1lT3B0aW9uc0FueURhdGUpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3Jt
YXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdDo6Zm9ybWF0U3R5bGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVG
b3JtYXQ6OnJlc29sdmVkT3B0aW9ucyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuaDoKKwogMjAyMC0wNi0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIFtKU0NdIENoZWNrIEdpZ2FjYWdlIHVzYWdlIGJlZm9yZSBsYXVu
Y2hpbmcgVk0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9EYXRl
UHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5
cGUuanMKaW5kZXggM2JiMmIyZWMzM2FhNjdiN2U1YjM0ZDJiMjg5ODM5YTRkNzg0ZmE5MC4uNDY4
Zjg2Mzk0ZTYxYmFkMWU0YmI4MmYzODlmYjgwYmE3MDIxMzQ4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKQEAgLTUxLDYgKzUxLDEzIEBA
IGVsc2UgaWYgKG9wdHMgPT09IG51bGwpCiAgICAgICAgICAgICBvcHRpb25zLnNlY29uZCA9PT0g
QHVuZGVmaW5lZAogICAgICAgICApOwogCisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAg
ICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIg
dGltZVN0eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7CisgICAgICAgICAgICBpZiAoZGF0ZVN0eWxl
ICE9PSBAdW5kZWZpbmVkIHx8IHRpbWVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAg
ICAgICBuZWVkc0RlZmF1bHRzID0gZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICAvLyBPbmx5
IGNyZWF0ZSBkZXNjZW5kYW50IGlmIGl0IHdpbGwgaGF2ZSBvd24gcHJvcGVydGllcy4KICAgICAg
ICAgaWYgKG5lZWRzRGVmYXVsdHMpIHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBAT2JqZWN0LkBj
cmVhdGUob3B0aW9ucyk7CkBAIC0xMDMsNiArMTEwLDE1IEBAIGVsc2UgaWYgKG9wdHMgPT09IG51
bGwpCiAgICAgICAgICAgICBvcHRpb25zLmRheSA9PT0gQHVuZGVmaW5lZAogICAgICAgICApOwog
CisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0
aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50aW1l
U3R5bGU7CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAg
ICAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigidGltZVN0eWxlIGNhbm5vdCBiZSBzcGVjaWZpZWQi
KTsKKyAgICAgICAgICAgIGlmIChkYXRlU3R5bGUgIT09IEB1bmRlZmluZWQpCisgICAgICAgICAg
ICAgICAgbmVlZHNEZWZhdWx0cyA9IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgLy8gT25s
eSBjcmVhdGUgZGVzY2VuZGFudCBpZiBpdCB3aWxsIGhhdmUgb3duIHByb3BlcnRpZXMuCiAgICAg
ICAgIGlmIChuZWVkc0RlZmF1bHRzKSB7CiAgICAgICAgICAgICBvcHRpb25zID0gQE9iamVjdC5A
Y3JlYXRlKG9wdGlvbnMpOwpAQCAtMTUwLDYgKzE2NiwxNSBAQCBlbHNlIGlmIChvcHRzID09PSBu
dWxsKQogICAgICAgICAgICAgb3B0aW9ucy5zZWNvbmQgPT09IEB1bmRlZmluZWQKICAgICAgICAg
KTsKIAorICAgICAgICBpZiAob3B0aW9ucykgeworICAgICAgICAgICAgdmFyIGRhdGVTdHlsZSA9
IG9wdGlvbnMuZGF0ZVN0eWxlOworICAgICAgICAgICAgdmFyIHRpbWVTdHlsZSA9IG9wdGlvbnMu
dGltZVN0eWxlOworICAgICAgICAgICAgaWYgKGRhdGVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAg
ICAgICAgICAgICAgICBAdGhyb3dUeXBlRXJyb3IoImRhdGVTdHlsZSBjYW5ub3QgYmUgc3BlY2lm
aWVkIik7CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAg
ICAgICAgICAgIG5lZWRzRGVmYXVsdHMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIC8v
IE9ubHkgY3JlYXRlIGRlc2NlbmRhbnQgaWYgaXQgd2lsbCBoYXZlIG93biBwcm9wZXJ0aWVzLgog
ICAgICAgICBpZiAobmVlZHNEZWZhdWx0cykgewogICAgICAgICAgICAgb3B0aW9ucyA9IEBPYmpl
Y3QuQGNyZWF0ZShvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDE2OGVmZWRhMTRkNDYxMDUyNjA3NWFmZGViYWM5
YWRiYTI1MjY2YmEuLjhkY2I3NmMwZjc3NGFlZWViOGQzMjM5YjI2Y2Y4Y2NhZGEwYWRjMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aApAQCAtOTAsNiArOTAsNyBAQAogICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8o
Y291bnQpIFwKICAgICBtYWNybyhjb3VudGVycykgXAorICAgIG1hY3JvKGRhdGVTdHlsZSkgXAog
ICAgIG1hY3JvKGRheSkgXAogICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCiAgICAgbWFjcm8o
ZGVyZWYpIFwKQEAgLTE5MSw2ICsxOTIsNyBAQAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNy
byh0aGVuKSBcCiAgICAgbWFjcm8odGltZSkgXAorICAgIG1hY3JvKHRpbWVTdHlsZSkgXAogICAg
IG1hY3JvKHRpbWVab25lKSBcCiAgICAgbWFjcm8odGltZVpvbmVOYW1lKSBcCiAgICAgbWFjcm8o
dG9FeHBvbmVudGlhbCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggN2RmYmMzNjdjZjRmYjQyOThhZGY2MTFkMTJj
NmFlMmY0Njc2MTM4NS4uOTg5YmVhODhlNTMyYzE0YTYxZDMzNDYxMWYyMTVhN2VjYjFiMzMyYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXQuY3BwCkBAIC0yNzcsNiArMjc3LDE0IEBAIHN0YXRpYyBKU09iamVjdCogdG9EYXRlVGlt
ZU9wdGlvbnNBbnlEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAg
ICBpZiAoIXNlY29uZC5pc1VuZGVmaW5lZCgpKQogICAgICAgICBuZWVkRGVmYXVsdHMgPSBmYWxz
ZTsKIAorICAgIEpTVmFsdWUgZGF0ZVN0eWxlID0gb3B0aW9ucy0+Z2V0KGdsb2JhbE9iamVjdCwg
dm0ucHJvcGVydHlOYW1lcy0+ZGF0ZVN0eWxlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBudWxscHRyKTsKKyAgICBKU1ZhbHVlIHRpbWVTdHlsZSA9IG9wdGlvbnMtPmdldChnbG9i
YWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CisKKyAgICBpZiAoIWRhdGVTdHlsZS5pc1VuZGVmaW5l
ZCgpIHx8ICF0aW1lU3R5bGUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgbmVlZERlZmF1bHRzID0g
ZmFsc2U7CisKICAgICAvLyA3LiBJZiBuZWVkRGVmYXVsdHMgaXMgdHJ1ZSBhbmQgZGVmYXVsdHMg
aXMgZWl0aGVyICJkYXRlIiBvciAiYWxsIiwgdGhlbgogICAgIC8vIERlZmF1bHRzIGlzIGFsd2F5
cyAiZGF0ZSIuCiAgICAgaWYgKG5lZWREZWZhdWx0cykgewpAQCAtNTAwLDYgKzUwOCw3IEBAIHZv
aWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpYyA9IHsgIjItZGln
aXQiLCAibnVtZXJpYyIgfTsKICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9u
ZyA9IHsgIjItZGlnaXQiLCAibnVtZXJpYyIsICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIgfTsK
ICAgICBhdXRvIHNob3J0TG9uZyA9IHsgInNob3J0IiwgImxvbmciIH07CisgICAgYXV0byBmdWxs
TG9uZ01lZGl1bVNob3J0ID0geyAiZnVsbCIsICJsb25nIiwgIm1lZGl1bSIsICJzaG9ydCIgfTsK
IAogICAgIFN0cmluZyB3ZWVrZGF5ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPndlZWtkYXksIG5hcnJvd1Nob3J0TG9uZywgIndlZWtk
YXkgbXVzdCBiZSBcIm5hcnJvd1wiLCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKQEAgLTU3Miw4ICs1ODEs
NyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIu
YXBwZW5kKCdoJyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5h
cHBlbmQoJ0gnKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsK
KyAgICB9CiAKICAgICBTdHJpbmcgbWludXRlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1pbnV0ZSwgdHdvRGlnaXROdW1lcmljLCAi
bWludXRlIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAtNjA1LDUyICs2MTMsMTU2
IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9i
amVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+Zm9ybWF0TWF0Y2hlciwgeyAiYmFzaWMi
LCAiYmVzdCBmaXQiIH0sICJmb3JtYXRNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwiYmFzaWNcIiBv
ciBcImJlc3QgZml0XCIiLCAiYmVzdCBmaXQiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB2b2lkKCkpOwogCi0gICAgLy8gQWx3YXlzIHVzZSBJQ1UgZGF0ZSBmb3JtYXQgZ2VuZXJh
dG9yLCByYXRoZXIgdGhhbiBvdXIgb3duIHBhdHRlcm4gbGlzdCBhbmQgbWF0Y2hlci4KLSAgICBV
RXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICBVRGF0ZVRpbWVQYXR0ZXJuR2Vu
ZXJhdG9yKiBnZW5lcmF0b3IgPSB1ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMu
ZGF0YSgpLCAmc3RhdHVzKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXpl
IERhdGVUaW1lRm9ybWF0Il9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBTdHJpbmcg
ZGF0ZVN0eWxlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnBy
b3BlcnR5TmFtZXMtPmRhdGVTdHlsZSwgZnVsbExvbmdNZWRpdW1TaG9ydCwgImRhdGVTdHlsZSBt
dXN0IGJlIFwiZnVsbFwiLCBcImxvbmdcIiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVs
bHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIFN0
cmluZyBza2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpOwotICAgIFN0cmluZ1Zp
ZXcgc2tlbGV0b25WaWV3KHNrZWxldG9uKTsKKyAgICBTdHJpbmcgdGltZVN0eWxlID0gaW50bFN0
cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVT
dHlsZSwgZnVsbExvbmdNZWRpdW1TaG9ydCwgInRpbWVTdHlsZSBtdXN0IGJlIFwiZnVsbFwiLCBc
ImxvbmdcIiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVsbHB0cik7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKworICAgIGJvb2wgY2FuSW5jbHVkZUhvdXIg
PSB0cnVlOwogICAgIFZlY3RvcjxVQ2hhciwgMzI+IHBhdHRlcm5CdWZmZXI7Ci0gICAgc3RhdHVz
ID0gY2FsbEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRwZ19nZXRCZXN0UGF0dGVybldpdGhP
cHRpb25zLCBnZW5lcmF0b3IsIHNrZWxldG9uVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKS5n
ZXQoKSwgc2tlbGV0b25WaWV3Lmxlbmd0aCgpLCBVREFUUEdfTUFUQ0hfSE9VUl9GSUVMRF9MRU5H
VEgsIHBhdHRlcm5CdWZmZXIpOwotICAgIHVkYXRwZ19jbG9zZShnZW5lcmF0b3IpOwotICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOwotICAg
ICAgICByZXR1cm47CisgICAgaWYgKCFkYXRlU3R5bGUuaXNOdWxsKCkgfHwgIXRpbWVTdHlsZS5p
c051bGwoKSkgeworICAgICAgICAvLyAzMC4gRm9yIGVhY2ggcm93IGluIFRhYmxlIDEsIGV4Y2Vw
dCB0aGUgaGVhZGVyIHJvdywgZG8KKyAgICAgICAgLy8gICAgIGkuIExldCBwcm9wIGJlIHRoZSBu
YW1lIGdpdmVuIGluIHRoZSBQcm9wZXJ0eSBjb2x1bW4gb2YgdGhlIHJvdy4KKyAgICAgICAgLy8g
ICAgIGlpLiBMZXQgcCBiZSBvcHQuW1s8cHJvcD5dXS4KKyAgICAgICAgLy8gICAgIGlpaS4gSWYg
cCBpcyBub3QgdW5kZWZpbmVkLCB0aGVuCisgICAgICAgIC8vICAgICAgICAgMS4gVGhyb3cgYSBU
eXBlRXJyb3IgZXhjZXB0aW9uLgorICAgICAgICBpZiAoIXdlZWtkYXkuaXNOdWxsKCkgfHwgIWVy
YS5pc051bGwoKSB8fCAheWVhci5pc051bGwoKSB8fCAhbW9udGguaXNOdWxsKCkgfHwgIWRheS5p
c051bGwoKSB8fCAhaG91ci5pc051bGwoKSB8fCAhbWludXRlLmlzTnVsbCgpIHx8ICFzZWNvbmQu
aXNOdWxsKCkgfHwgIXRpbWVab25lTmFtZS5pc051bGwoKSkgeworICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImRhdGVTdHlsZSBvciB0aW1lU3R5bGUgcmVx
dWlyZXMgYWxsIHRoZSBkYXRlIGFuZCB0aW1lIGZvcm1hdHMgYXJlIG5vdCBzcGVjaWZpZWQiX3Mp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGltZVN0
eWxlIGlzIG5vdCBzcGVjaWZpZWQsIG1faG91ckN5Y2xlIGRvZXMgbm90IG1hdHRlci4gTGV0J3Mg
c2tpcCBlbmZvcmNpbmcgc3RlcC4KKyAgICAgICAgaWYgKHRpbWVTdHlsZS5pc051bGwoKSkgewor
ICAgICAgICAgICAgY2FuSW5jbHVkZUhvdXIgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faG91ckN5
Y2xlID0gU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHRvVURhdGVGb3JtYXRT
dHlsZSA9IFtdKGNvbnN0IFN0cmluZyYgc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChzdHlsZS5p
c051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gVURBVF9OT05FOworICAgICAgICAgICAg
aWYgKHN0eWxlID09ICJmdWxsIl9zKQorICAgICAgICAgICAgICAgIHJldHVybiBVREFUX0ZVTEw7
CisgICAgICAgICAgICBpZiAoc3R5bGUgPT0gImxvbmciX3MpCisgICAgICAgICAgICAgICAgcmV0
dXJuIFVEQVRfTE9ORzsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSAibWVkaXVtIl9zKQorICAg
ICAgICAgICAgICAgIHJldHVybiBVREFUX01FRElVTTsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9
PSAic2hvcnQiX3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIFVEQVRfU0hPUlQ7CisgICAgICAg
ICAgICByZXR1cm4gVURBVF9OT05FOworICAgICAgICB9OworCisgICAgICAgIC8vIFdlIGNhbm5v
dCB1c2UgdGhpcyBVRGF0ZUZvcm1hdCBkaXJlY3RseSB5ZXQgYmVjYXVzZSB3ZSBuZWVkIHRvIGVu
Zm9yY2Ugc3BlY2lmaWVkIGhvdXJDeWNsZS4KKyAgICAgICAgLy8gRmlyc3QsIHdlIGNyZWF0ZSBV
RGF0ZUZvcm1hdCB2aWEgZGF0ZVN0eWxlIGFuZCB0aW1lU3R5bGUuIEFuZCB0aGVuIGNvbnZlcnQg
aXQgdG8gcGF0dGVybiBzdHJpbmcuCisgICAgICAgIC8vIEFmdGVyIHVwZGF0aW5nIHRoaXMgcGF0
dGVybiBzdHJpbmcgd2l0aCBtX2hvdXJDeWNsZSwgd2UgY3JlYXRlIGEgZmluYWwgVURhdGVGb3Jt
YXQgd2l0aCB0aGUgdXBkYXRlZCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgICAgVUVycm9yQ29kZSBz
dGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgICAgIFN0cmluZ1ZpZXcgdGltZVpvbmVWaWV3KG1f
dGltZVpvbmUpOworICAgICAgICBhdXRvIGRhdGVGb3JtYXRGcm9tU3R5bGUgPSBzdGQ6OnVuaXF1
ZV9wdHI8VURhdGVGb3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4odWRhdF9vcGVuKHRvVURhdGVG
b3JtYXRTdHlsZSh0aW1lU3R5bGUpLCB0b1VEYXRlRm9ybWF0U3R5bGUoZGF0ZVN0eWxlKSwgZGF0
YUxvY2FsZVdpdGhFeHRlbnNpb25zLmRhdGEoKSwgdGltZVpvbmVWaWV3LnVwY29udmVydGVkQ2hh
cmFjdGVycygpLCB0aW1lWm9uZVZpZXcubGVuZ3RoKCksIG51bGxwdHIsIC0xLCAmc3RhdHVzKSk7
CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1l
Rm9ybWF0Il9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb25z
dGV4cHIgYm9vbCBsb2NhbGl6ZWQgPSBmYWxzZTsgLy8gQWxpZ25lZCB3aXRoIGhvdyBJQ1UgU2lt
cGxlRGF0ZVRpbWVGb3JtYXQ6OmZvcm1hdCB3b3Jrcy4gV2UgZG8gbm90IG5lZWQgdG8gdHJhbnNs
YXRlIHRoaXMgdG8gbG9jYWxpemVkIHBhdHRlcm4uCisgICAgICAgIHN0YXR1cyA9IGNhbGxCdWZm
ZXJQcm9kdWNpbmdGdW5jdGlvbih1ZGF0X3RvUGF0dGVybiwgZGF0ZUZvcm1hdEZyb21TdHlsZS5n
ZXQoKSwgbG9jYWxpemVkLCBwYXR0ZXJuQnVmZmVyKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShz
dGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgaG91ciBpcyBu
b3Qgc3BlY2lmaWVkLCBtX2hvdXJDeWNsZSBkb2VzIG5vdCBtYXR0ZXIuIExldCdzIHNraXAgZW5m
b3JjaW5nIHN0ZXAuCisgICAgICAgIGlmIChob3VyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBj
YW5JbmNsdWRlSG91ciA9IGZhbHNlOworICAgICAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmco
KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFsd2F5cyB1c2UgSUNVIGRhdGUgZm9ybWF0IGdl
bmVyYXRvciwgcmF0aGVyIHRoYW4gb3VyIG93biBwYXR0ZXJuIGxpc3QgYW5kIG1hdGNoZXIuCisg
ICAgICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICBVRGF0ZVRp
bWVQYXR0ZXJuR2VuZXJhdG9yKiBnZW5lcmF0b3IgPSB1ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0
aEV4dGVuc2lvbnMuZGF0YSgpLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0
dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
ZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHNrZWxldG9uID0gc2tlbGV0b25CdWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxldG9u
KTsKKyAgICAgICAgc3RhdHVzID0gY2FsbEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRwZ19n
ZXRCZXN0UGF0dGVybldpdGhPcHRpb25zLCBnZW5lcmF0b3IsIHNrZWxldG9uVmlldy51cGNvbnZl
cnRlZENoYXJhY3RlcnMoKS5nZXQoKSwgc2tlbGV0b25WaWV3Lmxlbmd0aCgpLCBVREFUUEdfTUFU
Q0hfSE9VUl9GSUVMRF9MRU5HVEgsIHBhdHRlcm5CdWZmZXIpOworICAgICAgICB1ZGF0cGdfY2xv
c2UoZ2VuZXJhdG9yKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAg
ICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRp
YWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAgICAgfQogCi0gICAgLy8gRW5mb3JjZSBvdXIgaG91ckN5Y2xlLCByZXBsYWNpbmcgaG91ciBj
aGFyYWN0ZXJzIGluIHBhdHRlcm4uCi0gICAgaWYgKCFtX2hvdXJDeWNsZS5pc051bGwoKSkgewot
ICAgICAgICBVQ2hhciBob3VyID0gJ0gnOwotICAgICAgICBpZiAobV9ob3VyQ3ljbGUgPT0gImgx
MSIpCi0gICAgICAgICAgICBob3VyID0gJ0snOwotICAgICAgICBlbHNlIGlmIChtX2hvdXJDeWNs
ZSA9PSAiaDEyIikKLSAgICAgICAgICAgIGhvdXIgPSAnaCc7Ci0gICAgICAgIGVsc2UgaWYgKG1f
aG91ckN5Y2xlID09ICJoMjQiKQotICAgICAgICAgICAgaG91ciA9ICdrJzsKLQotICAgICAgICBi
b29sIGlzRXNjYXBlZCA9IGZhbHNlOworICAgIC8vIEVuZm9yY2Ugb3VyIGhvdXJDeWNsZSwgcmVw
bGFjaW5nIGhvdXIgY2hhcmFjdGVycyBpbiBwYXR0ZXJuLiBJQ1UgY2FuIHBpY2sgZm9ybWF0IHdo
aWNoIGRvZXMgbm90IGFncmVlIHdpdGggc3BlY2lmaWVkIGhvdXJDeWNsZS4KKyAgICAvLyBUaGlz
IHN0ZXAgbW9kaWZpZXMgZ2VuZXJhdGVkIHBhdHRlcm4gdG8gdXNlIHNwZWNpZmllZCBob3VyQ3lj
bGUsIGFuZCBpdCBpcyBzcGVjaWZpZWQgaW4gMS4xLjEgSW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0
IHN0ZXAgMzMuCisgICAgaWYgKGNhbkluY2x1ZGVIb3VyKSB7CiAgICAgICAgIGJvb2wgaGFzSG91
ciA9IGZhbHNlOwotICAgICAgICBmb3IgKGF1dG8mIGMgOiBwYXR0ZXJuQnVmZmVyKSB7Ci0gICAg
ICAgICAgICBpZiAoYyA9PSAnXCcnKQotICAgICAgICAgICAgICAgIGlzRXNjYXBlZCA9ICFpc0Vz
Y2FwZWQ7Ci0gICAgICAgICAgICBlbHNlIGlmICghaXNFc2NhcGVkICYmIChjID09ICdoJyB8fCBj
ID09ICdIJyB8fCBjID09ICdrJyB8fCBjID09ICdLJykpIHsKLSAgICAgICAgICAgICAgICBjID0g
aG91cjsKLSAgICAgICAgICAgICAgICBoYXNIb3VyID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFtX2hv
dXJDeWNsZS5pc051bGwoKSB8fCAhaXNIb3VyMTJVbmRlZmluZWQpIHsKKyAgICAgICAgICAgIFVD
aGFyIGhvdXJGcm9tSG91ckN5Y2xlID0gJ0gnOyAvLyBIMjMKKyAgICAgICAgICAgIGlmIChtX2hv
dXJDeWNsZSA9PSAiaDExIikKKyAgICAgICAgICAgICAgICBob3VyRnJvbUhvdXJDeWNsZSA9ICdL
JzsKKyAgICAgICAgICAgIGVsc2UgaWYgKG1faG91ckN5Y2xlID09ICJoMTIiKQorICAgICAgICAg
ICAgICAgIGhvdXJGcm9tSG91ckN5Y2xlID0gJ2gnOworICAgICAgICAgICAgZWxzZSBpZiAobV9o
b3VyQ3ljbGUgPT0gImgyNCIpCisgICAgICAgICAgICAgICAgaG91ckZyb21Ib3VyQ3ljbGUgPSAn
ayc7CisKKyAgICAgICAgICAgIGJvb2wgaXNFc2NhcGVkID0gZmFsc2U7CisgICAgICAgICAgICBm
b3IgKGF1dG8mIGMgOiBwYXR0ZXJuQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0g
J1wnJykKKyAgICAgICAgICAgICAgICAgICAgaXNFc2NhcGVkID0gIWlzRXNjYXBlZDsKKyAgICAg
ICAgICAgICAgICBlbHNlIGlmICghaXNFc2NhcGVkICYmIChjID09ICdoJyB8fCBjID09ICdIJyB8
fCBjID09ICdrJyB8fCBjID09ICdLJykpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChj
KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0snOgorICAgICAgICAgICAgICAgICAgICBj
YXNlICdIJzogeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSG91cjEyVW5kZWZpbmVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBob3VyRnJvbUhvdXJDeWNsZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGhvdXIxMiA9PSBUcmlTdGF0ZTo6VHJ1ZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJ0snOworICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAnSCc7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBjYXNlICdoJzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnayc6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVmaW5lZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjID0gaG91ckZyb21Ib3VyQ3ljbGU7CisgICAgICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmIChob3VyMTIgPT0gVHJpU3RhdGU6OlRydWUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYyA9ICdoJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJ2snOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGhhc0hvdXIgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAo
IWhhc0hvdXIpCiAgICAgICAgICAgICBtX2hvdXJDeWNsZSA9IFN0cmluZygpOwogICAgIH0KIAor
ICAgIGF1dG8gdG9Gb3JtYXRTdHlsZSA9IFtdKGNvbnN0IFN0cmluZyYgc3R5bGUpIHsKKyAgICAg
ICAgaWYgKHN0eWxlLmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFN0eWxlOjpO
b25lOworICAgICAgICBpZiAoc3R5bGUgPT0gImZ1bGwiX3MpCisgICAgICAgICAgICByZXR1cm4g
Rm9ybWF0U3R5bGU6OkZ1bGw7CisgICAgICAgIGlmIChzdHlsZSA9PSAibG9uZyJfcykKKyAgICAg
ICAgICAgIHJldHVybiBGb3JtYXRTdHlsZTo6TG9uZzsKKyAgICAgICAgaWYgKHN0eWxlID09ICJt
ZWRpdW0iX3MpCisgICAgICAgICAgICByZXR1cm4gRm9ybWF0U3R5bGU6Ok1lZGl1bTsKKyAgICAg
ICAgaWYgKHN0eWxlID09ICJzaG9ydCJfcykKKyAgICAgICAgICAgIHJldHVybiBGb3JtYXRTdHls
ZTo6U2hvcnQ7CisgICAgICAgIHJldHVybiBGb3JtYXRTdHlsZTo6Tm9uZTsKKyAgICB9OworCiAg
ICAgU3RyaW5nVmlldyBwYXR0ZXJuKHBhdHRlcm5CdWZmZXIuZGF0YSgpLCBwYXR0ZXJuQnVmZmVy
LnNpemUoKSk7CiAgICAgc2V0Rm9ybWF0c0Zyb21QYXR0ZXJuKHBhdHRlcm4pOworICAgIG1fZGF0
ZVN0eWxlID0gdG9Gb3JtYXRTdHlsZShkYXRlU3R5bGUpOworICAgIG1fdGltZVN0eWxlID0gdG9G
b3JtYXRTdHlsZSh0aW1lU3R5bGUpOwogCi0gICAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAg
IFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwogICAgIFN0cmluZ1ZpZXcgdGltZVpv
bmVWaWV3KG1fdGltZVpvbmUpOwogICAgIG1fZGF0ZUZvcm1hdCA9IHN0ZDo6dW5pcXVlX3B0cjxV
RGF0ZUZvcm1hdCwgVURhdGVGb3JtYXREZWxldGVyPih1ZGF0X29wZW4oVURBVF9QQVRURVJOLCBV
REFUX1BBVFRFUk4sIGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksIHRpbWVab25lVmll
dy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgdGltZVpvbmVWaWV3Lmxlbmd0aCgpLCBwYXR0ZXJu
LnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBwYXR0ZXJuLmxlbmd0aCgpLCAmc3RhdHVzKSk7CiAg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CkBAIC04MDksNiArOTIxLDI1IEBAIEFTQ0lJTGl0
ZXJhbCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OnRpbWVab25lTmFtZVN0cmluZyhUaW1lWm9uZU5hbWUg
dGltZVpvbmVOYW1lKQogICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKIH0KIAorQVND
SUlMaXRlcmFsIEludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0U3R5bGVTdHJpbmcoRm9ybWF0U3R5
bGUgc3R5bGUpCit7CisgICAgc3dpdGNoIChzdHlsZSkgeworICAgIGNhc2UgRm9ybWF0U3R5bGU6
OkZ1bGw6CisgICAgICAgIHJldHVybiAiZnVsbCJfczsKKyAgICBjYXNlIEZvcm1hdFN0eWxlOjpM
b25nOgorICAgICAgICByZXR1cm4gImxvbmciX3M7CisgICAgY2FzZSBGb3JtYXRTdHlsZTo6TWVk
aXVtOgorICAgICAgICByZXR1cm4gIm1lZGl1bSJfczsKKyAgICBjYXNlIEZvcm1hdFN0eWxlOjpT
aG9ydDoKKyAgICAgICAgcmV0dXJuICJzaG9ydCJfczsKKyAgICBjYXNlIEZvcm1hdFN0eWxlOjpO
b25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbDo6bnVsbCgpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7Cit9CisKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21h
NDAyLyNzZWMtaW50bC5kYXRldGltZWZvcm1hdC5wcm90b3R5cGUucmVzb2x2ZWRvcHRpb25zCiBK
U09iamVjdCogSW50bERhdGVUaW1lRm9ybWF0OjpyZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKQEAgLTg1Miw2ICs5ODMsMTIgQEAgSlNPYmplY3Qq
IEludGxEYXRlVGltZUZvcm1hdDo6cmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpIGNvbnMKICAgICBpZiAobV90aW1lWm9uZU5hbWUgIT0gVGltZVpvbmVOYW1lOjpO
b25lKQogICAgICAgICBvcHRpb25zLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnRp
bWVab25lTmFtZSwganNOb250cml2aWFsU3RyaW5nKHZtLCB0aW1lWm9uZU5hbWVTdHJpbmcobV90
aW1lWm9uZU5hbWUpKSk7CiAKKyAgICBpZiAobV9kYXRlU3R5bGUgIT0gRm9ybWF0U3R5bGU6Ok5v
bmUpCisgICAgICAgIG9wdGlvbnMtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+ZGF0
ZVN0eWxlLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1hdFN0eWxlU3RyaW5nKG1fZGF0ZVN0
eWxlKSkpOworCisgICAgaWYgKG1fdGltZVN0eWxlICE9IEZvcm1hdFN0eWxlOjpOb25lKQorICAg
ICAgICBvcHRpb25zLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSwg
anNOb250cml2aWFsU3RyaW5nKHZtLCBmb3JtYXRTdHlsZVN0cmluZyhtX3RpbWVTdHlsZSkpKTsK
KwogICAgIHJldHVybiBvcHRpb25zOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5oCmluZGV4IDlkMjY3MWM4OWMyNGEwNjI3NjNi
ZWNjY2NjODQ4MmRmMmM3NTc3ZWQuLjU0YTlhMDJmMmUzYzg3ZTExZTM2ZjJlZjc4MDVhOGMyZGVj
NmFiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdC5oCkBAIC03OCw2ICs3OCw3IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBm
aW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBlbnVtIGNsYXNzIE1pbnV0ZSA6
IHVpbnQ4X3QgeyBOb25lLCBUd29EaWdpdCwgTnVtZXJpYyB9OwogICAgIGVudW0gY2xhc3MgU2Vj
b25kIDogdWludDhfdCB7IE5vbmUsIFR3b0RpZ2l0LCBOdW1lcmljIH07CiAgICAgZW51bSBjbGFz
cyBUaW1lWm9uZU5hbWUgOiB1aW50OF90IHsgTm9uZSwgU2hvcnQsIExvbmcgfTsKKyAgICBlbnVt
IGNsYXNzIEZvcm1hdFN0eWxlIDogdWludDhfdCB7IE5vbmUsIEZ1bGwsIExvbmcsIE1lZGl1bSwg
U2hvcnQgfTsKIAogICAgIHN0cnVjdCBVRGF0ZUZvcm1hdERlbGV0ZXIgewogICAgICAgICB2b2lk
IG9wZXJhdG9yKCkoVURhdGVGb3JtYXQqKSBjb25zdDsKQEAgLTkzLDYgKzk0LDcgQEAgY2xhc3Mg
SW50bERhdGVUaW1lRm9ybWF0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAg
IHN0YXRpYyBBU0NJSUxpdGVyYWwgbWludXRlU3RyaW5nKE1pbnV0ZSk7CiAgICAgc3RhdGljIEFT
Q0lJTGl0ZXJhbCBzZWNvbmRTdHJpbmcoU2Vjb25kKTsKICAgICBzdGF0aWMgQVNDSUlMaXRlcmFs
IHRpbWVab25lTmFtZVN0cmluZyhUaW1lWm9uZU5hbWUpOworICAgIHN0YXRpYyBBU0NJSUxpdGVy
YWwgZm9ybWF0U3R5bGVTdHJpbmcoRm9ybWF0U3R5bGUpOwogCiAgICAgV3JpdGVCYXJyaWVyPEpT
Qm91bmRGdW5jdGlvbj4gbV9ib3VuZEZvcm1hdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VURhdGVG
b3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4gbV9kYXRlRm9ybWF0OwpAQCAtMTExLDYgKzExMyw4
IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKICAgICBNaW51dGUgbV9taW51dGUgeyBNaW51dGU6Ok5vbmUgfTsKICAgICBTZWNvbmQg
bV9zZWNvbmQgeyBTZWNvbmQ6Ok5vbmUgfTsKICAgICBUaW1lWm9uZU5hbWUgbV90aW1lWm9uZU5h
bWUgeyBUaW1lWm9uZU5hbWU6Ok5vbmUgfTsKKyAgICBGb3JtYXRTdHlsZSBtX2RhdGVTdHlsZSB7
IEZvcm1hdFN0eWxlOjpOb25lIH07CisgICAgRm9ybWF0U3R5bGUgbV90aW1lU3R5bGUgeyBGb3Jt
YXRTdHlsZTo6Tm9uZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhZjZmMTM0ZjQzNjU3
YjRhNzk2NGFmOWFhZjU0OWE1NDhkM2EzYWQuLmNmN2EwNWRmY2E1ZDAwZjJhYmI1OTg4OTUyMzAy
MGE0MWZlZmI5ZWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDYtMjIgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbRUNNQS00MDJdIEludGwuRGF0ZVRpbWVGb3Jt
YXQgZGF0ZVN0eWxlL3RpbWVTdHlsZSBtaXNzaW5nIGluIFdlYktpdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Nzc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOgor
ICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIwMjAtMDYtMjEgIE1pY2hh
ZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgQXR0ZW1wdCB0
byB1bnNraXAgc3RyZXNzIHRlc3QgYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hwb2ludC1jYW4tYmUt
ZmlyZWQtcmVhbGx5LWFkZC1pbi1kZmcuanMgb24gbW9zdCBhcmNoaXRlY3R1cmVzCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmln
LnlhbWwKaW5kZXggYTc5ZjJkYmUzNjE2NmYwYjhlYmI5OTlkYjg1Y2Y0ZTE2NGI5NGRmMS4uNWNh
ZjFhZWI0NGEyZjI2NmI2OWYwNWRkOWY1MjVlMDM2MDNlMzViOSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbApA
QCAtMjIsNyArMjIsNiBAQCBza2lwOgogICAgIC0gcmVnZXhwLW1hdGNoLWluZGljZXMKICAgICAt
IHRvcC1sZXZlbC1hd2FpdAogICAgIC0gRmluYWxpemF0aW9uUmVnaXN0cnkKLSAgICAtIEludGwu
RGF0ZVRpbWVGb3JtYXQtZGF0ZXRpbWVzdHlsZQogICAgIC0gSW50bC5EYXRlVGltZUZvcm1hdC1k
YXlQZXJpb2QKICAgICAtIEludGwuRGF0ZVRpbWVGb3JtYXQtZm9ybWF0UmFuZ2UKICAgICAtIElu
dGwuRGF0ZVRpbWVGb3JtYXQtZnJhY3Rpb25hbFNlY29uZERpZ2l0cwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCmluZGV4IDc5YThmMWNjYzlmYTY4ZTdlYjYzZDE2Y2Y5OWY5MGE2NDczY2Y4NTku
LjZlNWNjMGRmYzU4OGI1ODI0ODMxZDQ1NTEyN2UyZDhiZTNmZmQ5M2IgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwKQEAgLTE2MzgsNiArMTYzOCw5IEBAIHRlc3QvaW50bDQwMi9Db2xsYXRv
ci9taXNzaW5nLXVuaWNvZGUtZXh0LXZhbHVlLWRlZmF1bHRzLXRvLXRydWUuanM6CiB0ZXN0L2lu
dGw0MDIvQ29sbGF0b3IvdXNhZ2UtZGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFvDhCwgQUVdIGFuZCBbQUUsIMOEXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiBz
ZWFyY2gnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbw4QsIEFFXSBh
bmQgW0FFLCDDhF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gc2VhcmNoJwordGVzdC9pbnRs
NDAyL0RhdGVUaW1lRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXQvdGltZWRhdGVzdHlsZS1lbi5qczoK
KyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogUmVzdWx0IGZvciBmdWxsIHdpdGgge30gRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrMTQ6MTI6NDcgUE0gQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWXCuywg
wqsyOjEyOjQ3IFBNIENvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lwrspIHRvIGJlIHRydWUnCisg
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBSZXN1bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBl
Y3RlZCBTYW1lVmFsdWUowqsxNDoxMjo0NyBQTSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7
LCDCqzI6MTI6NDcgUE0gQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWXCuykgdG8gYmUgdHJ1ZScK
IHRlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1hdC9wcm90b3R5cGUvcmVzb2x2ZWRPcHRpb25zL2hv
dXJDeWNsZS1kZWZhdWx0LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBT
YW1lVmFsdWUowqtoMjTCuywgwqtoMjPCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2gyNMK7LCDCq2gyM8K7KSB0byBiZSB0
cnVlJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402451</attachid>
            <date>2020-06-22 01:26:55 -0700</date>
            <delta_ts>2020-06-22 07:37:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209776-20200622012654.patch</filename>
            <type>text/plain</type>
            <size>20407</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDQwMDcwOGYwM2FjOTNjMDAyMjIyOGZlYWM4NjRmZTYwMjY0NzMxLi4xMTc2ODU5MDYxNGI5YzMw
YjVmMWJjMmUzZmM3OGViMTA2ZjdiMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMC0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGlt
ZVN0eWxlIG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGJ1aWx0aW5zL0RhdGVQcm90b3R5cGUuanM6CisgICAgICAgICh0
b0xvY2FsZVN0cmluZy50b0RhdGVUaW1lT3B0aW9uc0FueUFsbCk6CisgICAgICAgICh0b0xvY2Fs
ZVN0cmluZyk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcudG9EYXRlVGltZU9wdGlvbnNE
YXRlRGF0ZSk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcpOgorICAgICAgICAodG9Mb2Nh
bGVUaW1lU3RyaW5nLnRvRGF0ZVRpbWVPcHRpb25zVGltZVRpbWUpOgorICAgICAgICAodG9Mb2Nh
bGVUaW1lU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6Cisg
ICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjp0
b0RhdGVUaW1lT3B0aW9uc0FueURhdGUpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3Jt
YXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdDo6Zm9ybWF0U3R5bGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVG
b3JtYXQ6OnJlc29sdmVkT3B0aW9ucyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuaDoKKwogMjAyMC0wNi0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBw
bGUuY29tPgogCiAgICAgICAgIFtKU0NdIENoZWNrIEdpZ2FjYWdlIHVzYWdlIGJlZm9yZSBsYXVu
Y2hpbmcgVk0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9EYXRl
UHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5
cGUuanMKaW5kZXggM2JiMmIyZWMzM2FhNjdiN2U1YjM0ZDJiMjg5ODM5YTRkNzg0ZmE5MC4uNDY4
Zjg2Mzk0ZTYxYmFkMWU0YmI4MmYzODlmYjgwYmE3MDIxMzQ4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKQEAgLTUxLDYgKzUxLDEzIEBA
IGVsc2UgaWYgKG9wdHMgPT09IG51bGwpCiAgICAgICAgICAgICBvcHRpb25zLnNlY29uZCA9PT0g
QHVuZGVmaW5lZAogICAgICAgICApOwogCisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAg
ICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIg
dGltZVN0eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7CisgICAgICAgICAgICBpZiAoZGF0ZVN0eWxl
ICE9PSBAdW5kZWZpbmVkIHx8IHRpbWVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAg
ICAgICBuZWVkc0RlZmF1bHRzID0gZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICAvLyBPbmx5
IGNyZWF0ZSBkZXNjZW5kYW50IGlmIGl0IHdpbGwgaGF2ZSBvd24gcHJvcGVydGllcy4KICAgICAg
ICAgaWYgKG5lZWRzRGVmYXVsdHMpIHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBAT2JqZWN0LkBj
cmVhdGUob3B0aW9ucyk7CkBAIC0xMDMsNiArMTEwLDE1IEBAIGVsc2UgaWYgKG9wdHMgPT09IG51
bGwpCiAgICAgICAgICAgICBvcHRpb25zLmRheSA9PT0gQHVuZGVmaW5lZAogICAgICAgICApOwog
CisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0
aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50aW1l
U3R5bGU7CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAg
ICAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigidGltZVN0eWxlIGNhbm5vdCBiZSBzcGVjaWZpZWQi
KTsKKyAgICAgICAgICAgIGlmIChkYXRlU3R5bGUgIT09IEB1bmRlZmluZWQpCisgICAgICAgICAg
ICAgICAgbmVlZHNEZWZhdWx0cyA9IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgLy8gT25s
eSBjcmVhdGUgZGVzY2VuZGFudCBpZiBpdCB3aWxsIGhhdmUgb3duIHByb3BlcnRpZXMuCiAgICAg
ICAgIGlmIChuZWVkc0RlZmF1bHRzKSB7CiAgICAgICAgICAgICBvcHRpb25zID0gQE9iamVjdC5A
Y3JlYXRlKG9wdGlvbnMpOwpAQCAtMTUwLDYgKzE2NiwxNSBAQCBlbHNlIGlmIChvcHRzID09PSBu
dWxsKQogICAgICAgICAgICAgb3B0aW9ucy5zZWNvbmQgPT09IEB1bmRlZmluZWQKICAgICAgICAg
KTsKIAorICAgICAgICBpZiAob3B0aW9ucykgeworICAgICAgICAgICAgdmFyIGRhdGVTdHlsZSA9
IG9wdGlvbnMuZGF0ZVN0eWxlOworICAgICAgICAgICAgdmFyIHRpbWVTdHlsZSA9IG9wdGlvbnMu
dGltZVN0eWxlOworICAgICAgICAgICAgaWYgKGRhdGVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAg
ICAgICAgICAgICAgICBAdGhyb3dUeXBlRXJyb3IoImRhdGVTdHlsZSBjYW5ub3QgYmUgc3BlY2lm
aWVkIik7CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAg
ICAgICAgICAgIG5lZWRzRGVmYXVsdHMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIC8v
IE9ubHkgY3JlYXRlIGRlc2NlbmRhbnQgaWYgaXQgd2lsbCBoYXZlIG93biBwcm9wZXJ0aWVzLgog
ICAgICAgICBpZiAobmVlZHNEZWZhdWx0cykgewogICAgICAgICAgICAgb3B0aW9ucyA9IEBPYmpl
Y3QuQGNyZWF0ZShvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDE2OGVmZWRhMTRkNDYxMDUyNjA3NWFmZGViYWM5
YWRiYTI1MjY2YmEuLjhkY2I3NmMwZjc3NGFlZWViOGQzMjM5YjI2Y2Y4Y2NhZGEwYWRjMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aApAQCAtOTAsNiArOTAsNyBAQAogICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8o
Y291bnQpIFwKICAgICBtYWNybyhjb3VudGVycykgXAorICAgIG1hY3JvKGRhdGVTdHlsZSkgXAog
ICAgIG1hY3JvKGRheSkgXAogICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCiAgICAgbWFjcm8o
ZGVyZWYpIFwKQEAgLTE5MSw2ICsxOTIsNyBAQAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNy
byh0aGVuKSBcCiAgICAgbWFjcm8odGltZSkgXAorICAgIG1hY3JvKHRpbWVTdHlsZSkgXAogICAg
IG1hY3JvKHRpbWVab25lKSBcCiAgICAgbWFjcm8odGltZVpvbmVOYW1lKSBcCiAgICAgbWFjcm8o
dG9FeHBvbmVudGlhbCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggN2RmYmMzNjdjZjRmYjQyOThhZGY2MTFkMTJj
NmFlMmY0Njc2MTM4NS4uOTg5YmVhODhlNTMyYzE0YTYxZDMzNDYxMWYyMTVhN2VjYjFiMzMyYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXQuY3BwCkBAIC0yNzcsNiArMjc3LDE0IEBAIHN0YXRpYyBKU09iamVjdCogdG9EYXRlVGlt
ZU9wdGlvbnNBbnlEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAg
ICBpZiAoIXNlY29uZC5pc1VuZGVmaW5lZCgpKQogICAgICAgICBuZWVkRGVmYXVsdHMgPSBmYWxz
ZTsKIAorICAgIEpTVmFsdWUgZGF0ZVN0eWxlID0gb3B0aW9ucy0+Z2V0KGdsb2JhbE9iamVjdCwg
dm0ucHJvcGVydHlOYW1lcy0+ZGF0ZVN0eWxlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBudWxscHRyKTsKKyAgICBKU1ZhbHVlIHRpbWVTdHlsZSA9IG9wdGlvbnMtPmdldChnbG9i
YWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CisKKyAgICBpZiAoIWRhdGVTdHlsZS5pc1VuZGVmaW5l
ZCgpIHx8ICF0aW1lU3R5bGUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgbmVlZERlZmF1bHRzID0g
ZmFsc2U7CisKICAgICAvLyA3LiBJZiBuZWVkRGVmYXVsdHMgaXMgdHJ1ZSBhbmQgZGVmYXVsdHMg
aXMgZWl0aGVyICJkYXRlIiBvciAiYWxsIiwgdGhlbgogICAgIC8vIERlZmF1bHRzIGlzIGFsd2F5
cyAiZGF0ZSIuCiAgICAgaWYgKG5lZWREZWZhdWx0cykgewpAQCAtNTAwLDYgKzUwOCw3IEBAIHZv
aWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpYyA9IHsgIjItZGln
aXQiLCAibnVtZXJpYyIgfTsKICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9u
ZyA9IHsgIjItZGlnaXQiLCAibnVtZXJpYyIsICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIgfTsK
ICAgICBhdXRvIHNob3J0TG9uZyA9IHsgInNob3J0IiwgImxvbmciIH07CisgICAgYXV0byBmdWxs
TG9uZ01lZGl1bVNob3J0ID0geyAiZnVsbCIsICJsb25nIiwgIm1lZGl1bSIsICJzaG9ydCIgfTsK
IAogICAgIFN0cmluZyB3ZWVrZGF5ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPndlZWtkYXksIG5hcnJvd1Nob3J0TG9uZywgIndlZWtk
YXkgbXVzdCBiZSBcIm5hcnJvd1wiLCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKQEAgLTU3Miw4ICs1ODEs
NyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIu
YXBwZW5kKCdoJyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5h
cHBlbmQoJ0gnKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsK
KyAgICB9CiAKICAgICBTdHJpbmcgbWludXRlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1pbnV0ZSwgdHdvRGlnaXROdW1lcmljLCAi
bWludXRlIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAtNjA1LDUyICs2MTMsMTU2
IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9i
amVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+Zm9ybWF0TWF0Y2hlciwgeyAiYmFzaWMi
LCAiYmVzdCBmaXQiIH0sICJmb3JtYXRNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwiYmFzaWNcIiBv
ciBcImJlc3QgZml0XCIiLCAiYmVzdCBmaXQiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB2b2lkKCkpOwogCi0gICAgLy8gQWx3YXlzIHVzZSBJQ1UgZGF0ZSBmb3JtYXQgZ2VuZXJh
dG9yLCByYXRoZXIgdGhhbiBvdXIgb3duIHBhdHRlcm4gbGlzdCBhbmQgbWF0Y2hlci4KLSAgICBV
RXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICBVRGF0ZVRpbWVQYXR0ZXJuR2Vu
ZXJhdG9yKiBnZW5lcmF0b3IgPSB1ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMu
ZGF0YSgpLCAmc3RhdHVzKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAg
dGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXpl
IERhdGVUaW1lRm9ybWF0Il9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBTdHJpbmcg
ZGF0ZVN0eWxlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnBy
b3BlcnR5TmFtZXMtPmRhdGVTdHlsZSwgZnVsbExvbmdNZWRpdW1TaG9ydCwgImRhdGVTdHlsZSBt
dXN0IGJlIFwiZnVsbFwiLCBcImxvbmdcIiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVs
bHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIFN0
cmluZyBza2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpOwotICAgIFN0cmluZ1Zp
ZXcgc2tlbGV0b25WaWV3KHNrZWxldG9uKTsKKyAgICBTdHJpbmcgdGltZVN0eWxlID0gaW50bFN0
cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVT
dHlsZSwgZnVsbExvbmdNZWRpdW1TaG9ydCwgInRpbWVTdHlsZSBtdXN0IGJlIFwiZnVsbFwiLCBc
ImxvbmdcIiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVsbHB0cik7CisgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKworICAgIGJvb2wgY2FuSW5jbHVkZUhvdXIg
PSB0cnVlOwogICAgIFZlY3RvcjxVQ2hhciwgMzI+IHBhdHRlcm5CdWZmZXI7Ci0gICAgc3RhdHVz
ID0gY2FsbEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRwZ19nZXRCZXN0UGF0dGVybldpdGhP
cHRpb25zLCBnZW5lcmF0b3IsIHNrZWxldG9uVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKS5n
ZXQoKSwgc2tlbGV0b25WaWV3Lmxlbmd0aCgpLCBVREFUUEdfTUFUQ0hfSE9VUl9GSUVMRF9MRU5H
VEgsIHBhdHRlcm5CdWZmZXIpOwotICAgIHVkYXRwZ19jbG9zZShnZW5lcmF0b3IpOwotICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOwotICAg
ICAgICByZXR1cm47CisgICAgaWYgKCFkYXRlU3R5bGUuaXNOdWxsKCkgfHwgIXRpbWVTdHlsZS5p
c051bGwoKSkgeworICAgICAgICAvLyAzMC4gRm9yIGVhY2ggcm93IGluIFRhYmxlIDEsIGV4Y2Vw
dCB0aGUgaGVhZGVyIHJvdywgZG8KKyAgICAgICAgLy8gICAgIGkuIExldCBwcm9wIGJlIHRoZSBu
YW1lIGdpdmVuIGluIHRoZSBQcm9wZXJ0eSBjb2x1bW4gb2YgdGhlIHJvdy4KKyAgICAgICAgLy8g
ICAgIGlpLiBMZXQgcCBiZSBvcHQuW1s8cHJvcD5dXS4KKyAgICAgICAgLy8gICAgIGlpaS4gSWYg
cCBpcyBub3QgdW5kZWZpbmVkLCB0aGVuCisgICAgICAgIC8vICAgICAgICAgMS4gVGhyb3cgYSBU
eXBlRXJyb3IgZXhjZXB0aW9uLgorICAgICAgICBpZiAoIXdlZWtkYXkuaXNOdWxsKCkgfHwgIWVy
YS5pc051bGwoKSB8fCAheWVhci5pc051bGwoKSB8fCAhbW9udGguaXNOdWxsKCkgfHwgIWRheS5p
c051bGwoKSB8fCAhaG91ci5pc051bGwoKSB8fCAhbWludXRlLmlzTnVsbCgpIHx8ICFzZWNvbmQu
aXNOdWxsKCkgfHwgIXRpbWVab25lTmFtZS5pc051bGwoKSkgeworICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImRhdGVTdHlsZSBvciB0aW1lU3R5bGUgcmVx
dWlyZXMgYWxsIHRoZSBkYXRlIGFuZCB0aW1lIGZvcm1hdHMgYXJlIG5vdCBzcGVjaWZpZWQiX3Mp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGltZVN0
eWxlIGlzIG5vdCBzcGVjaWZpZWQsIG1faG91ckN5Y2xlIGRvZXMgbm90IG1hdHRlci4gTGV0J3Mg
c2tpcCBlbmZvcmNpbmcgc3RlcC4KKyAgICAgICAgaWYgKHRpbWVTdHlsZS5pc051bGwoKSkgewor
ICAgICAgICAgICAgY2FuSW5jbHVkZUhvdXIgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faG91ckN5
Y2xlID0gU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHRvVURhdGVGb3JtYXRT
dHlsZSA9IFtdKGNvbnN0IFN0cmluZyYgc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChzdHlsZS5p
c051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gVURBVF9OT05FOworICAgICAgICAgICAg
aWYgKHN0eWxlID09ICJmdWxsIl9zKQorICAgICAgICAgICAgICAgIHJldHVybiBVREFUX0ZVTEw7
CisgICAgICAgICAgICBpZiAoc3R5bGUgPT0gImxvbmciX3MpCisgICAgICAgICAgICAgICAgcmV0
dXJuIFVEQVRfTE9ORzsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSAibWVkaXVtIl9zKQorICAg
ICAgICAgICAgICAgIHJldHVybiBVREFUX01FRElVTTsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9
PSAic2hvcnQiX3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIFVEQVRfU0hPUlQ7CisgICAgICAg
ICAgICByZXR1cm4gVURBVF9OT05FOworICAgICAgICB9OworCisgICAgICAgIC8vIFdlIGNhbm5v
dCB1c2UgdGhpcyBVRGF0ZUZvcm1hdCBkaXJlY3RseSB5ZXQgYmVjYXVzZSB3ZSBuZWVkIHRvIGVu
Zm9yY2Ugc3BlY2lmaWVkIGhvdXJDeWNsZS4KKyAgICAgICAgLy8gRmlyc3QsIHdlIGNyZWF0ZSBV
RGF0ZUZvcm1hdCB2aWEgZGF0ZVN0eWxlIGFuZCB0aW1lU3R5bGUuIEFuZCB0aGVuIGNvbnZlcnQg
aXQgdG8gcGF0dGVybiBzdHJpbmcuCisgICAgICAgIC8vIEFmdGVyIHVwZGF0aW5nIHRoaXMgcGF0
dGVybiBzdHJpbmcgd2l0aCBtX2hvdXJDeWNsZSwgd2UgY3JlYXRlIGEgZmluYWwgVURhdGVGb3Jt
YXQgd2l0aCB0aGUgdXBkYXRlZCBwYXR0ZXJuIHN0cmluZy4KKyAgICAgICAgVUVycm9yQ29kZSBz
dGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgICAgIFN0cmluZ1ZpZXcgdGltZVpvbmVWaWV3KG1f
dGltZVpvbmUpOworICAgICAgICBhdXRvIGRhdGVGb3JtYXRGcm9tU3R5bGUgPSBzdGQ6OnVuaXF1
ZV9wdHI8VURhdGVGb3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4odWRhdF9vcGVuKHRvVURhdGVG
b3JtYXRTdHlsZSh0aW1lU3R5bGUpLCB0b1VEYXRlRm9ybWF0U3R5bGUoZGF0ZVN0eWxlKSwgZGF0
YUxvY2FsZVdpdGhFeHRlbnNpb25zLmRhdGEoKSwgdGltZVpvbmVWaWV3LnVwY29udmVydGVkQ2hh
cmFjdGVycygpLCB0aW1lWm9uZVZpZXcubGVuZ3RoKCksIG51bGxwdHIsIC0xLCAmc3RhdHVzKSk7
CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1l
Rm9ybWF0Il9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb25z
dGV4cHIgYm9vbCBsb2NhbGl6ZWQgPSBmYWxzZTsgLy8gQWxpZ25lZCB3aXRoIGhvdyBJQ1UgU2lt
cGxlRGF0ZVRpbWVGb3JtYXQ6OmZvcm1hdCB3b3Jrcy4gV2UgZG8gbm90IG5lZWQgdG8gdHJhbnNs
YXRlIHRoaXMgdG8gbG9jYWxpemVkIHBhdHRlcm4uCisgICAgICAgIHN0YXR1cyA9IGNhbGxCdWZm
ZXJQcm9kdWNpbmdGdW5jdGlvbih1ZGF0X3RvUGF0dGVybiwgZGF0ZUZvcm1hdEZyb21TdHlsZS5n
ZXQoKSwgbG9jYWxpemVkLCBwYXR0ZXJuQnVmZmVyKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShz
dGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3Bl
LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgaG91ciBpcyBu
b3Qgc3BlY2lmaWVkLCBtX2hvdXJDeWNsZSBkb2VzIG5vdCBtYXR0ZXIuIExldCdzIHNraXAgZW5m
b3JjaW5nIHN0ZXAuCisgICAgICAgIGlmIChob3VyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBj
YW5JbmNsdWRlSG91ciA9IGZhbHNlOworICAgICAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmco
KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEFsd2F5cyB1c2UgSUNVIGRhdGUgZm9ybWF0IGdl
bmVyYXRvciwgcmF0aGVyIHRoYW4gb3VyIG93biBwYXR0ZXJuIGxpc3QgYW5kIG1hdGNoZXIuCisg
ICAgICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICBVRGF0ZVRp
bWVQYXR0ZXJuR2VuZXJhdG9yKiBnZW5lcmF0b3IgPSB1ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0
aEV4dGVuc2lvbnMuZGF0YSgpLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0
dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
ZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHNrZWxldG9uID0gc2tlbGV0b25CdWls
ZGVyLnRvU3RyaW5nKCk7CisgICAgICAgIFN0cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxldG9u
KTsKKyAgICAgICAgc3RhdHVzID0gY2FsbEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRwZ19n
ZXRCZXN0UGF0dGVybldpdGhPcHRpb25zLCBnZW5lcmF0b3IsIHNrZWxldG9uVmlldy51cGNvbnZl
cnRlZENoYXJhY3RlcnMoKS5nZXQoKSwgc2tlbGV0b25WaWV3Lmxlbmd0aCgpLCBVREFUUEdfTUFU
Q0hfSE9VUl9GSUVMRF9MRU5HVEgsIHBhdHRlcm5CdWZmZXIpOworICAgICAgICB1ZGF0cGdfY2xv
c2UoZ2VuZXJhdG9yKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAg
ICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRp
YWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAgICAgfQogCi0gICAgLy8gRW5mb3JjZSBvdXIgaG91ckN5Y2xlLCByZXBsYWNpbmcgaG91ciBj
aGFyYWN0ZXJzIGluIHBhdHRlcm4uCi0gICAgaWYgKCFtX2hvdXJDeWNsZS5pc051bGwoKSkgewot
ICAgICAgICBVQ2hhciBob3VyID0gJ0gnOwotICAgICAgICBpZiAobV9ob3VyQ3ljbGUgPT0gImgx
MSIpCi0gICAgICAgICAgICBob3VyID0gJ0snOwotICAgICAgICBlbHNlIGlmIChtX2hvdXJDeWNs
ZSA9PSAiaDEyIikKLSAgICAgICAgICAgIGhvdXIgPSAnaCc7Ci0gICAgICAgIGVsc2UgaWYgKG1f
aG91ckN5Y2xlID09ICJoMjQiKQotICAgICAgICAgICAgaG91ciA9ICdrJzsKLQotICAgICAgICBi
b29sIGlzRXNjYXBlZCA9IGZhbHNlOworICAgIC8vIEVuZm9yY2Ugb3VyIGhvdXJDeWNsZSwgcmVw
bGFjaW5nIGhvdXIgY2hhcmFjdGVycyBpbiBwYXR0ZXJuLiBJQ1UgY2FuIHBpY2sgZm9ybWF0IHdo
aWNoIGRvZXMgbm90IGFncmVlIHdpdGggc3BlY2lmaWVkIGhvdXJDeWNsZS4KKyAgICAvLyBUaGlz
IHN0ZXAgbW9kaWZpZXMgZ2VuZXJhdGVkIHBhdHRlcm4gdG8gdXNlIHNwZWNpZmllZCBob3VyQ3lj
bGUsIGFuZCBpdCBpcyBzcGVjaWZpZWQgaW4gMS4xLjEgSW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0
IHN0ZXAgMzMuCisgICAgaWYgKGNhbkluY2x1ZGVIb3VyKSB7CiAgICAgICAgIGJvb2wgaGFzSG91
ciA9IGZhbHNlOwotICAgICAgICBmb3IgKGF1dG8mIGMgOiBwYXR0ZXJuQnVmZmVyKSB7Ci0gICAg
ICAgICAgICBpZiAoYyA9PSAnXCcnKQotICAgICAgICAgICAgICAgIGlzRXNjYXBlZCA9ICFpc0Vz
Y2FwZWQ7Ci0gICAgICAgICAgICBlbHNlIGlmICghaXNFc2NhcGVkICYmIChjID09ICdoJyB8fCBj
ID09ICdIJyB8fCBjID09ICdrJyB8fCBjID09ICdLJykpIHsKLSAgICAgICAgICAgICAgICBjID0g
aG91cjsKLSAgICAgICAgICAgICAgICBoYXNIb3VyID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFtX2hv
dXJDeWNsZS5pc051bGwoKSB8fCAhaXNIb3VyMTJVbmRlZmluZWQpIHsKKyAgICAgICAgICAgIFVD
aGFyIGhvdXJGcm9tSG91ckN5Y2xlID0gJ0gnOyAvLyBIMjMKKyAgICAgICAgICAgIGlmIChtX2hv
dXJDeWNsZSA9PSAiaDExIikKKyAgICAgICAgICAgICAgICBob3VyRnJvbUhvdXJDeWNsZSA9ICdL
JzsKKyAgICAgICAgICAgIGVsc2UgaWYgKG1faG91ckN5Y2xlID09ICJoMTIiKQorICAgICAgICAg
ICAgICAgIGhvdXJGcm9tSG91ckN5Y2xlID0gJ2gnOworICAgICAgICAgICAgZWxzZSBpZiAobV9o
b3VyQ3ljbGUgPT0gImgyNCIpCisgICAgICAgICAgICAgICAgaG91ckZyb21Ib3VyQ3ljbGUgPSAn
ayc7CisKKyAgICAgICAgICAgIGJvb2wgaXNFc2NhcGVkID0gZmFsc2U7CisgICAgICAgICAgICBm
b3IgKGF1dG8mIGMgOiBwYXR0ZXJuQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgaWYgKGMgPT0g
J1wnJykKKyAgICAgICAgICAgICAgICAgICAgaXNFc2NhcGVkID0gIWlzRXNjYXBlZDsKKyAgICAg
ICAgICAgICAgICBlbHNlIGlmICghaXNFc2NhcGVkICYmIChjID09ICdoJyB8fCBjID09ICdIJyB8
fCBjID09ICdrJyB8fCBjID09ICdLJykpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChj
KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0snOgorICAgICAgICAgICAgICAgICAgICBj
YXNlICdIJzogeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSG91cjEyVW5kZWZpbmVk
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBob3VyRnJvbUhvdXJDeWNsZTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGhvdXIxMiA9PSBUcmlTdGF0ZTo6VHJ1ZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJ0snOworICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAnSCc7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBjYXNlICdoJzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnayc6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVmaW5lZCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjID0gaG91ckZyb21Ib3VyQ3ljbGU7CisgICAgICAgICAgICAgICAg
ICAgICAgICBlbHNlIGlmIChob3VyMTIgPT0gVHJpU3RhdGU6OlRydWUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYyA9ICdoJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJ2snOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGhhc0hvdXIgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAo
IWhhc0hvdXIpCiAgICAgICAgICAgICBtX2hvdXJDeWNsZSA9IFN0cmluZygpOwogICAgIH0KIAor
ICAgIGF1dG8gdG9Gb3JtYXRTdHlsZSA9IFtdKGNvbnN0IFN0cmluZyYgc3R5bGUpIHsKKyAgICAg
ICAgaWYgKHN0eWxlLmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0dXJuIEZvcm1hdFN0eWxlOjpO
b25lOworICAgICAgICBpZiAoc3R5bGUgPT0gImZ1bGwiX3MpCisgICAgICAgICAgICByZXR1cm4g
Rm9ybWF0U3R5bGU6OkZ1bGw7CisgICAgICAgIGlmIChzdHlsZSA9PSAibG9uZyJfcykKKyAgICAg
ICAgICAgIHJldHVybiBGb3JtYXRTdHlsZTo6TG9uZzsKKyAgICAgICAgaWYgKHN0eWxlID09ICJt
ZWRpdW0iX3MpCisgICAgICAgICAgICByZXR1cm4gRm9ybWF0U3R5bGU6Ok1lZGl1bTsKKyAgICAg
ICAgaWYgKHN0eWxlID09ICJzaG9ydCJfcykKKyAgICAgICAgICAgIHJldHVybiBGb3JtYXRTdHls
ZTo6U2hvcnQ7CisgICAgICAgIHJldHVybiBGb3JtYXRTdHlsZTo6Tm9uZTsKKyAgICB9OworCiAg
ICAgU3RyaW5nVmlldyBwYXR0ZXJuKHBhdHRlcm5CdWZmZXIuZGF0YSgpLCBwYXR0ZXJuQnVmZmVy
LnNpemUoKSk7CiAgICAgc2V0Rm9ybWF0c0Zyb21QYXR0ZXJuKHBhdHRlcm4pOworICAgIG1fZGF0
ZVN0eWxlID0gdG9Gb3JtYXRTdHlsZShkYXRlU3R5bGUpOworICAgIG1fdGltZVN0eWxlID0gdG9G
b3JtYXRTdHlsZSh0aW1lU3R5bGUpOwogCi0gICAgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAg
IFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwogICAgIFN0cmluZ1ZpZXcgdGltZVpv
bmVWaWV3KG1fdGltZVpvbmUpOwogICAgIG1fZGF0ZUZvcm1hdCA9IHN0ZDo6dW5pcXVlX3B0cjxV
RGF0ZUZvcm1hdCwgVURhdGVGb3JtYXREZWxldGVyPih1ZGF0X29wZW4oVURBVF9QQVRURVJOLCBV
REFUX1BBVFRFUk4sIGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksIHRpbWVab25lVmll
dy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgdGltZVpvbmVWaWV3Lmxlbmd0aCgpLCBwYXR0ZXJu
LnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBwYXR0ZXJuLmxlbmd0aCgpLCAmc3RhdHVzKSk7CiAg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CkBAIC04MDksNiArOTIxLDI1IEBAIEFTQ0lJTGl0
ZXJhbCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OnRpbWVab25lTmFtZVN0cmluZyhUaW1lWm9uZU5hbWUg
dGltZVpvbmVOYW1lKQogICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKIH0KIAorQVND
SUlMaXRlcmFsIEludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0U3R5bGVTdHJpbmcoRm9ybWF0U3R5
bGUgc3R5bGUpCit7CisgICAgc3dpdGNoIChzdHlsZSkgeworICAgIGNhc2UgRm9ybWF0U3R5bGU6
OkZ1bGw6CisgICAgICAgIHJldHVybiAiZnVsbCJfczsKKyAgICBjYXNlIEZvcm1hdFN0eWxlOjpM
b25nOgorICAgICAgICByZXR1cm4gImxvbmciX3M7CisgICAgY2FzZSBGb3JtYXRTdHlsZTo6TWVk
aXVtOgorICAgICAgICByZXR1cm4gIm1lZGl1bSJfczsKKyAgICBjYXNlIEZvcm1hdFN0eWxlOjpT
aG9ydDoKKyAgICAgICAgcmV0dXJuICJzaG9ydCJfczsKKyAgICBjYXNlIEZvcm1hdFN0eWxlOjpO
b25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbDo6bnVsbCgpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7Cit9CisKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21h
NDAyLyNzZWMtaW50bC5kYXRldGltZWZvcm1hdC5wcm90b3R5cGUucmVzb2x2ZWRvcHRpb25zCiBK
U09iamVjdCogSW50bERhdGVUaW1lRm9ybWF0OjpyZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkgY29uc3QKIHsKQEAgLTg1Miw2ICs5ODMsMTIgQEAgSlNPYmplY3Qq
IEludGxEYXRlVGltZUZvcm1hdDo6cmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpIGNvbnMKICAgICBpZiAobV90aW1lWm9uZU5hbWUgIT0gVGltZVpvbmVOYW1lOjpO
b25lKQogICAgICAgICBvcHRpb25zLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnRp
bWVab25lTmFtZSwganNOb250cml2aWFsU3RyaW5nKHZtLCB0aW1lWm9uZU5hbWVTdHJpbmcobV90
aW1lWm9uZU5hbWUpKSk7CiAKKyAgICBpZiAobV9kYXRlU3R5bGUgIT0gRm9ybWF0U3R5bGU6Ok5v
bmUpCisgICAgICAgIG9wdGlvbnMtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+ZGF0
ZVN0eWxlLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1hdFN0eWxlU3RyaW5nKG1fZGF0ZVN0
eWxlKSkpOworCisgICAgaWYgKG1fdGltZVN0eWxlICE9IEZvcm1hdFN0eWxlOjpOb25lKQorICAg
ICAgICBvcHRpb25zLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSwg
anNOb250cml2aWFsU3RyaW5nKHZtLCBmb3JtYXRTdHlsZVN0cmluZyhtX3RpbWVTdHlsZSkpKTsK
KwogICAgIHJldHVybiBvcHRpb25zOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5oCmluZGV4IDlkMjY3MWM4OWMyNGEwNjI3NjNi
ZWNjY2NjODQ4MmRmMmM3NTc3ZWQuLjU0YTlhMDJmMmUzYzg3ZTExZTM2ZjJlZjc4MDVhOGMyZGVj
NmFiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdC5oCkBAIC03OCw2ICs3OCw3IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBm
aW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBlbnVtIGNsYXNzIE1pbnV0ZSA6
IHVpbnQ4X3QgeyBOb25lLCBUd29EaWdpdCwgTnVtZXJpYyB9OwogICAgIGVudW0gY2xhc3MgU2Vj
b25kIDogdWludDhfdCB7IE5vbmUsIFR3b0RpZ2l0LCBOdW1lcmljIH07CiAgICAgZW51bSBjbGFz
cyBUaW1lWm9uZU5hbWUgOiB1aW50OF90IHsgTm9uZSwgU2hvcnQsIExvbmcgfTsKKyAgICBlbnVt
IGNsYXNzIEZvcm1hdFN0eWxlIDogdWludDhfdCB7IE5vbmUsIEZ1bGwsIExvbmcsIE1lZGl1bSwg
U2hvcnQgfTsKIAogICAgIHN0cnVjdCBVRGF0ZUZvcm1hdERlbGV0ZXIgewogICAgICAgICB2b2lk
IG9wZXJhdG9yKCkoVURhdGVGb3JtYXQqKSBjb25zdDsKQEAgLTkzLDYgKzk0LDcgQEAgY2xhc3Mg
SW50bERhdGVUaW1lRm9ybWF0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAg
IHN0YXRpYyBBU0NJSUxpdGVyYWwgbWludXRlU3RyaW5nKE1pbnV0ZSk7CiAgICAgc3RhdGljIEFT
Q0lJTGl0ZXJhbCBzZWNvbmRTdHJpbmcoU2Vjb25kKTsKICAgICBzdGF0aWMgQVNDSUlMaXRlcmFs
IHRpbWVab25lTmFtZVN0cmluZyhUaW1lWm9uZU5hbWUpOworICAgIHN0YXRpYyBBU0NJSUxpdGVy
YWwgZm9ybWF0U3R5bGVTdHJpbmcoRm9ybWF0U3R5bGUpOwogCiAgICAgV3JpdGVCYXJyaWVyPEpT
Qm91bmRGdW5jdGlvbj4gbV9ib3VuZEZvcm1hdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VURhdGVG
b3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4gbV9kYXRlRm9ybWF0OwpAQCAtMTExLDYgKzExMyw4
IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2Jq
ZWN0IHsKICAgICBNaW51dGUgbV9taW51dGUgeyBNaW51dGU6Ok5vbmUgfTsKICAgICBTZWNvbmQg
bV9zZWNvbmQgeyBTZWNvbmQ6Ok5vbmUgfTsKICAgICBUaW1lWm9uZU5hbWUgbV90aW1lWm9uZU5h
bWUgeyBUaW1lWm9uZU5hbWU6Ok5vbmUgfTsKKyAgICBGb3JtYXRTdHlsZSBtX2RhdGVTdHlsZSB7
IEZvcm1hdFN0eWxlOjpOb25lIH07CisgICAgRm9ybWF0U3R5bGUgbV90aW1lU3R5bGUgeyBGb3Jt
YXRTdHlsZTo6Tm9uZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhZjZmMTM0ZjQzNjU3
YjRhNzk2NGFmOWFhZjU0OWE1NDhkM2EzYWQuLmNmN2EwNWRmY2E1ZDAwZjJhYmI1OTg4OTUyMzAy
MGE0MWZlZmI5ZWUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDYtMjIgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbRUNNQS00MDJdIEludGwuRGF0ZVRpbWVGb3Jt
YXQgZGF0ZVN0eWxlL3RpbWVTdHlsZSBtaXNzaW5nIGluIFdlYktpdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Nzc2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOgor
ICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIwMjAtMDYtMjEgIE1pY2hh
ZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgQXR0ZW1wdCB0
byB1bnNraXAgc3RyZXNzIHRlc3QgYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hwb2ludC1jYW4tYmUt
ZmlyZWQtcmVhbGx5LWFkZC1pbi1kZmcuanMgb24gbW9zdCBhcmNoaXRlY3R1cmVzCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmln
LnlhbWwKaW5kZXggYTc5ZjJkYmUzNjE2NmYwYjhlYmI5OTlkYjg1Y2Y0ZTE2NGI5NGRmMS4uNWNh
ZjFhZWI0NGEyZjI2NmI2OWYwNWRkOWY1MjVlMDM2MDNlMzViOSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbApA
QCAtMjIsNyArMjIsNiBAQCBza2lwOgogICAgIC0gcmVnZXhwLW1hdGNoLWluZGljZXMKICAgICAt
IHRvcC1sZXZlbC1hd2FpdAogICAgIC0gRmluYWxpemF0aW9uUmVnaXN0cnkKLSAgICAtIEludGwu
RGF0ZVRpbWVGb3JtYXQtZGF0ZXRpbWVzdHlsZQogICAgIC0gSW50bC5EYXRlVGltZUZvcm1hdC1k
YXlQZXJpb2QKICAgICAtIEludGwuRGF0ZVRpbWVGb3JtYXQtZm9ybWF0UmFuZ2UKICAgICAtIElu
dGwuRGF0ZVRpbWVGb3JtYXQtZnJhY3Rpb25hbFNlY29uZERpZ2l0cwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0
aW9ucy55YW1sCmluZGV4IDc5YThmMWNjYzlmYTY4ZTdlYjYzZDE2Y2Y5OWY5MGE2NDczY2Y4NTku
LjI1ZDYxOTg2ZjNmNzEzMjNmZWJhYjI2NWJiYTlkZWMzY2I2NTc4Y2UgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwKQEAgLTE2MzgsNiArMTYzOCw5IEBAIHRlc3QvaW50bDQwMi9Db2xsYXRv
ci9taXNzaW5nLXVuaWNvZGUtZXh0LXZhbHVlLWRlZmF1bHRzLXRvLXRydWUuanM6CiB0ZXN0L2lu
dGw0MDIvQ29sbGF0b3IvdXNhZ2UtZGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFvDhCwgQUVdIGFuZCBbQUUsIMOEXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiBz
ZWFyY2gnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBbw4QsIEFFXSBh
bmQgW0FFLCDDhF0gdG8gaGF2ZSB0aGUgc2FtZSBjb250ZW50cy4gc2VhcmNoJwordGVzdC9pbnRs
NDAyL0RhdGVUaW1lRm9ybWF0L3Byb3RvdHlwZS9mb3JtYXQvdGltZWRhdGVzdHlsZS1lbi5qczoK
KyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogUmVzdWx0IGZvciBmdWxsIHdpdGgge30gRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrMTQ6MTI6NDcgUE0gQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWXCuywg
wqsxNDoxMjo0NyBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7KSB0byBiZSB0cnVlJworICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogUmVzdWx0IGZvciBmdWxsIHdpdGgge30gRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrMTQ6MTI6NDcgUE0gQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWXCuywg
wqsxNDoxMjo0NyBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7KSB0byBiZSB0cnVlJwogdGVz
dC9pbnRsNDAyL0RhdGVUaW1lRm9ybWF0L3Byb3RvdHlwZS9yZXNvbHZlZE9wdGlvbnMvaG91ckN5
Y2xlLWRlZmF1bHQuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCq2gyNMK7LCDCq2gyM8K7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKraDI0wrssIMKraDIzwrspIHRvIGJlIHRydWUn
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402469</attachid>
            <date>2020-06-22 07:37:33 -0700</date>
            <delta_ts>2020-06-22 07:43:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209776-20200622073733.patch</filename>
            <type>text/plain</type>
            <size>24153</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDQwMDcwOGYwM2FjOTNjMDAyMjIyOGZlYWM4NjRmZTYwMjY0NzMxLi4wZWNiNzdhODc2YzUwMzM3
MzJmZGUxMDkxMzc2ZjdhNGU5M2VkZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMC0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGlt
ZVN0eWxlIG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgSW50bC5EYXRlVGltZUZvcm1h
dCBkYXRlU3R5bGUgYW5kIHRpbWVTdHlsZSBvcHRpb25zLiBXaGVuIGl0IGlzIHNwZWNpZmllZCwK
KyAgICAgICAgd2UgcXVlcnkgdGhlIGJlc3QgZGF0ZS10aW1lIGZvcm1hdCB3aXRoIHRoZXNlIG9w
dGlvbnMgdG8gSUNVIGluc3RlYWQgb2YgY29uZmlndXJpbmcgZWFjaCBkYXRlLXRpbWUKKyAgICAg
ICAgZm9ybWF0cy4KKworICAgICAgICBTaW5jZSBFQ01BNDAyIHJlcXVpcmVzIGVuZm9yY2VtZW50
IG9mIGhvdXJDeWNsZSBzcGVjaWZpZWQgZnJvbSB0aGUgb3B0aW9uLCBldmVuIGlmIElDVSBpZ25v
cmVzIHRoYXQuCisgICAgICAgIFNvLCBhZnRlciBnZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSBwYXR0
ZXJuIGZyb20gSUNVLCB3ZSBtb2RpZnkgdGhpcyBwYXR0ZXJuIGFuZCByZS1jcmVhdGUgVURhdGVG
b3JtYXQKKyAgICAgICAgZnJvbSB0aGUgbW9kaWZpZWQgcGF0dGVybi4KKworICAgICAgICAqIGJ1
aWx0aW5zL0RhdGVQcm90b3R5cGUuanM6CisgICAgICAgICh0b0xvY2FsZVN0cmluZy50b0RhdGVU
aW1lT3B0aW9uc0FueUFsbCk6CisgICAgICAgICh0b0xvY2FsZVN0cmluZyk6CisgICAgICAgICh0
b0xvY2FsZURhdGVTdHJpbmcudG9EYXRlVGltZU9wdGlvbnNEYXRlRGF0ZSk6CisgICAgICAgICh0
b0xvY2FsZURhdGVTdHJpbmcpOgorICAgICAgICAodG9Mb2NhbGVUaW1lU3RyaW5nLnRvRGF0ZVRp
bWVPcHRpb25zVGltZVRpbWUpOgorICAgICAgICAodG9Mb2NhbGVUaW1lU3RyaW5nKToKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JbnRs
RGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjp0b0RhdGVUaW1lT3B0aW9uc0FueURh
dGUpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGlt
ZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0U3R5bGVT
dHJpbmcpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OnJlc29sdmVkT3B0aW9u
cyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuaDoKKwogMjAy
MC0wNi0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtK
U0NdIENoZWNrIEdpZ2FjYWdlIHVzYWdlIGJlZm9yZSBsYXVuY2hpbmcgVk0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9EYXRlUHJvdG90eXBlLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKaW5kZXggM2JiMmIyZWMz
M2FhNjdiN2U1YjM0ZDJiMjg5ODM5YTRkNzg0ZmE5MC4uNDY4Zjg2Mzk0ZTYxYmFkMWU0YmI4MmYz
ODlmYjgwYmE3MDIxMzQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0RhdGVQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0RhdGVQcm90b3R5cGUuanMKQEAgLTUxLDYgKzUxLDEzIEBAIGVsc2UgaWYgKG9wdHMgPT09IG51
bGwpCiAgICAgICAgICAgICBvcHRpb25zLnNlY29uZCA9PT0gQHVuZGVmaW5lZAogICAgICAgICAp
OwogCisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0g
b3B0aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50
aW1lU3R5bGU7CisgICAgICAgICAgICBpZiAoZGF0ZVN0eWxlICE9PSBAdW5kZWZpbmVkIHx8IHRp
bWVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBuZWVkc0RlZmF1bHRzID0g
ZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICAvLyBPbmx5IGNyZWF0ZSBkZXNjZW5kYW50IGlm
IGl0IHdpbGwgaGF2ZSBvd24gcHJvcGVydGllcy4KICAgICAgICAgaWYgKG5lZWRzRGVmYXVsdHMp
IHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBAT2JqZWN0LkBjcmVhdGUob3B0aW9ucyk7CkBAIC0x
MDMsNiArMTEwLDE1IEBAIGVsc2UgaWYgKG9wdHMgPT09IG51bGwpCiAgICAgICAgICAgICBvcHRp
b25zLmRheSA9PT0gQHVuZGVmaW5lZAogICAgICAgICApOwogCisgICAgICAgIGlmIChvcHRpb25z
KSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5kYXRlU3R5bGU7CisgICAg
ICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7CisgICAgICAgICAgICBp
ZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIEB0aHJvd1R5cGVF
cnJvcigidGltZVN0eWxlIGNhbm5vdCBiZSBzcGVjaWZpZWQiKTsKKyAgICAgICAgICAgIGlmIChk
YXRlU3R5bGUgIT09IEB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgbmVlZHNEZWZhdWx0cyA9
IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgLy8gT25seSBjcmVhdGUgZGVzY2VuZGFudCBp
ZiBpdCB3aWxsIGhhdmUgb3duIHByb3BlcnRpZXMuCiAgICAgICAgIGlmIChuZWVkc0RlZmF1bHRz
KSB7CiAgICAgICAgICAgICBvcHRpb25zID0gQE9iamVjdC5AY3JlYXRlKG9wdGlvbnMpOwpAQCAt
MTUwLDYgKzE2NiwxNSBAQCBlbHNlIGlmIChvcHRzID09PSBudWxsKQogICAgICAgICAgICAgb3B0
aW9ucy5zZWNvbmQgPT09IEB1bmRlZmluZWQKICAgICAgICAgKTsKIAorICAgICAgICBpZiAob3B0
aW9ucykgeworICAgICAgICAgICAgdmFyIGRhdGVTdHlsZSA9IG9wdGlvbnMuZGF0ZVN0eWxlOwor
ICAgICAgICAgICAgdmFyIHRpbWVTdHlsZSA9IG9wdGlvbnMudGltZVN0eWxlOworICAgICAgICAg
ICAgaWYgKGRhdGVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBAdGhyb3dU
eXBlRXJyb3IoImRhdGVTdHlsZSBjYW5ub3QgYmUgc3BlY2lmaWVkIik7CisgICAgICAgICAgICBp
ZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIG5lZWRzRGVmYXVs
dHMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIE9ubHkgY3JlYXRlIGRlc2NlbmRh
bnQgaWYgaXQgd2lsbCBoYXZlIG93biBwcm9wZXJ0aWVzLgogICAgICAgICBpZiAobmVlZHNEZWZh
dWx0cykgewogICAgICAgICAgICAgb3B0aW9ucyA9IEBPYmplY3QuQGNyZWF0ZShvcHRpb25zKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
CmluZGV4IDE2OGVmZWRhMTRkNDYxMDUyNjA3NWFmZGViYWM5YWRiYTI1MjY2YmEuLjhkY2I3NmMw
Zjc3NGFlZWViOGQzMjM5YjI2Y2Y4Y2NhZGEwYWRjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtOTAsNiArOTAsNyBAQAog
ICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8oY291bnQpIFwKICAgICBtYWNybyhj
b3VudGVycykgXAorICAgIG1hY3JvKGRhdGVTdHlsZSkgXAogICAgIG1hY3JvKGRheSkgXAogICAg
IG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCiAgICAgbWFjcm8oZGVyZWYpIFwKQEAgLTE5MSw2ICsx
OTIsNyBAQAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNybyh0aGVuKSBcCiAgICAgbWFjcm8o
dGltZSkgXAorICAgIG1hY3JvKHRpbWVTdHlsZSkgXAogICAgIG1hY3JvKHRpbWVab25lKSBcCiAg
ICAgbWFjcm8odGltZVpvbmVOYW1lKSBcCiAgICAgbWFjcm8odG9FeHBvbmVudGlhbCkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5j
cHAKaW5kZXggN2RmYmMzNjdjZjRmYjQyOThhZGY2MTFkMTJjNmFlMmY0Njc2MTM4NS4uMmFmYzkx
NWJkMTY0MzMzYjVlNDkwYTE5NmY1ZTIzOWQxZTM2NGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC0yNzcsNiAr
Mjc3LDE0IEBAIHN0YXRpYyBKU09iamVjdCogdG9EYXRlVGltZU9wdGlvbnNBbnlEYXRlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAgICBpZiAoIXNlY29uZC5pc1VuZGVm
aW5lZCgpKQogICAgICAgICBuZWVkRGVmYXVsdHMgPSBmYWxzZTsKIAorICAgIEpTVmFsdWUgZGF0
ZVN0eWxlID0gb3B0aW9ucy0+Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+ZGF0
ZVN0eWxlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBK
U1ZhbHVlIHRpbWVTdHlsZSA9IG9wdGlvbnMtPmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5
TmFtZXMtPnRpbWVTdHlsZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7CisKKyAgICBpZiAoIWRhdGVTdHlsZS5pc1VuZGVmaW5lZCgpIHx8ICF0aW1lU3R5bGUuaXNV
bmRlZmluZWQoKSkKKyAgICAgICAgbmVlZERlZmF1bHRzID0gZmFsc2U7CisKICAgICAvLyA3LiBJ
ZiBuZWVkRGVmYXVsdHMgaXMgdHJ1ZSBhbmQgZGVmYXVsdHMgaXMgZWl0aGVyICJkYXRlIiBvciAi
YWxsIiwgdGhlbgogICAgIC8vIERlZmF1bHRzIGlzIGFsd2F5cyAiZGF0ZSIuCiAgICAgaWYgKG5l
ZWREZWZhdWx0cykgewpAQCAtNTAwLDYgKzUwOCw3IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0
Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpYyA9IHsgIjItZGlnaXQiLCAibnVtZXJpYyIgfTsKICAg
ICBhdXRvIHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9uZyA9IHsgIjItZGlnaXQiLCAibnVt
ZXJpYyIsICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIgfTsKICAgICBhdXRvIHNob3J0TG9uZyA9
IHsgInNob3J0IiwgImxvbmciIH07CisgICAgYXV0byBmdWxsTG9uZ01lZGl1bVNob3J0ID0geyAi
ZnVsbCIsICJsb25nIiwgIm1lZGl1bSIsICJzaG9ydCIgfTsKIAogICAgIFN0cmluZyB3ZWVrZGF5
ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFt
ZXMtPndlZWtkYXksIG5hcnJvd1Nob3J0TG9uZywgIndlZWtkYXkgbXVzdCBiZSBcIm5hcnJvd1wi
LCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgdm9pZCgpKTsKQEAgLTU3Miw4ICs1ODEsNyBAQCB2b2lkIEludGxEYXRlVGlt
ZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdoJyk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ0gnKTsKLSAgICB9IGVs
c2UKLSAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsKKyAgICB9CiAKICAgICBTdHJpbmcg
bWludXRlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3Bl
cnR5TmFtZXMtPm1pbnV0ZSwgdHdvRGlnaXROdW1lcmljLCAibWludXRlIG11c3QgYmUgXCIyLWRp
Z2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB2b2lkKCkpOwpAQCAtNjA1LDUyICs2MTMsMTU4IEBAIHZvaWQgSW50bERhdGVUaW1l
Rm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwKICAgICBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJv
cGVydHlOYW1lcy0+Zm9ybWF0TWF0Y2hlciwgeyAiYmFzaWMiLCAiYmVzdCBmaXQiIH0sICJmb3Jt
YXRNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwiYmFzaWNcIiBvciBcImJlc3QgZml0XCIiLCAiYmVz
dCBmaXQiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAg
Ly8gQWx3YXlzIHVzZSBJQ1UgZGF0ZSBmb3JtYXQgZ2VuZXJhdG9yLCByYXRoZXIgdGhhbiBvdXIg
b3duIHBhdHRlcm4gbGlzdCBhbmQgbWF0Y2hlci4KLSAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVf
WkVST19FUlJPUjsKLSAgICBVRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yKiBnZW5lcmF0b3IgPSB1
ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCAmc3RhdHVzKTsKLSAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1lRm9ybWF0Il9zKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBTdHJpbmcgZGF0ZVN0eWxlID0gaW50bFN0cmlu
Z09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmRhdGVTdHls
ZSwgZnVsbExvbmdNZWRpdW1TaG9ydCwgImRhdGVTdHlsZSBtdXN0IGJlIFwiZnVsbFwiLCBcImxv
bmdcIiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIFN0cmluZyBza2VsZXRvbiA9IHNrZWxl
dG9uQnVpbGRlci50b1N0cmluZygpOwotICAgIFN0cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxl
dG9uKTsKKyAgICBTdHJpbmcgdGltZVN0eWxlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSwgZnVsbExvbmdNZWRpdW1T
aG9ydCwgInRpbWVTdHlsZSBtdXN0IGJlIFwiZnVsbFwiLCBcImxvbmdcIiwgXCJtZWRpdW1cIiwg
b3IgXCJzaG9ydFwiIiwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKKworICAgIGJvb2wgY2FuSW5jbHVkZUhvdXIgPSB0cnVlOwogICAgIFZlY3RvcjxV
Q2hhciwgMzI+IHBhdHRlcm5CdWZmZXI7Ci0gICAgc3RhdHVzID0gY2FsbEJ1ZmZlclByb2R1Y2lu
Z0Z1bmN0aW9uKHVkYXRwZ19nZXRCZXN0UGF0dGVybldpdGhPcHRpb25zLCBnZW5lcmF0b3IsIHNr
ZWxldG9uVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKS5nZXQoKSwgc2tlbGV0b25WaWV3Lmxl
bmd0aCgpLCBVREFUUEdfTUFUQ0hfSE9VUl9GSUVMRF9MRU5HVEgsIHBhdHRlcm5CdWZmZXIpOwot
ICAgIHVkYXRwZ19jbG9zZShnZW5lcmF0b3IpOwotICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkg
ewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRv
IGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOwotICAgICAgICByZXR1cm47CisgICAgaWYg
KCFkYXRlU3R5bGUuaXNOdWxsKCkgfHwgIXRpbWVTdHlsZS5pc051bGwoKSkgeworICAgICAgICAv
LyAzMC4gRm9yIGVhY2ggcm93IGluIFRhYmxlIDEsIGV4Y2VwdCB0aGUgaGVhZGVyIHJvdywgZG8K
KyAgICAgICAgLy8gICAgIGkuIExldCBwcm9wIGJlIHRoZSBuYW1lIGdpdmVuIGluIHRoZSBQcm9w
ZXJ0eSBjb2x1bW4gb2YgdGhlIHJvdy4KKyAgICAgICAgLy8gICAgIGlpLiBMZXQgcCBiZSBvcHQu
W1s8cHJvcD5dXS4KKyAgICAgICAgLy8gICAgIGlpaS4gSWYgcCBpcyBub3QgdW5kZWZpbmVkLCB0
aGVuCisgICAgICAgIC8vICAgICAgICAgMS4gVGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgor
ICAgICAgICBpZiAoIXdlZWtkYXkuaXNOdWxsKCkgfHwgIWVyYS5pc051bGwoKSB8fCAheWVhci5p
c051bGwoKSB8fCAhbW9udGguaXNOdWxsKCkgfHwgIWRheS5pc051bGwoKSB8fCAhaG91ci5pc051
bGwoKSB8fCAhbWludXRlLmlzTnVsbCgpIHx8ICFzZWNvbmQuaXNOdWxsKCkgfHwgIXRpbWVab25l
TmFtZS5pc051bGwoKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgImRhdGVTdHlsZSBvciB0aW1lU3R5bGUgcmVxdWlyZXMgYWxsIHRoZSBkYXRlIGFu
ZCB0aW1lIGZvcm1hdHMgYXJlIG5vdCBzcGVjaWZpZWQiX3MpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGltZVN0eWxlIGlzIG5vdCBzcGVjaWZpZWQs
IG1faG91ckN5Y2xlIGRvZXMgbm90IG1hdHRlci4gTGV0J3Mgc2tpcCBlbmZvcmNpbmcgc3RlcC4K
KyAgICAgICAgaWYgKHRpbWVTdHlsZS5pc051bGwoKSkgeworICAgICAgICAgICAgY2FuSW5jbHVk
ZUhvdXIgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faG91ckN5Y2xlID0gU3RyaW5nKCk7CisgICAg
ICAgIH0KKworICAgICAgICBhdXRvIHRvVURhdGVGb3JtYXRTdHlsZSA9IFtdKGNvbnN0IFN0cmlu
ZyYgc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChzdHlsZS5pc051bGwoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gVURBVF9OT05FOworICAgICAgICAgICAgaWYgKHN0eWxlID09ICJmdWxsIl9z
KQorICAgICAgICAgICAgICAgIHJldHVybiBVREFUX0ZVTEw7CisgICAgICAgICAgICBpZiAoc3R5
bGUgPT0gImxvbmciX3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIFVEQVRfTE9ORzsKKyAgICAg
ICAgICAgIGlmIChzdHlsZSA9PSAibWVkaXVtIl9zKQorICAgICAgICAgICAgICAgIHJldHVybiBV
REFUX01FRElVTTsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSAic2hvcnQiX3MpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIFVEQVRfU0hPUlQ7CisgICAgICAgICAgICByZXR1cm4gVURBVF9OT05F
OworICAgICAgICB9OworCisgICAgICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhpcyBVRGF0ZUZvcm1h
dCBkaXJlY3RseSB5ZXQgYmVjYXVzZSB3ZSBuZWVkIHRvIGVuZm9yY2Ugc3BlY2lmaWVkIGhvdXJD
eWNsZS4KKyAgICAgICAgLy8gRmlyc3QsIHdlIGNyZWF0ZSBVRGF0ZUZvcm1hdCB2aWEgZGF0ZVN0
eWxlIGFuZCB0aW1lU3R5bGUuIEFuZCB0aGVuIGNvbnZlcnQgaXQgdG8gcGF0dGVybiBzdHJpbmcu
CisgICAgICAgIC8vIEFmdGVyIHVwZGF0aW5nIHRoaXMgcGF0dGVybiBzdHJpbmcgd2l0aCBtX2hv
dXJDeWNsZSwgd2UgY3JlYXRlIGEgZmluYWwgVURhdGVGb3JtYXQgd2l0aCB0aGUgdXBkYXRlZCBw
YXR0ZXJuIHN0cmluZy4KKyAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7
CisgICAgICAgIFN0cmluZ1ZpZXcgdGltZVpvbmVWaWV3KG1fdGltZVpvbmUpOworICAgICAgICBh
dXRvIGRhdGVGb3JtYXRGcm9tU3R5bGUgPSBzdGQ6OnVuaXF1ZV9wdHI8VURhdGVGb3JtYXQsIFVE
YXRlRm9ybWF0RGVsZXRlcj4odWRhdF9vcGVuKHRvVURhdGVGb3JtYXRTdHlsZSh0aW1lU3R5bGUp
LCB0b1VEYXRlRm9ybWF0U3R5bGUoZGF0ZVN0eWxlKSwgZGF0YUxvY2FsZVdpdGhFeHRlbnNpb25z
LmRhdGEoKSwgdGltZVpvbmVWaWV3LnVwY29udmVydGVkQ2hhcmFjdGVycygpLCB0aW1lWm9uZVZp
ZXcubGVuZ3RoKCksIG51bGxwdHIsIC0xLCAmc3RhdHVzKSk7CisgICAgICAgIGlmIChVX0ZBSUxV
UkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1lRm9ybWF0Il9zKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb25zdGV4cHIgYm9vbCBsb2NhbGl6ZWQg
PSBmYWxzZTsgLy8gQWxpZ25lZCB3aXRoIGhvdyBJQ1UgU2ltcGxlRGF0ZVRpbWVGb3JtYXQ6OmZv
cm1hdCB3b3Jrcy4gV2UgZG8gbm90IG5lZWQgdG8gdHJhbnNsYXRlIHRoaXMgdG8gbG9jYWxpemVk
IHBhdHRlcm4uCisgICAgICAgIHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9kdWNpbmdGdW5jdGlvbih1
ZGF0X3RvUGF0dGVybiwgZGF0ZUZvcm1hdEZyb21TdHlsZS5nZXQoKSwgbG9jYWxpemVkLCBwYXR0
ZXJuQnVmZmVyKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAg
ICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxp
emUgRGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgaG91ciBpcyBub3Qgc3BlY2lmaWVkLCBtX2hvdXJD
eWNsZSBkb2VzIG5vdCBtYXR0ZXIuIExldCdzIHNraXAgZW5mb3JjaW5nIHN0ZXAuCisgICAgICAg
IGlmIChob3VyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBjYW5JbmNsdWRlSG91ciA9IGZhbHNl
OworICAgICAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIEFsd2F5cyB1c2UgSUNVIGRhdGUgZm9ybWF0IGdlbmVyYXRvciwgcmF0aGVyIHRoYW4g
b3VyIG93biBwYXR0ZXJuIGxpc3QgYW5kIG1hdGNoZXIuCisgICAgICAgIFVFcnJvckNvZGUgc3Rh
dHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICBVRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yKiBn
ZW5lcmF0b3IgPSB1ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCAm
c3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUg
RGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgU3RyaW5nIHNrZWxldG9uID0gc2tlbGV0b25CdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIFN0cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxldG9uKTsKKyAgICAgICAgc3RhdHVzID0g
Y2FsbEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRwZ19nZXRCZXN0UGF0dGVybldpdGhPcHRp
b25zLCBnZW5lcmF0b3IsIHNrZWxldG9uVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKS5nZXQo
KSwgc2tlbGV0b25WaWV3Lmxlbmd0aCgpLCBVREFUUEdfTUFUQ0hfSE9VUl9GSUVMRF9MRU5HVEgs
IHBhdHRlcm5CdWZmZXIpOworICAgICAgICB1ZGF0cGdfY2xvc2UoZ2VuZXJhdG9yKTsKKyAgICAg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQi
X3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gRW5m
b3JjZSBvdXIgaG91ckN5Y2xlLCByZXBsYWNpbmcgaG91ciBjaGFyYWN0ZXJzIGluIHBhdHRlcm4u
Ci0gICAgaWYgKCFtX2hvdXJDeWNsZS5pc051bGwoKSkgewotICAgICAgICBVQ2hhciBob3VyID0g
J0gnOwotICAgICAgICBpZiAobV9ob3VyQ3ljbGUgPT0gImgxMSIpCi0gICAgICAgICAgICBob3Vy
ID0gJ0snOwotICAgICAgICBlbHNlIGlmIChtX2hvdXJDeWNsZSA9PSAiaDEyIikKLSAgICAgICAg
ICAgIGhvdXIgPSAnaCc7Ci0gICAgICAgIGVsc2UgaWYgKG1faG91ckN5Y2xlID09ICJoMjQiKQot
ICAgICAgICAgICAgaG91ciA9ICdrJzsKLQotICAgICAgICBib29sIGlzRXNjYXBlZCA9IGZhbHNl
OworICAgIC8vIEVuZm9yY2Ugb3VyIGhvdXJDeWNsZSwgcmVwbGFjaW5nIGhvdXIgY2hhcmFjdGVy
cyBpbiBwYXR0ZXJuLiBJQ1UgY2FuIHBpY2sgZm9ybWF0IHdoaWNoIGRvZXMgbm90IGFncmVlIHdp
dGggc3BlY2lmaWVkIGhvdXJDeWNsZS4KKyAgICAvLyBUaGlzIHN0ZXAgbW9kaWZpZXMgZ2VuZXJh
dGVkIHBhdHRlcm4gdG8gdXNlIHNwZWNpZmllZCBob3VyQ3ljbGUsIGFuZCBpdCBpcyBzcGVjaWZp
ZWQgaW4gMS4xLjEgSW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0IHN0ZXAgMzMuCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBjYWNoZSBgaG91ckN5Y2xlRGVmYXVsdGAgdmFsdWUgb2J0YWluZWQgYnkg
Z2VuZXJhdGluZyAiamptbSIgcGF0dGVybiBmcm9tIFVEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3Iu
CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ1OQor
ICAgIGlmIChjYW5JbmNsdWRlSG91cikgewogICAgICAgICBib29sIGhhc0hvdXIgPSBmYWxzZTsK
LSAgICAgICAgZm9yIChhdXRvJiBjIDogcGF0dGVybkJ1ZmZlcikgewotICAgICAgICAgICAgaWYg
KGMgPT0gJ1wnJykKLSAgICAgICAgICAgICAgICBpc0VzY2FwZWQgPSAhaXNFc2NhcGVkOwotICAg
ICAgICAgICAgZWxzZSBpZiAoIWlzRXNjYXBlZCAmJiAoYyA9PSAnaCcgfHwgYyA9PSAnSCcgfHwg
YyA9PSAnaycgfHwgYyA9PSAnSycpKSB7Ci0gICAgICAgICAgICAgICAgYyA9IGhvdXI7Ci0gICAg
ICAgICAgICAgICAgaGFzSG91ciA9IHRydWU7CisgICAgICAgIGlmICghbV9ob3VyQ3ljbGUuaXNO
dWxsKCkgfHwgIWlzSG91cjEyVW5kZWZpbmVkKSB7CisgICAgICAgICAgICBVQ2hhciBob3VyRnJv
bUhvdXJDeWNsZSA9ICdIJzsgLy8gSDIzCisgICAgICAgICAgICBpZiAobV9ob3VyQ3ljbGUgPT0g
ImgxMSIpCisgICAgICAgICAgICAgICAgaG91ckZyb21Ib3VyQ3ljbGUgPSAnSyc7CisgICAgICAg
ICAgICBlbHNlIGlmIChtX2hvdXJDeWNsZSA9PSAiaDEyIikKKyAgICAgICAgICAgICAgICBob3Vy
RnJvbUhvdXJDeWNsZSA9ICdoJzsKKyAgICAgICAgICAgIGVsc2UgaWYgKG1faG91ckN5Y2xlID09
ICJoMjQiKQorICAgICAgICAgICAgICAgIGhvdXJGcm9tSG91ckN5Y2xlID0gJ2snOworCisgICAg
ICAgICAgICBib29sIGlzRXNjYXBlZCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChhdXRvJiBj
IDogcGF0dGVybkJ1ZmZlcikgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpCisgICAg
ICAgICAgICAgICAgICAgIGlzRXNjYXBlZCA9ICFpc0VzY2FwZWQ7CisgICAgICAgICAgICAgICAg
ZWxzZSBpZiAoIWlzRXNjYXBlZCAmJiAoYyA9PSAnaCcgfHwgYyA9PSAnSCcgfHwgYyA9PSAnaycg
fHwgYyA9PSAnSycpKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAg
ICAgICAgICAgICAgICBjYXNlICdLJzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnSCc6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjID0gaG91ckZyb21Ib3VyQ3ljbGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmIChob3VyMTIgPT0gVHJpU3RhdGU6OlRydWUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYyA9ICdLJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJ0gnOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSAnaCc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2snOiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNIb3VyMTJVbmRlZmluZWQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYyA9IGhvdXJGcm9tSG91ckN5Y2xlOworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoaG91cjEyID09IFRyaVN0YXRlOjpUcnVlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGMgPSAnaCc7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYyA9ICdrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoYXNIb3VyID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFoYXNIb3VyKQog
ICAgICAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsKICAgICB9CiAKKyAgICBhdXRvIHRv
RGF0ZVRpbWVTdHlsZSA9IFtdKGNvbnN0IFN0cmluZyYgc3R5bGUpIHsKKyAgICAgICAgaWYgKHN0
eWxlLmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lU3R5bGU6Ok5vbmU7Cisg
ICAgICAgIGlmIChzdHlsZSA9PSAiZnVsbCJfcykKKyAgICAgICAgICAgIHJldHVybiBEYXRlVGlt
ZVN0eWxlOjpGdWxsOworICAgICAgICBpZiAoc3R5bGUgPT0gImxvbmciX3MpCisgICAgICAgICAg
ICByZXR1cm4gRGF0ZVRpbWVTdHlsZTo6TG9uZzsKKyAgICAgICAgaWYgKHN0eWxlID09ICJtZWRp
dW0iX3MpCisgICAgICAgICAgICByZXR1cm4gRGF0ZVRpbWVTdHlsZTo6TWVkaXVtOworICAgICAg
ICBpZiAoc3R5bGUgPT0gInNob3J0Il9zKQorICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lU3R5
bGU6OlNob3J0OworICAgICAgICByZXR1cm4gRGF0ZVRpbWVTdHlsZTo6Tm9uZTsKKyAgICB9Owor
CiAgICAgU3RyaW5nVmlldyBwYXR0ZXJuKHBhdHRlcm5CdWZmZXIuZGF0YSgpLCBwYXR0ZXJuQnVm
ZmVyLnNpemUoKSk7CiAgICAgc2V0Rm9ybWF0c0Zyb21QYXR0ZXJuKHBhdHRlcm4pOworICAgIG1f
ZGF0ZVN0eWxlID0gdG9EYXRlVGltZVN0eWxlKGRhdGVTdHlsZSk7CisgICAgbV90aW1lU3R5bGUg
PSB0b0RhdGVUaW1lU3R5bGUodGltZVN0eWxlKTsKIAotICAgIHN0YXR1cyA9IFVfWkVST19FUlJP
UjsKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKICAgICBTdHJpbmdWaWV3
IHRpbWVab25lVmlldyhtX3RpbWVab25lKTsKICAgICBtX2RhdGVGb3JtYXQgPSBzdGQ6OnVuaXF1
ZV9wdHI8VURhdGVGb3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4odWRhdF9vcGVuKFVEQVRfUEFU
VEVSTiwgVURBVF9QQVRURVJOLCBkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCB0aW1l
Wm9uZVZpZXcudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHRpbWVab25lVmlldy5sZW5ndGgoKSwg
cGF0dGVybi51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcGF0dGVybi5sZW5ndGgoKSwgJnN0YXR1
cykpOwogICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgewpAQCAtODA5LDYgKzkyMywyNSBAQCBB
U0NJSUxpdGVyYWwgSW50bERhdGVUaW1lRm9ybWF0Ojp0aW1lWm9uZU5hbWVTdHJpbmcoVGltZVpv
bmVOYW1lIHRpbWVab25lTmFtZSkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiB9
CiAKK0FTQ0lJTGl0ZXJhbCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmZvcm1hdFN0eWxlU3RyaW5nKERh
dGVUaW1lU3R5bGUgc3R5bGUpCit7CisgICAgc3dpdGNoIChzdHlsZSkgeworICAgIGNhc2UgRGF0
ZVRpbWVTdHlsZTo6RnVsbDoKKyAgICAgICAgcmV0dXJuICJmdWxsIl9zOworICAgIGNhc2UgRGF0
ZVRpbWVTdHlsZTo6TG9uZzoKKyAgICAgICAgcmV0dXJuICJsb25nIl9zOworICAgIGNhc2UgRGF0
ZVRpbWVTdHlsZTo6TWVkaXVtOgorICAgICAgICByZXR1cm4gIm1lZGl1bSJfczsKKyAgICBjYXNl
IERhdGVUaW1lU3R5bGU6OlNob3J0OgorICAgICAgICByZXR1cm4gInNob3J0Il9zOworICAgIGNh
c2UgRGF0ZVRpbWVTdHlsZTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOworfQorCiAvLyBo
dHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWludGwuZGF0ZXRpbWVmb3JtYXQucHJvdG90eXBl
LnJlc29sdmVkb3B0aW9ucwogSlNPYmplY3QqIEludGxEYXRlVGltZUZvcm1hdDo6cmVzb2x2ZWRP
cHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7CkBAIC04NTIsNiAr
OTg1LDEyIEBAIEpTT2JqZWN0KiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OnJlc29sdmVkT3B0aW9ucyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zCiAgICAgaWYgKG1fdGltZVpvbmVOYW1l
ICE9IFRpbWVab25lTmFtZTo6Tm9uZSkKICAgICAgICAgb3B0aW9ucy0+cHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT50aW1lWm9uZU5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgdGlt
ZVpvbmVOYW1lU3RyaW5nKG1fdGltZVpvbmVOYW1lKSkpOwogCisgICAgaWYgKG1fZGF0ZVN0eWxl
ICE9IERhdGVUaW1lU3R5bGU6Ok5vbmUpCisgICAgICAgIG9wdGlvbnMtPnB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+ZGF0ZVN0eWxlLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1h
dFN0eWxlU3RyaW5nKG1fZGF0ZVN0eWxlKSkpOworCisgICAgaWYgKG1fdGltZVN0eWxlICE9IERh
dGVUaW1lU3R5bGU6Ok5vbmUpCisgICAgICAgIG9wdGlvbnMtPnB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+dGltZVN0eWxlLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1hdFN0eWxl
U3RyaW5nKG1fdGltZVN0eWxlKSkpOworCiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmgKaW5k
ZXggOWQyNjcxYzg5YzI0YTA2Mjc2M2JlY2NjY2M4NDgyZGYyYzc1NzdlZC4uZjUxNTRlZTlmNjJk
MWExYzFlOTAzMzBhYzc2ZTBjNzNkNjY2MGJjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmgKQEAgLTc4LDYgKzc4LDcgQEAgY2xh
c3MgSW50bERhdGVUaW1lRm9ybWF0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
ICAgIGVudW0gY2xhc3MgTWludXRlIDogdWludDhfdCB7IE5vbmUsIFR3b0RpZ2l0LCBOdW1lcmlj
IH07CiAgICAgZW51bSBjbGFzcyBTZWNvbmQgOiB1aW50OF90IHsgTm9uZSwgVHdvRGlnaXQsIE51
bWVyaWMgfTsKICAgICBlbnVtIGNsYXNzIFRpbWVab25lTmFtZSA6IHVpbnQ4X3QgeyBOb25lLCBT
aG9ydCwgTG9uZyB9OworICAgIGVudW0gY2xhc3MgRGF0ZVRpbWVTdHlsZSA6IHVpbnQ4X3QgeyBO
b25lLCBGdWxsLCBMb25nLCBNZWRpdW0sIFNob3J0IH07CiAKICAgICBzdHJ1Y3QgVURhdGVGb3Jt
YXREZWxldGVyIHsKICAgICAgICAgdm9pZCBvcGVyYXRvcigpKFVEYXRlRm9ybWF0KikgY29uc3Q7
CkBAIC05Myw2ICs5NCw3IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBmaW5hbCA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIG1pbnV0ZVN0cmlu
ZyhNaW51dGUpOwogICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgc2Vjb25kU3RyaW5nKFNlY29uZCk7
CiAgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCB0aW1lWm9uZU5hbWVTdHJpbmcoVGltZVpvbmVOYW1l
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGZvcm1hdFN0eWxlU3RyaW5nKERhdGVUaW1lU3R5
bGUpOwogCiAgICAgV3JpdGVCYXJyaWVyPEpTQm91bmRGdW5jdGlvbj4gbV9ib3VuZEZvcm1hdDsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VURhdGVGb3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4gbV9k
YXRlRm9ybWF0OwpAQCAtMTExLDYgKzExMyw4IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBm
aW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBNaW51dGUgbV9taW51dGUgeyBN
aW51dGU6Ok5vbmUgfTsKICAgICBTZWNvbmQgbV9zZWNvbmQgeyBTZWNvbmQ6Ok5vbmUgfTsKICAg
ICBUaW1lWm9uZU5hbWUgbV90aW1lWm9uZU5hbWUgeyBUaW1lWm9uZU5hbWU6Ok5vbmUgfTsKKyAg
ICBEYXRlVGltZVN0eWxlIG1fZGF0ZVN0eWxlIHsgRGF0ZVRpbWVTdHlsZTo6Tm9uZSB9OworICAg
IERhdGVUaW1lU3R5bGUgbV90aW1lU3R5bGUgeyBEYXRlVGltZVN0eWxlOjpOb25lIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2FmNmYxMzRmNDM2NTdiNGE3OTY0YWY5YWFmNTQ5YTU0OGQz
YTNhZC4uZWM3ZWJiMmZmMDQ0YThhMzllYjczM2Y0ZjQwOWFkYWE0YTAyYzZlZCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAyMC0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGltZVN0eWxl
IG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10aW1lLXN0eWxl
LWJhc2ljLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZEJl
Lm8uZm9ybWF0KToKKyAgICAgICAgKiBzdHJlc3MvaW50bC1kYXRlLXRpbWUtc3R5bGUtb3B0aW9u
LWNvbnNpc3RlbmN5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAg
KHZhbHVlLm9mLk9iamVjdC5lbnRyaWVzKToKKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1s
OgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIwMjAtMDYtMjEgIE1p
Y2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgQXR0ZW1w
dCB0byB1bnNraXAgc3RyZXNzIHRlc3QgYXJyYXktYnVmZmVyLXZpZXctd2F0Y2hwb2ludC1jYW4t
YmUtZmlyZWQtcmVhbGx5LWFkZC1pbi1kZmcuanMgb24gbW9zdCBhcmNoaXRlY3R1cmVzCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10aW1lLXN0
eWxlLWJhc2ljLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtZm9ybWF0LWRhdGUt
dGltZS1zdHlsZS1iYXNpYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDAxMzBiZTVlZjlhZTdkYTI0NTMxZjkw
NjU1MmExNjFlODFiZWFlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1k
YXRlLXRpbWUtZm9ybWF0LWRhdGUtdGltZS1zdHlsZS1iYXNpYy5qcwpAQCAtMCwwICsxLDMwIEBA
CitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKK30KKworbGV0IG5vdyA9IDE1OTI4MzYzMTIwODE7Cit7CisgICAgbGV0IG8gPSBuZXcg
SW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJzaG9ydCIs
CisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZvcm1h
dChub3cpLCBgMjozMSBQTWApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGlt
ZUZvcm1hdCgiZW4iICwgeworICAgICAgICBkYXRlU3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRp
bWVab25lOiAiVVRDIiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZvcm1hdChub3cpLCBgNi8y
Mi8yMGApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4i
ICwgeworICAgICAgICB0aW1lU3R5bGU6ICJtZWRpdW0iLAorICAgICAgICBkYXRlU3R5bGU6ICJz
aG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShv
LmZvcm1hdChub3cpLCBgNi8yMi8yMCwgMjozMTo1MiBQTWApOworfQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtc3R5bGUtb3B0aW9uLWNvbnNpc3RlbmN5LmpzIGIv
SlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtc3R5bGUtb3B0aW9uLWNvbnNpc3RlbmN5Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA2ODI2NGZmMWZhNzFmNmQ2Mzc3NzY4Mzg1Mzc2OTE3Y2IwODFhNGYKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1zdHlsZS1vcHRp
b24tY29uc2lzdGVuY3kuanMKQEAgLTAsMCArMSw0OCBAQAorZnVuY3Rpb24gc2hvdWxkVGhyb3co
ZnVuYywgZXJyb3JNZXNzYWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAg
dmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBlcnJvclRocm93biA9IHRydWU7CisgICAgICAgIGVycm9yID0gZTsK
KyAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJu
b3QgdGhyb3duIik7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9yTWVzc2FnZSkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKGVycm9yKX1gKTsKK30K
KworbGV0IG9wdGlvbnMgPSB7CisgICAgIndlZWtkYXkiOiAibmFycm93IiwKKyAgICAiZXJhIjog
Im5hcnJvdyIsCisgICAgInllYXIiOiAiMi1kaWdpdCIsCisgICAgIm1vbnRoIjogIjItZGlnaXQi
LAorICAgICJkYXkiOiAiMi1kaWdpdCIsCisgICAgImhvdXIiOiAiMi1kaWdpdCIsCisgICAgIm1p
bnV0ZSI6ICIyLWRpZ2l0IiwKKyAgICAic2Vjb25kIjogIjItZGlnaXQiLAorICAgICJ0aW1lWm9u
ZU5hbWUiOiAic2hvcnQiLAorfTsKKworZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5l
bnRyaWVzKG9wdGlvbnMpKSB7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBuZXcg
SW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7CisgICAgICAgICAgICBkYXRlU3R5bGU6ICJmdWxs
IiwKKyAgICAgICAgICAgIFtrZXldOiB2YWx1ZQorICAgICAgICB9KTsKKyAgICB9LCBgVHlwZUVy
cm9yOiBkYXRlU3R5bGUgb3IgdGltZVN0eWxlIHJlcXVpcmVzIGFsbCB0aGUgZGF0ZSBhbmQgdGlt
ZSBmb3JtYXRzIGFyZSBub3Qgc3BlY2lmaWVkYCk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gewor
ICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7CisgICAgICAgICAgICB0aW1l
U3R5bGU6ICJmdWxsIiwKKyAgICAgICAgICAgIFtrZXldOiB2YWx1ZQorICAgICAgICB9KTsKKyAg
ICB9LCBgVHlwZUVycm9yOiBkYXRlU3R5bGUgb3IgdGltZVN0eWxlIHJlcXVpcmVzIGFsbCB0aGUg
ZGF0ZSBhbmQgdGltZSBmb3JtYXRzIGFyZSBub3Qgc3BlY2lmaWVkYCk7CisgICAgc2hvdWxkVGhy
b3coKCkgPT4geworICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7CisgICAg
ICAgICAgICBkYXRlU3R5bGU6ICJmdWxsIiwKKyAgICAgICAgICAgIHRpbWVTdHlsZTogImZ1bGwi
LAorICAgICAgICAgICAgW2tleV06IHZhbHVlCisgICAgICAgIH0pOworICAgIH0sIGBUeXBlRXJy
b3I6IGRhdGVTdHlsZSBvciB0aW1lU3R5bGUgcmVxdWlyZXMgYWxsIHRoZSBkYXRlIGFuZCB0aW1l
IGZvcm1hdHMgYXJlIG5vdCBzcGVjaWZpZWRgKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVz
dDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAppbmRleCBhNzlm
MmRiZTM2MTY2ZjBiOGViYjk5OWRiODVjZjRlMTY0Yjk0ZGYxLi41Y2FmMWFlYjQ0YTJmMjY2YjY5
ZjA1ZGQ5ZjUyNWUwMzYwM2UzNWI5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmln
LnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC0yMiw3ICsyMiw2IEBA
IHNraXA6CiAgICAgLSByZWdleHAtbWF0Y2gtaW5kaWNlcwogICAgIC0gdG9wLWxldmVsLWF3YWl0
CiAgICAgLSBGaW5hbGl6YXRpb25SZWdpc3RyeQotICAgIC0gSW50bC5EYXRlVGltZUZvcm1hdC1k
YXRldGltZXN0eWxlCiAgICAgLSBJbnRsLkRhdGVUaW1lRm9ybWF0LWRheVBlcmlvZAogICAgIC0g
SW50bC5EYXRlVGltZUZvcm1hdC1mb3JtYXRSYW5nZQogICAgIC0gSW50bC5EYXRlVGltZUZvcm1h
dC1mcmFjdGlvbmFsU2Vjb25kRGlnaXRzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhw
ZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXgg
NzlhOGYxY2NjOWZhNjhlN2ViNjNkMTZjZjk5ZjkwYTY0NzNjZjg1OS4uMjVkNjE5ODZmM2Y3MTMy
M2ZlYmFiMjY1YmJhOWRlYzNjYjY1NzhjZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApA
QCAtMTYzOCw2ICsxNjM4LDkgQEAgdGVzdC9pbnRsNDAyL0NvbGxhdG9yL21pc3NpbmctdW5pY29k
ZS1leHQtdmFsdWUtZGVmYXVsdHMtdG8tdHJ1ZS5qczoKIHRlc3QvaW50bDQwMi9Db2xsYXRvci91
c2FnZS1kZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW8OELCBBRV0g
YW5kIFtBRSwgw4RdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuIHNlYXJjaCcKICAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFvDhCwgQUVdIGFuZCBbQUUsIMOEXSB0byBo
YXZlIHRoZSBzYW1lIGNvbnRlbnRzLiBzZWFyY2gnCit0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3Jt
YXQvcHJvdG90eXBlL2Zvcm1hdC90aW1lZGF0ZXN0eWxlLWVuLmpzOgorICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBSZXN1bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUowqsx
NDoxMjo0NyBQTSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENvb3Jk
aW5hdGVkIFVuaXZlcnNhbCBUaW1lwrspIHRvIGJlIHRydWUnCisgIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBSZXN1bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUowqsx
NDoxMjo0NyBQTSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENvb3Jk
aW5hdGVkIFVuaXZlcnNhbCBUaW1lwrspIHRvIGJlIHRydWUnCiB0ZXN0L2ludGw0MDIvRGF0ZVRp
bWVGb3JtYXQvcHJvdG90eXBlL3Jlc29sdmVkT3B0aW9ucy9ob3VyQ3ljbGUtZGVmYXVsdC5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKraDI0wrssIMKr
aDIzwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqtoMjTCuywgwqtoMjPCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402470</attachid>
            <date>2020-06-22 07:43:56 -0700</date>
            <delta_ts>2020-06-22 08:01:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209776-20200622074355.patch</filename>
            <type>text/plain</type>
            <size>26322</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDQwMDcwOGYwM2FjOTNjMDAyMjIyOGZlYWM4NjRmZTYwMjY0NzMxLi4wZWNiNzdhODc2YzUwMzM3
MzJmZGUxMDkxMzc2ZjdhNGU5M2VkZGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMC0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGlt
ZVN0eWxlIG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgSW50bC5EYXRlVGltZUZvcm1h
dCBkYXRlU3R5bGUgYW5kIHRpbWVTdHlsZSBvcHRpb25zLiBXaGVuIGl0IGlzIHNwZWNpZmllZCwK
KyAgICAgICAgd2UgcXVlcnkgdGhlIGJlc3QgZGF0ZS10aW1lIGZvcm1hdCB3aXRoIHRoZXNlIG9w
dGlvbnMgdG8gSUNVIGluc3RlYWQgb2YgY29uZmlndXJpbmcgZWFjaCBkYXRlLXRpbWUKKyAgICAg
ICAgZm9ybWF0cy4KKworICAgICAgICBTaW5jZSBFQ01BNDAyIHJlcXVpcmVzIGVuZm9yY2VtZW50
IG9mIGhvdXJDeWNsZSBzcGVjaWZpZWQgZnJvbSB0aGUgb3B0aW9uLCBldmVuIGlmIElDVSBpZ25v
cmVzIHRoYXQuCisgICAgICAgIFNvLCBhZnRlciBnZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSBwYXR0
ZXJuIGZyb20gSUNVLCB3ZSBtb2RpZnkgdGhpcyBwYXR0ZXJuIGFuZCByZS1jcmVhdGUgVURhdGVG
b3JtYXQKKyAgICAgICAgZnJvbSB0aGUgbW9kaWZpZWQgcGF0dGVybi4KKworICAgICAgICAqIGJ1
aWx0aW5zL0RhdGVQcm90b3R5cGUuanM6CisgICAgICAgICh0b0xvY2FsZVN0cmluZy50b0RhdGVU
aW1lT3B0aW9uc0FueUFsbCk6CisgICAgICAgICh0b0xvY2FsZVN0cmluZyk6CisgICAgICAgICh0
b0xvY2FsZURhdGVTdHJpbmcudG9EYXRlVGltZU9wdGlvbnNEYXRlRGF0ZSk6CisgICAgICAgICh0
b0xvY2FsZURhdGVTdHJpbmcpOgorICAgICAgICAodG9Mb2NhbGVUaW1lU3RyaW5nLnRvRGF0ZVRp
bWVPcHRpb25zVGltZVRpbWUpOgorICAgICAgICAodG9Mb2NhbGVUaW1lU3RyaW5nKToKKyAgICAg
ICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAgICogcnVudGltZS9JbnRs
RGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjp0b0RhdGVUaW1lT3B0aW9uc0FueURh
dGUpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGlt
ZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0U3R5bGVT
dHJpbmcpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OnJlc29sdmVkT3B0aW9u
cyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuaDoKKwogMjAy
MC0wNi0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtK
U0NdIENoZWNrIEdpZ2FjYWdlIHVzYWdlIGJlZm9yZSBsYXVuY2hpbmcgVk0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9EYXRlUHJvdG90eXBlLmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKaW5kZXggM2JiMmIyZWMz
M2FhNjdiN2U1YjM0ZDJiMjg5ODM5YTRkNzg0ZmE5MC4uNDY4Zjg2Mzk0ZTYxYmFkMWU0YmI4MmYz
ODlmYjgwYmE3MDIxMzQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0RhdGVQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L0RhdGVQcm90b3R5cGUuanMKQEAgLTUxLDYgKzUxLDEzIEBAIGVsc2UgaWYgKG9wdHMgPT09IG51
bGwpCiAgICAgICAgICAgICBvcHRpb25zLnNlY29uZCA9PT0gQHVuZGVmaW5lZAogICAgICAgICAp
OwogCisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0g
b3B0aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50
aW1lU3R5bGU7CisgICAgICAgICAgICBpZiAoZGF0ZVN0eWxlICE9PSBAdW5kZWZpbmVkIHx8IHRp
bWVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBuZWVkc0RlZmF1bHRzID0g
ZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICAvLyBPbmx5IGNyZWF0ZSBkZXNjZW5kYW50IGlm
IGl0IHdpbGwgaGF2ZSBvd24gcHJvcGVydGllcy4KICAgICAgICAgaWYgKG5lZWRzRGVmYXVsdHMp
IHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBAT2JqZWN0LkBjcmVhdGUob3B0aW9ucyk7CkBAIC0x
MDMsNiArMTEwLDE1IEBAIGVsc2UgaWYgKG9wdHMgPT09IG51bGwpCiAgICAgICAgICAgICBvcHRp
b25zLmRheSA9PT0gQHVuZGVmaW5lZAogICAgICAgICApOwogCisgICAgICAgIGlmIChvcHRpb25z
KSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5kYXRlU3R5bGU7CisgICAg
ICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7CisgICAgICAgICAgICBp
ZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIEB0aHJvd1R5cGVF
cnJvcigidGltZVN0eWxlIGNhbm5vdCBiZSBzcGVjaWZpZWQiKTsKKyAgICAgICAgICAgIGlmIChk
YXRlU3R5bGUgIT09IEB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgbmVlZHNEZWZhdWx0cyA9
IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgLy8gT25seSBjcmVhdGUgZGVzY2VuZGFudCBp
ZiBpdCB3aWxsIGhhdmUgb3duIHByb3BlcnRpZXMuCiAgICAgICAgIGlmIChuZWVkc0RlZmF1bHRz
KSB7CiAgICAgICAgICAgICBvcHRpb25zID0gQE9iamVjdC5AY3JlYXRlKG9wdGlvbnMpOwpAQCAt
MTUwLDYgKzE2NiwxNSBAQCBlbHNlIGlmIChvcHRzID09PSBudWxsKQogICAgICAgICAgICAgb3B0
aW9ucy5zZWNvbmQgPT09IEB1bmRlZmluZWQKICAgICAgICAgKTsKIAorICAgICAgICBpZiAob3B0
aW9ucykgeworICAgICAgICAgICAgdmFyIGRhdGVTdHlsZSA9IG9wdGlvbnMuZGF0ZVN0eWxlOwor
ICAgICAgICAgICAgdmFyIHRpbWVTdHlsZSA9IG9wdGlvbnMudGltZVN0eWxlOworICAgICAgICAg
ICAgaWYgKGRhdGVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBAdGhyb3dU
eXBlRXJyb3IoImRhdGVTdHlsZSBjYW5ub3QgYmUgc3BlY2lmaWVkIik7CisgICAgICAgICAgICBp
ZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIG5lZWRzRGVmYXVs
dHMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIE9ubHkgY3JlYXRlIGRlc2NlbmRh
bnQgaWYgaXQgd2lsbCBoYXZlIG93biBwcm9wZXJ0aWVzLgogICAgICAgICBpZiAobmVlZHNEZWZh
dWx0cykgewogICAgICAgICAgICAgb3B0aW9ucyA9IEBPYmplY3QuQGNyZWF0ZShvcHRpb25zKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
CmluZGV4IDE2OGVmZWRhMTRkNDYxMDUyNjA3NWFmZGViYWM5YWRiYTI1MjY2YmEuLjhkY2I3NmMw
Zjc3NGFlZWViOGQzMjM5YjI2Y2Y4Y2NhZGEwYWRjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAtOTAsNiArOTAsNyBAQAog
ICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8oY291bnQpIFwKICAgICBtYWNybyhj
b3VudGVycykgXAorICAgIG1hY3JvKGRhdGVTdHlsZSkgXAogICAgIG1hY3JvKGRheSkgXAogICAg
IG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCiAgICAgbWFjcm8oZGVyZWYpIFwKQEAgLTE5MSw2ICsx
OTIsNyBAQAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNybyh0aGVuKSBcCiAgICAgbWFjcm8o
dGltZSkgXAorICAgIG1hY3JvKHRpbWVTdHlsZSkgXAogICAgIG1hY3JvKHRpbWVab25lKSBcCiAg
ICAgbWFjcm8odGltZVpvbmVOYW1lKSBcCiAgICAgbWFjcm8odG9FeHBvbmVudGlhbCkgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5j
cHAKaW5kZXggN2RmYmMzNjdjZjRmYjQyOThhZGY2MTFkMTJjNmFlMmY0Njc2MTM4NS4uMmFmYzkx
NWJkMTY0MzMzYjVlNDkwYTE5NmY1ZTIzOWQxZTM2NGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC0yNzcsNiAr
Mjc3LDE0IEBAIHN0YXRpYyBKU09iamVjdCogdG9EYXRlVGltZU9wdGlvbnNBbnlEYXRlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAgICBpZiAoIXNlY29uZC5pc1VuZGVm
aW5lZCgpKQogICAgICAgICBuZWVkRGVmYXVsdHMgPSBmYWxzZTsKIAorICAgIEpTVmFsdWUgZGF0
ZVN0eWxlID0gb3B0aW9ucy0+Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+ZGF0
ZVN0eWxlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICBK
U1ZhbHVlIHRpbWVTdHlsZSA9IG9wdGlvbnMtPmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5
TmFtZXMtPnRpbWVTdHlsZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7CisKKyAgICBpZiAoIWRhdGVTdHlsZS5pc1VuZGVmaW5lZCgpIHx8ICF0aW1lU3R5bGUuaXNV
bmRlZmluZWQoKSkKKyAgICAgICAgbmVlZERlZmF1bHRzID0gZmFsc2U7CisKICAgICAvLyA3LiBJ
ZiBuZWVkRGVmYXVsdHMgaXMgdHJ1ZSBhbmQgZGVmYXVsdHMgaXMgZWl0aGVyICJkYXRlIiBvciAi
YWxsIiwgdGhlbgogICAgIC8vIERlZmF1bHRzIGlzIGFsd2F5cyAiZGF0ZSIuCiAgICAgaWYgKG5l
ZWREZWZhdWx0cykgewpAQCAtNTAwLDYgKzUwOCw3IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0
Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpYyA9IHsgIjItZGlnaXQiLCAibnVtZXJpYyIgfTsKICAg
ICBhdXRvIHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9uZyA9IHsgIjItZGlnaXQiLCAibnVt
ZXJpYyIsICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIgfTsKICAgICBhdXRvIHNob3J0TG9uZyA9
IHsgInNob3J0IiwgImxvbmciIH07CisgICAgYXV0byBmdWxsTG9uZ01lZGl1bVNob3J0ID0geyAi
ZnVsbCIsICJsb25nIiwgIm1lZGl1bSIsICJzaG9ydCIgfTsKIAogICAgIFN0cmluZyB3ZWVrZGF5
ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFt
ZXMtPndlZWtkYXksIG5hcnJvd1Nob3J0TG9uZywgIndlZWtkYXkgbXVzdCBiZSBcIm5hcnJvd1wi
LCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgdm9pZCgpKTsKQEAgLTU3Miw4ICs1ODEsNyBAQCB2b2lkIEludGxEYXRlVGlt
ZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdoJyk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ0gnKTsKLSAgICB9IGVs
c2UKLSAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsKKyAgICB9CiAKICAgICBTdHJpbmcg
bWludXRlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3Bl
cnR5TmFtZXMtPm1pbnV0ZSwgdHdvRGlnaXROdW1lcmljLCAibWludXRlIG11c3QgYmUgXCIyLWRp
Z2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB2b2lkKCkpOwpAQCAtNjA1LDUyICs2MTMsMTU4IEBAIHZvaWQgSW50bERhdGVUaW1l
Rm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwKICAgICBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJv
cGVydHlOYW1lcy0+Zm9ybWF0TWF0Y2hlciwgeyAiYmFzaWMiLCAiYmVzdCBmaXQiIH0sICJmb3Jt
YXRNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwiYmFzaWNcIiBvciBcImJlc3QgZml0XCIiLCAiYmVz
dCBmaXQiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAg
Ly8gQWx3YXlzIHVzZSBJQ1UgZGF0ZSBmb3JtYXQgZ2VuZXJhdG9yLCByYXRoZXIgdGhhbiBvdXIg
b3duIHBhdHRlcm4gbGlzdCBhbmQgbWF0Y2hlci4KLSAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVf
WkVST19FUlJPUjsKLSAgICBVRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yKiBnZW5lcmF0b3IgPSB1
ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCAmc3RhdHVzKTsKLSAg
ICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1lRm9ybWF0Il9zKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBTdHJpbmcgZGF0ZVN0eWxlID0gaW50bFN0cmlu
Z09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmRhdGVTdHls
ZSwgZnVsbExvbmdNZWRpdW1TaG9ydCwgImRhdGVTdHlsZSBtdXN0IGJlIFwiZnVsbFwiLCBcImxv
bmdcIiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIFN0cmluZyBza2VsZXRvbiA9IHNrZWxl
dG9uQnVpbGRlci50b1N0cmluZygpOwotICAgIFN0cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxl
dG9uKTsKKyAgICBTdHJpbmcgdGltZVN0eWxlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSwgZnVsbExvbmdNZWRpdW1T
aG9ydCwgInRpbWVTdHlsZSBtdXN0IGJlIFwiZnVsbFwiLCBcImxvbmdcIiwgXCJtZWRpdW1cIiwg
b3IgXCJzaG9ydFwiIiwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKKworICAgIGJvb2wgY2FuSW5jbHVkZUhvdXIgPSB0cnVlOwogICAgIFZlY3RvcjxV
Q2hhciwgMzI+IHBhdHRlcm5CdWZmZXI7Ci0gICAgc3RhdHVzID0gY2FsbEJ1ZmZlclByb2R1Y2lu
Z0Z1bmN0aW9uKHVkYXRwZ19nZXRCZXN0UGF0dGVybldpdGhPcHRpb25zLCBnZW5lcmF0b3IsIHNr
ZWxldG9uVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKS5nZXQoKSwgc2tlbGV0b25WaWV3Lmxl
bmd0aCgpLCBVREFUUEdfTUFUQ0hfSE9VUl9GSUVMRF9MRU5HVEgsIHBhdHRlcm5CdWZmZXIpOwot
ICAgIHVkYXRwZ19jbG9zZShnZW5lcmF0b3IpOwotICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkg
ewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRv
IGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOwotICAgICAgICByZXR1cm47CisgICAgaWYg
KCFkYXRlU3R5bGUuaXNOdWxsKCkgfHwgIXRpbWVTdHlsZS5pc051bGwoKSkgeworICAgICAgICAv
LyAzMC4gRm9yIGVhY2ggcm93IGluIFRhYmxlIDEsIGV4Y2VwdCB0aGUgaGVhZGVyIHJvdywgZG8K
KyAgICAgICAgLy8gICAgIGkuIExldCBwcm9wIGJlIHRoZSBuYW1lIGdpdmVuIGluIHRoZSBQcm9w
ZXJ0eSBjb2x1bW4gb2YgdGhlIHJvdy4KKyAgICAgICAgLy8gICAgIGlpLiBMZXQgcCBiZSBvcHQu
W1s8cHJvcD5dXS4KKyAgICAgICAgLy8gICAgIGlpaS4gSWYgcCBpcyBub3QgdW5kZWZpbmVkLCB0
aGVuCisgICAgICAgIC8vICAgICAgICAgMS4gVGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgor
ICAgICAgICBpZiAoIXdlZWtkYXkuaXNOdWxsKCkgfHwgIWVyYS5pc051bGwoKSB8fCAheWVhci5p
c051bGwoKSB8fCAhbW9udGguaXNOdWxsKCkgfHwgIWRheS5pc051bGwoKSB8fCAhaG91ci5pc051
bGwoKSB8fCAhbWludXRlLmlzTnVsbCgpIHx8ICFzZWNvbmQuaXNOdWxsKCkgfHwgIXRpbWVab25l
TmFtZS5pc051bGwoKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgImRhdGVTdHlsZSBvciB0aW1lU3R5bGUgcmVxdWlyZXMgYWxsIHRoZSBkYXRlIGFu
ZCB0aW1lIGZvcm1hdHMgYXJlIG5vdCBzcGVjaWZpZWQiX3MpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGltZVN0eWxlIGlzIG5vdCBzcGVjaWZpZWQs
IG1faG91ckN5Y2xlIGRvZXMgbm90IG1hdHRlci4gTGV0J3Mgc2tpcCBlbmZvcmNpbmcgc3RlcC4K
KyAgICAgICAgaWYgKHRpbWVTdHlsZS5pc051bGwoKSkgeworICAgICAgICAgICAgY2FuSW5jbHVk
ZUhvdXIgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faG91ckN5Y2xlID0gU3RyaW5nKCk7CisgICAg
ICAgIH0KKworICAgICAgICBhdXRvIHRvVURhdGVGb3JtYXRTdHlsZSA9IFtdKGNvbnN0IFN0cmlu
ZyYgc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChzdHlsZS5pc051bGwoKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gVURBVF9OT05FOworICAgICAgICAgICAgaWYgKHN0eWxlID09ICJmdWxsIl9z
KQorICAgICAgICAgICAgICAgIHJldHVybiBVREFUX0ZVTEw7CisgICAgICAgICAgICBpZiAoc3R5
bGUgPT0gImxvbmciX3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIFVEQVRfTE9ORzsKKyAgICAg
ICAgICAgIGlmIChzdHlsZSA9PSAibWVkaXVtIl9zKQorICAgICAgICAgICAgICAgIHJldHVybiBV
REFUX01FRElVTTsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSAic2hvcnQiX3MpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIFVEQVRfU0hPUlQ7CisgICAgICAgICAgICByZXR1cm4gVURBVF9OT05F
OworICAgICAgICB9OworCisgICAgICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhpcyBVRGF0ZUZvcm1h
dCBkaXJlY3RseSB5ZXQgYmVjYXVzZSB3ZSBuZWVkIHRvIGVuZm9yY2Ugc3BlY2lmaWVkIGhvdXJD
eWNsZS4KKyAgICAgICAgLy8gRmlyc3QsIHdlIGNyZWF0ZSBVRGF0ZUZvcm1hdCB2aWEgZGF0ZVN0
eWxlIGFuZCB0aW1lU3R5bGUuIEFuZCB0aGVuIGNvbnZlcnQgaXQgdG8gcGF0dGVybiBzdHJpbmcu
CisgICAgICAgIC8vIEFmdGVyIHVwZGF0aW5nIHRoaXMgcGF0dGVybiBzdHJpbmcgd2l0aCBtX2hv
dXJDeWNsZSwgd2UgY3JlYXRlIGEgZmluYWwgVURhdGVGb3JtYXQgd2l0aCB0aGUgdXBkYXRlZCBw
YXR0ZXJuIHN0cmluZy4KKyAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7
CisgICAgICAgIFN0cmluZ1ZpZXcgdGltZVpvbmVWaWV3KG1fdGltZVpvbmUpOworICAgICAgICBh
dXRvIGRhdGVGb3JtYXRGcm9tU3R5bGUgPSBzdGQ6OnVuaXF1ZV9wdHI8VURhdGVGb3JtYXQsIFVE
YXRlRm9ybWF0RGVsZXRlcj4odWRhdF9vcGVuKHRvVURhdGVGb3JtYXRTdHlsZSh0aW1lU3R5bGUp
LCB0b1VEYXRlRm9ybWF0U3R5bGUoZGF0ZVN0eWxlKSwgZGF0YUxvY2FsZVdpdGhFeHRlbnNpb25z
LmRhdGEoKSwgdGltZVpvbmVWaWV3LnVwY29udmVydGVkQ2hhcmFjdGVycygpLCB0aW1lWm9uZVZp
ZXcubGVuZ3RoKCksIG51bGxwdHIsIC0xLCAmc3RhdHVzKSk7CisgICAgICAgIGlmIChVX0ZBSUxV
UkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1lRm9ybWF0Il9zKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBjb25zdGV4cHIgYm9vbCBsb2NhbGl6ZWQg
PSBmYWxzZTsgLy8gQWxpZ25lZCB3aXRoIGhvdyBJQ1UgU2ltcGxlRGF0ZVRpbWVGb3JtYXQ6OmZv
cm1hdCB3b3Jrcy4gV2UgZG8gbm90IG5lZWQgdG8gdHJhbnNsYXRlIHRoaXMgdG8gbG9jYWxpemVk
IHBhdHRlcm4uCisgICAgICAgIHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9kdWNpbmdGdW5jdGlvbih1
ZGF0X3RvUGF0dGVybiwgZGF0ZUZvcm1hdEZyb21TdHlsZS5nZXQoKSwgbG9jYWxpemVkLCBwYXR0
ZXJuQnVmZmVyKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAg
ICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxp
emUgRGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgaG91ciBpcyBub3Qgc3BlY2lmaWVkLCBtX2hvdXJD
eWNsZSBkb2VzIG5vdCBtYXR0ZXIuIExldCdzIHNraXAgZW5mb3JjaW5nIHN0ZXAuCisgICAgICAg
IGlmIChob3VyLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBjYW5JbmNsdWRlSG91ciA9IGZhbHNl
OworICAgICAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIEFsd2F5cyB1c2UgSUNVIGRhdGUgZm9ybWF0IGdlbmVyYXRvciwgcmF0aGVyIHRoYW4g
b3VyIG93biBwYXR0ZXJuIGxpc3QgYW5kIG1hdGNoZXIuCisgICAgICAgIFVFcnJvckNvZGUgc3Rh
dHVzID0gVV9aRVJPX0VSUk9SOworICAgICAgICBVRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yKiBn
ZW5lcmF0b3IgPSB1ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCAm
c3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0
aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUg
RGF0ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgU3RyaW5nIHNrZWxldG9uID0gc2tlbGV0b25CdWlsZGVyLnRvU3RyaW5nKCk7CisgICAg
ICAgIFN0cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxldG9uKTsKKyAgICAgICAgc3RhdHVzID0g
Y2FsbEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRwZ19nZXRCZXN0UGF0dGVybldpdGhPcHRp
b25zLCBnZW5lcmF0b3IsIHNrZWxldG9uVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKS5nZXQo
KSwgc2tlbGV0b25WaWV3Lmxlbmd0aCgpLCBVREFUUEdfTUFUQ0hfSE9VUl9GSUVMRF9MRU5HVEgs
IHBhdHRlcm5CdWZmZXIpOworICAgICAgICB1ZGF0cGdfY2xvc2UoZ2VuZXJhdG9yKTsKKyAgICAg
ICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQi
X3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gRW5m
b3JjZSBvdXIgaG91ckN5Y2xlLCByZXBsYWNpbmcgaG91ciBjaGFyYWN0ZXJzIGluIHBhdHRlcm4u
Ci0gICAgaWYgKCFtX2hvdXJDeWNsZS5pc051bGwoKSkgewotICAgICAgICBVQ2hhciBob3VyID0g
J0gnOwotICAgICAgICBpZiAobV9ob3VyQ3ljbGUgPT0gImgxMSIpCi0gICAgICAgICAgICBob3Vy
ID0gJ0snOwotICAgICAgICBlbHNlIGlmIChtX2hvdXJDeWNsZSA9PSAiaDEyIikKLSAgICAgICAg
ICAgIGhvdXIgPSAnaCc7Ci0gICAgICAgIGVsc2UgaWYgKG1faG91ckN5Y2xlID09ICJoMjQiKQot
ICAgICAgICAgICAgaG91ciA9ICdrJzsKLQotICAgICAgICBib29sIGlzRXNjYXBlZCA9IGZhbHNl
OworICAgIC8vIEVuZm9yY2Ugb3VyIGhvdXJDeWNsZSwgcmVwbGFjaW5nIGhvdXIgY2hhcmFjdGVy
cyBpbiBwYXR0ZXJuLiBJQ1UgY2FuIHBpY2sgZm9ybWF0IHdoaWNoIGRvZXMgbm90IGFncmVlIHdp
dGggc3BlY2lmaWVkIGhvdXJDeWNsZS4KKyAgICAvLyBUaGlzIHN0ZXAgbW9kaWZpZXMgZ2VuZXJh
dGVkIHBhdHRlcm4gdG8gdXNlIHNwZWNpZmllZCBob3VyQ3ljbGUsIGFuZCBpdCBpcyBzcGVjaWZp
ZWQgaW4gMS4xLjEgSW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0IHN0ZXAgMzMuCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBjYWNoZSBgaG91ckN5Y2xlRGVmYXVsdGAgdmFsdWUgb2J0YWluZWQgYnkg
Z2VuZXJhdGluZyAiamptbSIgcGF0dGVybiBmcm9tIFVEYXRlVGltZVBhdHRlcm5HZW5lcmF0b3Iu
CisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQ1OQor
ICAgIGlmIChjYW5JbmNsdWRlSG91cikgewogICAgICAgICBib29sIGhhc0hvdXIgPSBmYWxzZTsK
LSAgICAgICAgZm9yIChhdXRvJiBjIDogcGF0dGVybkJ1ZmZlcikgewotICAgICAgICAgICAgaWYg
KGMgPT0gJ1wnJykKLSAgICAgICAgICAgICAgICBpc0VzY2FwZWQgPSAhaXNFc2NhcGVkOwotICAg
ICAgICAgICAgZWxzZSBpZiAoIWlzRXNjYXBlZCAmJiAoYyA9PSAnaCcgfHwgYyA9PSAnSCcgfHwg
YyA9PSAnaycgfHwgYyA9PSAnSycpKSB7Ci0gICAgICAgICAgICAgICAgYyA9IGhvdXI7Ci0gICAg
ICAgICAgICAgICAgaGFzSG91ciA9IHRydWU7CisgICAgICAgIGlmICghbV9ob3VyQ3ljbGUuaXNO
dWxsKCkgfHwgIWlzSG91cjEyVW5kZWZpbmVkKSB7CisgICAgICAgICAgICBVQ2hhciBob3VyRnJv
bUhvdXJDeWNsZSA9ICdIJzsgLy8gSDIzCisgICAgICAgICAgICBpZiAobV9ob3VyQ3ljbGUgPT0g
ImgxMSIpCisgICAgICAgICAgICAgICAgaG91ckZyb21Ib3VyQ3ljbGUgPSAnSyc7CisgICAgICAg
ICAgICBlbHNlIGlmIChtX2hvdXJDeWNsZSA9PSAiaDEyIikKKyAgICAgICAgICAgICAgICBob3Vy
RnJvbUhvdXJDeWNsZSA9ICdoJzsKKyAgICAgICAgICAgIGVsc2UgaWYgKG1faG91ckN5Y2xlID09
ICJoMjQiKQorICAgICAgICAgICAgICAgIGhvdXJGcm9tSG91ckN5Y2xlID0gJ2snOworCisgICAg
ICAgICAgICBib29sIGlzRXNjYXBlZCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChhdXRvJiBj
IDogcGF0dGVybkJ1ZmZlcikgeworICAgICAgICAgICAgICAgIGlmIChjID09ICdcJycpCisgICAg
ICAgICAgICAgICAgICAgIGlzRXNjYXBlZCA9ICFpc0VzY2FwZWQ7CisgICAgICAgICAgICAgICAg
ZWxzZSBpZiAoIWlzRXNjYXBlZCAmJiAoYyA9PSAnaCcgfHwgYyA9PSAnSCcgfHwgYyA9PSAnaycg
fHwgYyA9PSAnSycpKSB7CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAg
ICAgICAgICAgICAgICBjYXNlICdLJzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnSCc6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjID0gaG91ckZyb21Ib3VyQ3ljbGU7CisgICAgICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmIChob3VyMTIgPT0gVHJpU3RhdGU6OlRydWUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYyA9ICdLJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJ0gnOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSAnaCc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2snOiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNIb3VyMTJVbmRlZmluZWQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYyA9IGhvdXJGcm9tSG91ckN5Y2xlOworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoaG91cjEyID09IFRyaVN0YXRlOjpUcnVlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGMgPSAnaCc7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYyA9ICdrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBoYXNIb3VyID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFoYXNIb3VyKQog
ICAgICAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsKICAgICB9CiAKKyAgICBhdXRvIHRv
RGF0ZVRpbWVTdHlsZSA9IFtdKGNvbnN0IFN0cmluZyYgc3R5bGUpIHsKKyAgICAgICAgaWYgKHN0
eWxlLmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lU3R5bGU6Ok5vbmU7Cisg
ICAgICAgIGlmIChzdHlsZSA9PSAiZnVsbCJfcykKKyAgICAgICAgICAgIHJldHVybiBEYXRlVGlt
ZVN0eWxlOjpGdWxsOworICAgICAgICBpZiAoc3R5bGUgPT0gImxvbmciX3MpCisgICAgICAgICAg
ICByZXR1cm4gRGF0ZVRpbWVTdHlsZTo6TG9uZzsKKyAgICAgICAgaWYgKHN0eWxlID09ICJtZWRp
dW0iX3MpCisgICAgICAgICAgICByZXR1cm4gRGF0ZVRpbWVTdHlsZTo6TWVkaXVtOworICAgICAg
ICBpZiAoc3R5bGUgPT0gInNob3J0Il9zKQorICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lU3R5
bGU6OlNob3J0OworICAgICAgICByZXR1cm4gRGF0ZVRpbWVTdHlsZTo6Tm9uZTsKKyAgICB9Owor
CiAgICAgU3RyaW5nVmlldyBwYXR0ZXJuKHBhdHRlcm5CdWZmZXIuZGF0YSgpLCBwYXR0ZXJuQnVm
ZmVyLnNpemUoKSk7CiAgICAgc2V0Rm9ybWF0c0Zyb21QYXR0ZXJuKHBhdHRlcm4pOworICAgIG1f
ZGF0ZVN0eWxlID0gdG9EYXRlVGltZVN0eWxlKGRhdGVTdHlsZSk7CisgICAgbV90aW1lU3R5bGUg
PSB0b0RhdGVUaW1lU3R5bGUodGltZVN0eWxlKTsKIAotICAgIHN0YXR1cyA9IFVfWkVST19FUlJP
UjsKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKICAgICBTdHJpbmdWaWV3
IHRpbWVab25lVmlldyhtX3RpbWVab25lKTsKICAgICBtX2RhdGVGb3JtYXQgPSBzdGQ6OnVuaXF1
ZV9wdHI8VURhdGVGb3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4odWRhdF9vcGVuKFVEQVRfUEFU
VEVSTiwgVURBVF9QQVRURVJOLCBkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCB0aW1l
Wm9uZVZpZXcudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCksIHRpbWVab25lVmlldy5sZW5ndGgoKSwg
cGF0dGVybi51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgcGF0dGVybi5sZW5ndGgoKSwgJnN0YXR1
cykpOwogICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgewpAQCAtODA5LDYgKzkyMywyNSBAQCBB
U0NJSUxpdGVyYWwgSW50bERhdGVUaW1lRm9ybWF0Ojp0aW1lWm9uZU5hbWVTdHJpbmcoVGltZVpv
bmVOYW1lIHRpbWVab25lTmFtZSkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiB9
CiAKK0FTQ0lJTGl0ZXJhbCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmZvcm1hdFN0eWxlU3RyaW5nKERh
dGVUaW1lU3R5bGUgc3R5bGUpCit7CisgICAgc3dpdGNoIChzdHlsZSkgeworICAgIGNhc2UgRGF0
ZVRpbWVTdHlsZTo6RnVsbDoKKyAgICAgICAgcmV0dXJuICJmdWxsIl9zOworICAgIGNhc2UgRGF0
ZVRpbWVTdHlsZTo6TG9uZzoKKyAgICAgICAgcmV0dXJuICJsb25nIl9zOworICAgIGNhc2UgRGF0
ZVRpbWVTdHlsZTo6TWVkaXVtOgorICAgICAgICByZXR1cm4gIm1lZGl1bSJfczsKKyAgICBjYXNl
IERhdGVUaW1lU3R5bGU6OlNob3J0OgorICAgICAgICByZXR1cm4gInNob3J0Il9zOworICAgIGNh
c2UgRGF0ZVRpbWVTdHlsZTo6Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOworfQorCiAvLyBo
dHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWludGwuZGF0ZXRpbWVmb3JtYXQucHJvdG90eXBl
LnJlc29sdmVkb3B0aW9ucwogSlNPYmplY3QqIEludGxEYXRlVGltZUZvcm1hdDo6cmVzb2x2ZWRP
cHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7CkBAIC04NTIsNiAr
OTg1LDEyIEBAIEpTT2JqZWN0KiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OnJlc29sdmVkT3B0aW9ucyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zCiAgICAgaWYgKG1fdGltZVpvbmVOYW1l
ICE9IFRpbWVab25lTmFtZTo6Tm9uZSkKICAgICAgICAgb3B0aW9ucy0+cHV0RGlyZWN0KHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT50aW1lWm9uZU5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgdGlt
ZVpvbmVOYW1lU3RyaW5nKG1fdGltZVpvbmVOYW1lKSkpOwogCisgICAgaWYgKG1fZGF0ZVN0eWxl
ICE9IERhdGVUaW1lU3R5bGU6Ok5vbmUpCisgICAgICAgIG9wdGlvbnMtPnB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+ZGF0ZVN0eWxlLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1h
dFN0eWxlU3RyaW5nKG1fZGF0ZVN0eWxlKSkpOworCisgICAgaWYgKG1fdGltZVN0eWxlICE9IERh
dGVUaW1lU3R5bGU6Ok5vbmUpCisgICAgICAgIG9wdGlvbnMtPnB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+dGltZVN0eWxlLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1hdFN0eWxl
U3RyaW5nKG1fdGltZVN0eWxlKSkpOworCiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmgKaW5k
ZXggOWQyNjcxYzg5YzI0YTA2Mjc2M2JlY2NjY2M4NDgyZGYyYzc1NzdlZC4uZjUxNTRlZTlmNjJk
MWExYzFlOTAzMzBhYzc2ZTBjNzNkNjY2MGJjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmgKQEAgLTc4LDYgKzc4LDcgQEAgY2xh
c3MgSW50bERhdGVUaW1lRm9ybWF0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
ICAgIGVudW0gY2xhc3MgTWludXRlIDogdWludDhfdCB7IE5vbmUsIFR3b0RpZ2l0LCBOdW1lcmlj
IH07CiAgICAgZW51bSBjbGFzcyBTZWNvbmQgOiB1aW50OF90IHsgTm9uZSwgVHdvRGlnaXQsIE51
bWVyaWMgfTsKICAgICBlbnVtIGNsYXNzIFRpbWVab25lTmFtZSA6IHVpbnQ4X3QgeyBOb25lLCBT
aG9ydCwgTG9uZyB9OworICAgIGVudW0gY2xhc3MgRGF0ZVRpbWVTdHlsZSA6IHVpbnQ4X3QgeyBO
b25lLCBGdWxsLCBMb25nLCBNZWRpdW0sIFNob3J0IH07CiAKICAgICBzdHJ1Y3QgVURhdGVGb3Jt
YXREZWxldGVyIHsKICAgICAgICAgdm9pZCBvcGVyYXRvcigpKFVEYXRlRm9ybWF0KikgY29uc3Q7
CkBAIC05Myw2ICs5NCw3IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBmaW5hbCA6IHB1Ymxp
YyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIG1pbnV0ZVN0cmlu
ZyhNaW51dGUpOwogICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgc2Vjb25kU3RyaW5nKFNlY29uZCk7
CiAgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCB0aW1lWm9uZU5hbWVTdHJpbmcoVGltZVpvbmVOYW1l
KTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIGZvcm1hdFN0eWxlU3RyaW5nKERhdGVUaW1lU3R5
bGUpOwogCiAgICAgV3JpdGVCYXJyaWVyPEpTQm91bmRGdW5jdGlvbj4gbV9ib3VuZEZvcm1hdDsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8VURhdGVGb3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4gbV9k
YXRlRm9ybWF0OwpAQCAtMTExLDYgKzExMyw4IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBm
aW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBNaW51dGUgbV9taW51dGUgeyBN
aW51dGU6Ok5vbmUgfTsKICAgICBTZWNvbmQgbV9zZWNvbmQgeyBTZWNvbmQ6Ok5vbmUgfTsKICAg
ICBUaW1lWm9uZU5hbWUgbV90aW1lWm9uZU5hbWUgeyBUaW1lWm9uZU5hbWU6Ok5vbmUgfTsKKyAg
ICBEYXRlVGltZVN0eWxlIG1fZGF0ZVN0eWxlIHsgRGF0ZVRpbWVTdHlsZTo6Tm9uZSB9OworICAg
IERhdGVUaW1lU3R5bGUgbV90aW1lU3R5bGUgeyBEYXRlVGltZVN0eWxlOjpOb25lIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2FmNmYxMzRmNDM2NTdiNGE3OTY0YWY5YWFmNTQ5YTU0OGQz
YTNhZC4uNTMwOTlkOTdhMDVkODRlODc2ZWVlYTU4NTgxYmZlZDY0YmQzZTViZCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAyMC0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGltZVN0eWxl
IG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHN0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10aW1lLXN0eWxl
LWJhc2ljLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZEJl
Lm8uZm9ybWF0KToKKyAgICAgICAgKiBzdHJlc3MvaW50bC1kYXRlLXRpbWUtZm9ybWF0LWRhdGUt
dGltZS1zdHlsZS1ob3VyLWN5Y2xlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAg
ICAgICAgKHNob3VsZEJlLm8uZm9ybWF0KToKKyAgICAgICAgKiBzdHJlc3MvaW50bC1kYXRlLXRp
bWUtc3R5bGUtb3B0aW9uLWNvbnNpc3RlbmN5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZFRo
cm93KToKKyAgICAgICAgKHZhbHVlLm9mLk9iamVjdC5lbnRyaWVzKToKKyAgICAgICAgKiB0ZXN0
MjYyL2NvbmZpZy55YW1sOgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisK
IDIwMjAtMDYtMjEgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAK
ICAgICAgICAgQXR0ZW1wdCB0byB1bnNraXAgc3RyZXNzIHRlc3QgYXJyYXktYnVmZmVyLXZpZXct
d2F0Y2hwb2ludC1jYW4tYmUtZmlyZWQtcmVhbGx5LWFkZC1pbi1kZmcuanMgb24gbW9zdCBhcmNo
aXRlY3R1cmVzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3Jt
YXQtZGF0ZS10aW1lLXN0eWxlLWJhc2ljLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRp
bWUtZm9ybWF0LWRhdGUtdGltZS1zdHlsZS1iYXNpYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDAxMzBiZTVl
ZjlhZTdkYTI0NTMxZjkwNjU1MmExNjFlODFiZWFlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtZm9ybWF0LWRhdGUtdGltZS1zdHlsZS1iYXNpYy5qcwpA
QCAtMCwwICsxLDMwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Cisg
ICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFk
IHZhbHVlOiAnICsgYWN0dWFsKTsKK30KKworbGV0IG5vdyA9IDE1OTI4MzYzMTIwODE7Cit7Cisg
ICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICB0aW1l
U3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICB9KTsKKyAgICBz
aG91bGRCZShvLmZvcm1hdChub3cpLCBgMjozMSBQTWApOworfQorCit7CisgICAgbGV0IG8gPSBu
ZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICBkYXRlU3R5bGU6ICJzaG9y
dCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZv
cm1hdChub3cpLCBgNi8yMi8yMGApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRl
VGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJtZWRpdW0iLAorICAgICAg
ICBkYXRlU3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICB9KTsK
KyAgICBzaG91bGRCZShvLmZvcm1hdChub3cpLCBgNi8yMi8yMCwgMjozMTo1MiBQTWApOworfQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtZm9ybWF0LWRhdGUtdGlt
ZS1zdHlsZS1ob3VyLWN5Y2xlLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtZm9y
bWF0LWRhdGUtdGltZS1zdHlsZS1ob3VyLWN5Y2xlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiZDA2OWQzYzBi
YzdjNTg1NWRiOGU5NGY2MmQxZThhZDM0NjhkZTMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3Rz
L3N0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10aW1lLXN0eWxlLWhvdXItY3ljbGUu
anMKQEAgLTAsMCArMSw3OCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkg
eworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
J2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2xldCBub3cxID0gMTU5Mjg3MDQ0MDAwMDsK
K2xldCBub3cyID0gMTU5MjgyNzI0MDAwMDsKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRsLkRhdGVU
aW1lRm9ybWF0KCJlbiIgLCB7CisgICAgICAgIHRpbWVTdHlsZTogInNob3J0IiwKKyAgICAgICAg
dGltZVpvbmU6ICJVVEMiLAorICAgICAgICBob3VyQ3ljbGU6ICJoMjMiLAorICAgIH0pOworICAg
IHNob3VsZEJlKG8uZm9ybWF0KG5vdzEpLCBgMDowMCBBTWApOworfQorCit7CisgICAgbGV0IG8g
PSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJz
aG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICAgICAgaG91ckN5Y2xlOiAiaDI0
IiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZvcm1hdChub3cxKSwgYDI0OjAwIEFNYCk7Cit9
CisKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIgLCB7CisgICAg
ICAgIHRpbWVTdHlsZTogInNob3J0IiwKKyAgICAgICAgdGltZVpvbmU6ICJVVEMiLAorICAgICAg
ICBob3VyQ3ljbGU6ICJoMTEiLAorICAgIH0pOworICAgIHNob3VsZEJlKG8uZm9ybWF0KG5vdzEp
LCBgMDowMCBBTWApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1h
dCgiZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25l
OiAiVVRDIiwKKyAgICAgICAgaG91ckN5Y2xlOiAiaDEyIiwKKyAgICB9KTsKKyAgICBzaG91bGRC
ZShvLmZvcm1hdChub3cxKSwgYDEyOjAwIEFNYCk7Cit9CisKK3sKKyAgICBsZXQgbyA9IG5ldyBJ
bnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIgLCB7CisgICAgICAgIHRpbWVTdHlsZTogInNob3J0IiwK
KyAgICAgICAgdGltZVpvbmU6ICJVVEMiLAorICAgICAgICBob3VyQ3ljbGU6ICJoMjMiLAorICAg
IH0pOworICAgIHNob3VsZEJlKG8uZm9ybWF0KG5vdzIpLCBgMTI6MDAgUE1gKTsKK30KKworewor
ICAgIGxldCBvID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiAsIHsKKyAgICAgICAgdGlt
ZVN0eWxlOiAic2hvcnQiLAorICAgICAgICB0aW1lWm9uZTogIlVUQyIsCisgICAgICAgIGhvdXJD
eWNsZTogImgyNCIsCisgICAgfSk7CisgICAgc2hvdWxkQmUoby5mb3JtYXQobm93MiksIGAxMjow
MCBQTWApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4i
ICwgeworICAgICAgICB0aW1lU3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRD
IiwKKyAgICAgICAgaG91ckN5Y2xlOiAiaDExIiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZv
cm1hdChub3cyKSwgYDA6MDAgUE1gKTsKK30KKworeworICAgIGxldCBvID0gbmV3IEludGwuRGF0
ZVRpbWVGb3JtYXQoImVuIiAsIHsKKyAgICAgICAgdGltZVN0eWxlOiAic2hvcnQiLAorICAgICAg
ICB0aW1lWm9uZTogIlVUQyIsCisgICAgICAgIGhvdXJDeWNsZTogImgxMiIsCisgICAgfSk7Cisg
ICAgc2hvdWxkQmUoby5mb3JtYXQobm93MiksIGAxMjowMCBQTWApOworfQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtc3R5bGUtb3B0aW9uLWNvbnNpc3RlbmN5Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtc3R5bGUtb3B0aW9uLWNvbnNpc3RlbmN5
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA2ODI2NGZmMWZhNzFmNmQ2Mzc3NzY4Mzg1Mzc2OTE3Y2IwODFhNGYK
LS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1zdHlsZS1v
cHRpb24tY29uc2lzdGVuY3kuanMKQEAgLTAsMCArMSw0OCBAQAorZnVuY3Rpb24gc2hvdWxkVGhy
b3coZnVuYywgZXJyb3JNZXNzYWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7Cisg
ICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICBlcnJvclRocm93biA9IHRydWU7CisgICAgICAgIGVycm9yID0g
ZTsKKyAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJub3QgdGhyb3duIik7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9yTWVzc2FnZSkK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKGVycm9yKX1gKTsK
K30KKworbGV0IG9wdGlvbnMgPSB7CisgICAgIndlZWtkYXkiOiAibmFycm93IiwKKyAgICAiZXJh
IjogIm5hcnJvdyIsCisgICAgInllYXIiOiAiMi1kaWdpdCIsCisgICAgIm1vbnRoIjogIjItZGln
aXQiLAorICAgICJkYXkiOiAiMi1kaWdpdCIsCisgICAgImhvdXIiOiAiMi1kaWdpdCIsCisgICAg
Im1pbnV0ZSI6ICIyLWRpZ2l0IiwKKyAgICAic2Vjb25kIjogIjItZGlnaXQiLAorICAgICJ0aW1l
Wm9uZU5hbWUiOiAic2hvcnQiLAorfTsKKworZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVj
dC5lbnRyaWVzKG9wdGlvbnMpKSB7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBu
ZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7CisgICAgICAgICAgICBkYXRlU3R5bGU6ICJm
dWxsIiwKKyAgICAgICAgICAgIFtrZXldOiB2YWx1ZQorICAgICAgICB9KTsKKyAgICB9LCBgVHlw
ZUVycm9yOiBkYXRlU3R5bGUgb3IgdGltZVN0eWxlIHJlcXVpcmVzIGFsbCB0aGUgZGF0ZSBhbmQg
dGltZSBmb3JtYXRzIGFyZSBub3Qgc3BlY2lmaWVkYCk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4g
eworICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7CisgICAgICAgICAgICB0
aW1lU3R5bGU6ICJmdWxsIiwKKyAgICAgICAgICAgIFtrZXldOiB2YWx1ZQorICAgICAgICB9KTsK
KyAgICB9LCBgVHlwZUVycm9yOiBkYXRlU3R5bGUgb3IgdGltZVN0eWxlIHJlcXVpcmVzIGFsbCB0
aGUgZGF0ZSBhbmQgdGltZSBmb3JtYXRzIGFyZSBub3Qgc3BlY2lmaWVkYCk7CisgICAgc2hvdWxk
VGhyb3coKCkgPT4geworICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7Cisg
ICAgICAgICAgICBkYXRlU3R5bGU6ICJmdWxsIiwKKyAgICAgICAgICAgIHRpbWVTdHlsZTogImZ1
bGwiLAorICAgICAgICAgICAgW2tleV06IHZhbHVlCisgICAgICAgIH0pOworICAgIH0sIGBUeXBl
RXJyb3I6IGRhdGVTdHlsZSBvciB0aW1lU3R5bGUgcmVxdWlyZXMgYWxsIHRoZSBkYXRlIGFuZCB0
aW1lIGZvcm1hdHMgYXJlIG5vdCBzcGVjaWZpZWRgKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMv
dGVzdDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAppbmRleCBh
NzlmMmRiZTM2MTY2ZjBiOGViYjk5OWRiODVjZjRlMTY0Yjk0ZGYxLi41Y2FmMWFlYjQ0YTJmMjY2
YjY5ZjA1ZGQ5ZjUyNWUwMzYwM2UzNWI5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29u
ZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC0yMiw3ICsyMiw2
IEBAIHNraXA6CiAgICAgLSByZWdleHAtbWF0Y2gtaW5kaWNlcwogICAgIC0gdG9wLWxldmVsLWF3
YWl0CiAgICAgLSBGaW5hbGl6YXRpb25SZWdpc3RyeQotICAgIC0gSW50bC5EYXRlVGltZUZvcm1h
dC1kYXRldGltZXN0eWxlCiAgICAgLSBJbnRsLkRhdGVUaW1lRm9ybWF0LWRheVBlcmlvZAogICAg
IC0gSW50bC5EYXRlVGltZUZvcm1hdC1mb3JtYXRSYW5nZQogICAgIC0gSW50bC5EYXRlVGltZUZv
cm1hdC1mcmFjdGlvbmFsU2Vjb25kRGlnaXRzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIv
ZXhwZWN0YXRpb25zLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5k
ZXggNzlhOGYxY2NjOWZhNjhlN2ViNjNkMTZjZjk5ZjkwYTY0NzNjZjg1OS4uMjVkNjE5ODZmM2Y3
MTMyM2ZlYmFiMjY1YmJhOWRlYzNjYjY1NzhjZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFt
bApAQCAtMTYzOCw2ICsxNjM4LDkgQEAgdGVzdC9pbnRsNDAyL0NvbGxhdG9yL21pc3NpbmctdW5p
Y29kZS1leHQtdmFsdWUtZGVmYXVsdHMtdG8tdHJ1ZS5qczoKIHRlc3QvaW50bDQwMi9Db2xsYXRv
ci91c2FnZS1kZS5qczoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW8OELCBB
RV0gYW5kIFtBRSwgw4RdIHRvIGhhdmUgdGhlIHNhbWUgY29udGVudHMuIHNlYXJjaCcKICAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFvDhCwgQUVdIGFuZCBbQUUsIMOEXSB0
byBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzLiBzZWFyY2gnCit0ZXN0L2ludGw0MDIvRGF0ZVRpbWVG
b3JtYXQvcHJvdG90eXBlL2Zvcm1hdC90aW1lZGF0ZXN0eWxlLWVuLmpzOgorICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBSZXN1bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUo
wqsxNDoxMjo0NyBQTSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENv
b3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lwrspIHRvIGJlIHRydWUnCisgIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBSZXN1bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUo
wqsxNDoxMjo0NyBQTSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENv
b3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lwrspIHRvIGJlIHRydWUnCiB0ZXN0L2ludGw0MDIvRGF0
ZVRpbWVGb3JtYXQvcHJvdG90eXBlL3Jlc29sdmVkT3B0aW9ucy9ob3VyQ3ljbGUtZGVmYXVsdC5q
czoKICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKraDI0wrss
IMKraDIzwrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBTYW1lVmFsdWUowqtoMjTCuywgwqtoMjPCuykgdG8gYmUgdHJ1ZScK
</data>
<flag name="review"
          id="417892"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402531</attachid>
            <date>2020-06-22 20:52:09 -0700</date>
            <delta_ts>2020-06-22 20:52:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209776-20200622205208.patch</filename>
            <type>text/plain</type>
            <size>26187</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZDQwMDcwOGYwM2FjOTNjMDAyMjIyOGZlYWM4NjRmZTYwMjY0NzMxLi5mMjdhZGY2Nzk1MjNjNzNj
Njk2ZmNlNWYzYjQ1MjYyMzRkM2MwNWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMC0wNi0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGlt
ZVN0eWxlIG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ciBhbmQgUm9zcyBLaXJzbGluZy4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgSW50
bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUgYW5kIHRpbWVTdHlsZSBvcHRpb25zLiBXaGVuIGl0
IGlzIHNwZWNpZmllZCwKKyAgICAgICAgd2UgcXVlcnkgdGhlIGJlc3QgZGF0ZS10aW1lIGZvcm1h
dCB3aXRoIHRoZXNlIG9wdGlvbnMgdG8gSUNVIGluc3RlYWQgb2YgY29uZmlndXJpbmcgZWFjaCBk
YXRlLXRpbWUKKyAgICAgICAgZm9ybWF0cy4KKworICAgICAgICBTaW5jZSBFQ01BNDAyIHJlcXVp
cmVzIGVuZm9yY2VtZW50IG9mIGhvdXJDeWNsZSBzcGVjaWZpZWQgZnJvbSB0aGUgb3B0aW9uLCBl
dmVuIGlmIElDVSBpZ25vcmVzIHRoYXQuCisgICAgICAgIFNvLCBhZnRlciBnZXR0aW5nIHRoZSBh
cHByb3ByaWF0ZSBwYXR0ZXJuIGZyb20gSUNVLCB3ZSBtb2RpZnkgdGhpcyBwYXR0ZXJuIGFuZCBy
ZS1jcmVhdGUgVURhdGVGb3JtYXQKKyAgICAgICAgZnJvbSB0aGUgbW9kaWZpZWQgcGF0dGVybi4K
KworICAgICAgICAqIGJ1aWx0aW5zL0RhdGVQcm90b3R5cGUuanM6CisgICAgICAgICh0b0xvY2Fs
ZVN0cmluZy50b0RhdGVUaW1lT3B0aW9uc0FueUFsbCk6CisgICAgICAgICh0b0xvY2FsZVN0cmlu
Zyk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcudG9EYXRlVGltZU9wdGlvbnNEYXRlRGF0
ZSk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcpOgorICAgICAgICAodG9Mb2NhbGVUaW1l
U3RyaW5nLnRvRGF0ZVRpbWVPcHRpb25zVGltZVRpbWUpOgorICAgICAgICAodG9Mb2NhbGVUaW1l
U3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAg
ICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjp0b0RhdGVU
aW1lT3B0aW9uc0FueURhdGUpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6Omlu
aXRpYWxpemVEYXRlVGltZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dDo6Zm9ybWF0U3R5bGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6
OnJlc29sdmVkT3B0aW9ucyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXQuaDoKKwogMjAyMC0wNi0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIENoZWNrIEdpZ2FjYWdlIHVzYWdlIGJlZm9yZSBsYXVuY2hpbmcg
Vk0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9EYXRlUHJvdG90
eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMK
aW5kZXggM2JiMmIyZWMzM2FhNjdiN2U1YjM0ZDJiMjg5ODM5YTRkNzg0ZmE5MC4uNDY4Zjg2Mzk0
ZTYxYmFkMWU0YmI4MmYzODlmYjgwYmE3MDIxMzQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKQEAgLTUxLDYgKzUxLDEzIEBAIGVsc2Ug
aWYgKG9wdHMgPT09IG51bGwpCiAgICAgICAgICAgICBvcHRpb25zLnNlY29uZCA9PT0gQHVuZGVm
aW5lZAogICAgICAgICApOwogCisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2
YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0
eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7CisgICAgICAgICAgICBpZiAoZGF0ZVN0eWxlICE9PSBA
dW5kZWZpbmVkIHx8IHRpbWVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBu
ZWVkc0RlZmF1bHRzID0gZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICAvLyBPbmx5IGNyZWF0
ZSBkZXNjZW5kYW50IGlmIGl0IHdpbGwgaGF2ZSBvd24gcHJvcGVydGllcy4KICAgICAgICAgaWYg
KG5lZWRzRGVmYXVsdHMpIHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBAT2JqZWN0LkBjcmVhdGUo
b3B0aW9ucyk7CkBAIC0xMDMsNiArMTEwLDE1IEBAIGVsc2UgaWYgKG9wdHMgPT09IG51bGwpCiAg
ICAgICAgICAgICBvcHRpb25zLmRheSA9PT0gQHVuZGVmaW5lZAogICAgICAgICApOwogCisgICAg
ICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5k
YXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7
CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigidGltZVN0eWxlIGNhbm5vdCBiZSBzcGVjaWZpZWQiKTsKKyAg
ICAgICAgICAgIGlmIChkYXRlU3R5bGUgIT09IEB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAg
bmVlZHNEZWZhdWx0cyA9IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgLy8gT25seSBjcmVh
dGUgZGVzY2VuZGFudCBpZiBpdCB3aWxsIGhhdmUgb3duIHByb3BlcnRpZXMuCiAgICAgICAgIGlm
IChuZWVkc0RlZmF1bHRzKSB7CiAgICAgICAgICAgICBvcHRpb25zID0gQE9iamVjdC5AY3JlYXRl
KG9wdGlvbnMpOwpAQCAtMTUwLDYgKzE2NiwxNSBAQCBlbHNlIGlmIChvcHRzID09PSBudWxsKQog
ICAgICAgICAgICAgb3B0aW9ucy5zZWNvbmQgPT09IEB1bmRlZmluZWQKICAgICAgICAgKTsKIAor
ICAgICAgICBpZiAob3B0aW9ucykgeworICAgICAgICAgICAgdmFyIGRhdGVTdHlsZSA9IG9wdGlv
bnMuZGF0ZVN0eWxlOworICAgICAgICAgICAgdmFyIHRpbWVTdHlsZSA9IG9wdGlvbnMudGltZVN0
eWxlOworICAgICAgICAgICAgaWYgKGRhdGVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICBAdGhyb3dUeXBlRXJyb3IoImRhdGVTdHlsZSBjYW5ub3QgYmUgc3BlY2lmaWVkIik7
CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAg
ICAgIG5lZWRzRGVmYXVsdHMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIE9ubHkg
Y3JlYXRlIGRlc2NlbmRhbnQgaWYgaXQgd2lsbCBoYXZlIG93biBwcm9wZXJ0aWVzLgogICAgICAg
ICBpZiAobmVlZHNEZWZhdWx0cykgewogICAgICAgICAgICAgb3B0aW9ucyA9IEBPYmplY3QuQGNy
ZWF0ZShvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCmluZGV4IDE2OGVmZWRhMTRkNDYxMDUyNjA3NWFmZGViYWM5YWRiYTI1
MjY2YmEuLjhkY2I3NmMwZjc3NGFlZWViOGQzMjM5YjI2Y2Y4Y2NhZGEwYWRjMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAt
OTAsNiArOTAsNyBAQAogICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8oY291bnQp
IFwKICAgICBtYWNybyhjb3VudGVycykgXAorICAgIG1hY3JvKGRhdGVTdHlsZSkgXAogICAgIG1h
Y3JvKGRheSkgXAogICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCiAgICAgbWFjcm8oZGVyZWYp
IFwKQEAgLTE5MSw2ICsxOTIsNyBAQAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNybyh0aGVu
KSBcCiAgICAgbWFjcm8odGltZSkgXAorICAgIG1hY3JvKHRpbWVTdHlsZSkgXAogICAgIG1hY3Jv
KHRpbWVab25lKSBcCiAgICAgbWFjcm8odGltZVpvbmVOYW1lKSBcCiAgICAgbWFjcm8odG9FeHBv
bmVudGlhbCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdC5jcHAKaW5kZXggN2RmYmMzNjdjZjRmYjQyOThhZGY2MTFkMTJjNmFlMmY0
Njc2MTM4NS4uNjc2MzJlN2M2YmQ1YWE1NjlkYTcxMjIzZDMwNzgxOTQ0ODYwMjQ3OCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQu
Y3BwCkBAIC0yNzcsNiArMjc3LDE0IEBAIHN0YXRpYyBKU09iamVjdCogdG9EYXRlVGltZU9wdGlv
bnNBbnlEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAgICBpZiAo
IXNlY29uZC5pc1VuZGVmaW5lZCgpKQogICAgICAgICBuZWVkRGVmYXVsdHMgPSBmYWxzZTsKIAor
ICAgIEpTVmFsdWUgZGF0ZVN0eWxlID0gb3B0aW9ucy0+Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJv
cGVydHlOYW1lcy0+ZGF0ZVN0eWxlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKKyAgICBKU1ZhbHVlIHRpbWVTdHlsZSA9IG9wdGlvbnMtPmdldChnbG9iYWxPYmpl
Y3QsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgbnVsbHB0cik7CisKKyAgICBpZiAoIWRhdGVTdHlsZS5pc1VuZGVmaW5lZCgpIHx8
ICF0aW1lU3R5bGUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgbmVlZERlZmF1bHRzID0gZmFsc2U7
CisKICAgICAvLyA3LiBJZiBuZWVkRGVmYXVsdHMgaXMgdHJ1ZSBhbmQgZGVmYXVsdHMgaXMgZWl0
aGVyICJkYXRlIiBvciAiYWxsIiwgdGhlbgogICAgIC8vIERlZmF1bHRzIGlzIGFsd2F5cyAiZGF0
ZSIuCiAgICAgaWYgKG5lZWREZWZhdWx0cykgewpAQCAtNTAwLDYgKzUwOCw3IEBAIHZvaWQgSW50
bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpYyA9IHsgIjItZGlnaXQiLCAi
bnVtZXJpYyIgfTsKICAgICBhdXRvIHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9uZyA9IHsg
IjItZGlnaXQiLCAibnVtZXJpYyIsICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIgfTsKICAgICBh
dXRvIHNob3J0TG9uZyA9IHsgInNob3J0IiwgImxvbmciIH07CisgICAgYXV0byBmdWxsTG9uZ01l
ZGl1bVNob3J0ID0geyAiZnVsbCIsICJsb25nIiwgIm1lZGl1bSIsICJzaG9ydCIgfTsKIAogICAg
IFN0cmluZyB3ZWVrZGF5ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMs
IHZtLnByb3BlcnR5TmFtZXMtPndlZWtkYXksIG5hcnJvd1Nob3J0TG9uZywgIndlZWtkYXkgbXVz
dCBiZSBcIm5hcnJvd1wiLCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKQEAgLTU3Miw4ICs1ODEsNyBAQCB2
b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5k
KCdoJyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQo
J0gnKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9ob3VyQ3ljbGUgPSBTdHJpbmcoKTsKKyAgICB9
CiAKICAgICBTdHJpbmcgbWludXRlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1pbnV0ZSwgdHdvRGlnaXROdW1lcmljLCAibWludXRl
IG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAtNjA1LDUyICs2MTMsMTU0IEBAIHZv
aWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwg
b3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+Zm9ybWF0TWF0Y2hlciwgeyAiYmFzaWMiLCAiYmVz
dCBmaXQiIH0sICJmb3JtYXRNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwiYmFzaWNcIiBvciBcImJl
c3QgZml0XCIiLCAiYmVzdCBmaXQiKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2
b2lkKCkpOwogCi0gICAgLy8gQWx3YXlzIHVzZSBJQ1UgZGF0ZSBmb3JtYXQgZ2VuZXJhdG9yLCBy
YXRoZXIgdGhhbiBvdXIgb3duIHBhdHRlcm4gbGlzdCBhbmQgbWF0Y2hlci4KLSAgICBVRXJyb3JD
b2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICBVRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9y
KiBnZW5lcmF0b3IgPSB1ZGF0cGdfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgp
LCAmc3RhdHVzKTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVU
aW1lRm9ybWF0Il9zKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBTdHJpbmcgZGF0ZVN0
eWxlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5
TmFtZXMtPmRhdGVTdHlsZSwgZnVsbExvbmdNZWRpdW1TaG9ydCwgImRhdGVTdHlsZSBtdXN0IGJl
IFwiZnVsbFwiLCBcImxvbmdcIiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVsbHB0cik7
CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIFN0cmluZyBz
a2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpOwotICAgIFN0cmluZ1ZpZXcgc2tl
bGV0b25WaWV3KHNrZWxldG9uKTsKKyAgICBTdHJpbmcgdGltZVN0eWxlID0gaW50bFN0cmluZ09w
dGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSwg
ZnVsbExvbmdNZWRpdW1TaG9ydCwgInRpbWVTdHlsZSBtdXN0IGJlIFwiZnVsbFwiLCBcImxvbmdc
IiwgXCJtZWRpdW1cIiwgb3IgXCJzaG9ydFwiIiwgbnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgdm9pZCgpKTsKKworICAgIGJvb2wgY2FuSW5jbHVkZUhvdXIgPSB0cnVl
OwogICAgIFZlY3RvcjxVQ2hhciwgMzI+IHBhdHRlcm5CdWZmZXI7Ci0gICAgc3RhdHVzID0gY2Fs
bEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRwZ19nZXRCZXN0UGF0dGVybldpdGhPcHRpb25z
LCBnZW5lcmF0b3IsIHNrZWxldG9uVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKS5nZXQoKSwg
c2tlbGV0b25WaWV3Lmxlbmd0aCgpLCBVREFUUEdfTUFUQ0hfSE9VUl9GSUVMRF9MRU5HVEgsIHBh
dHRlcm5CdWZmZXIpOwotICAgIHVkYXRwZ19jbG9zZShnZW5lcmF0b3IpOwotICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0ZVRpbWVGb3JtYXQiX3MpOwotICAgICAgICBy
ZXR1cm47CisgICAgaWYgKCFkYXRlU3R5bGUuaXNOdWxsKCkgfHwgIXRpbWVTdHlsZS5pc051bGwo
KSkgeworICAgICAgICAvLyAzMC4gRm9yIGVhY2ggcm93IGluIFRhYmxlIDEsIGV4Y2VwdCB0aGUg
aGVhZGVyIHJvdywgZG8KKyAgICAgICAgLy8gICAgIGkuIExldCBwcm9wIGJlIHRoZSBuYW1lIGdp
dmVuIGluIHRoZSBQcm9wZXJ0eSBjb2x1bW4gb2YgdGhlIHJvdy4KKyAgICAgICAgLy8gICAgIGlp
LiBMZXQgcCBiZSBvcHQuW1s8cHJvcD5dXS4KKyAgICAgICAgLy8gICAgIGlpaS4gSWYgcCBpcyBu
b3QgdW5kZWZpbmVkLCB0aGVuCisgICAgICAgIC8vICAgICAgICAgMS4gVGhyb3cgYSBUeXBlRXJy
b3IgZXhjZXB0aW9uLgorICAgICAgICBpZiAoIXdlZWtkYXkuaXNOdWxsKCkgfHwgIWVyYS5pc051
bGwoKSB8fCAheWVhci5pc051bGwoKSB8fCAhbW9udGguaXNOdWxsKCkgfHwgIWRheS5pc051bGwo
KSB8fCAhaG91ci5pc051bGwoKSB8fCAhbWludXRlLmlzTnVsbCgpIHx8ICFzZWNvbmQuaXNOdWxs
KCkgfHwgIXRpbWVab25lTmFtZS5pc051bGwoKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImRhdGVTdHlsZSBhbmQgdGltZVN0eWxlIG1heSBub3Qg
YmUgdXNlZCB3aXRoIG90aGVyIERhdGVUaW1lRm9ybWF0IG9wdGlvbnMiX3MpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGltZVN0eWxlIGlzIG5vdCBz
cGVjaWZpZWQsIG1faG91ckN5Y2xlIGRvZXMgbm90IG1hdHRlci4gTGV0J3Mgc2tpcCBlbmZvcmNp
bmcgc3RlcC4KKyAgICAgICAgaWYgKHRpbWVTdHlsZS5pc051bGwoKSkgeworICAgICAgICAgICAg
Y2FuSW5jbHVkZUhvdXIgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faG91ckN5Y2xlID0gU3RyaW5n
KCk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHBhcnNlVURhdGVGb3JtYXRTdHlsZSA9IFtd
KGNvbnN0IFN0cmluZyYgc3R5bGUpIHsKKyAgICAgICAgICAgIGlmIChzdHlsZSA9PSAiZnVsbCJf
cykKKyAgICAgICAgICAgICAgICByZXR1cm4gVURBVF9GVUxMOworICAgICAgICAgICAgaWYgKHN0
eWxlID09ICJsb25nIl9zKQorICAgICAgICAgICAgICAgIHJldHVybiBVREFUX0xPTkc7CisgICAg
ICAgICAgICBpZiAoc3R5bGUgPT0gIm1lZGl1bSJfcykKKyAgICAgICAgICAgICAgICByZXR1cm4g
VURBVF9NRURJVU07CisgICAgICAgICAgICBpZiAoc3R5bGUgPT0gInNob3J0Il9zKQorICAgICAg
ICAgICAgICAgIHJldHVybiBVREFUX1NIT1JUOworICAgICAgICAgICAgcmV0dXJuIFVEQVRfTk9O
RTsKKyAgICAgICAgfTsKKworICAgICAgICAvLyBXZSBjYW5ub3QgdXNlIHRoaXMgVURhdGVGb3Jt
YXQgZGlyZWN0bHkgeWV0IGJlY2F1c2Ugd2UgbmVlZCB0byBlbmZvcmNlIHNwZWNpZmllZCBob3Vy
Q3ljbGUuCisgICAgICAgIC8vIEZpcnN0LCB3ZSBjcmVhdGUgVURhdGVGb3JtYXQgdmlhIGRhdGVT
dHlsZSBhbmQgdGltZVN0eWxlLiBBbmQgdGhlbiBjb252ZXJ0IGl0IHRvIHBhdHRlcm4gc3RyaW5n
LgorICAgICAgICAvLyBBZnRlciB1cGRhdGluZyB0aGlzIHBhdHRlcm4gc3RyaW5nIHdpdGggbV9o
b3VyQ3ljbGUsIHdlIGNyZWF0ZSBhIGZpbmFsIFVEYXRlRm9ybWF0IHdpdGggdGhlIHVwZGF0ZWQg
cGF0dGVybiBzdHJpbmcuCisgICAgICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9S
OworICAgICAgICBTdHJpbmdWaWV3IHRpbWVab25lVmlldyhtX3RpbWVab25lKTsKKyAgICAgICAg
YXV0byBkYXRlRm9ybWF0RnJvbVN0eWxlID0gc3RkOjp1bmlxdWVfcHRyPFVEYXRlRm9ybWF0LCBV
RGF0ZUZvcm1hdERlbGV0ZXI+KHVkYXRfb3BlbihwYXJzZVVEYXRlRm9ybWF0U3R5bGUodGltZVN0
eWxlKSwgcGFyc2VVRGF0ZUZvcm1hdFN0eWxlKGRhdGVTdHlsZSksIGRhdGFMb2NhbGVXaXRoRXh0
ZW5zaW9ucy5kYXRhKCksIHRpbWVab25lVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgdGlt
ZVpvbmVWaWV3Lmxlbmd0aCgpLCBudWxscHRyLCAtMSwgJnN0YXR1cykpOworICAgICAgICBpZiAo
VV9GQUlMVVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBEYXRlVGltZUZvcm1hdCJfcyk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29uc3RleHByIGJvb2wgbG9j
YWxpemVkID0gZmFsc2U7IC8vIEFsaWduZWQgd2l0aCBob3cgSUNVIFNpbXBsZURhdGVUaW1lRm9y
bWF0Ojpmb3JtYXQgd29ya3MuIFdlIGRvIG5vdCBuZWVkIHRvIHRyYW5zbGF0ZSB0aGlzIHRvIGxv
Y2FsaXplZCBwYXR0ZXJuLgorICAgICAgICBzdGF0dXMgPSBjYWxsQnVmZmVyUHJvZHVjaW5nRnVu
Y3Rpb24odWRhdF90b1BhdHRlcm4sIGRhdGVGb3JtYXRGcm9tU3R5bGUuZ2V0KCksIGxvY2FsaXpl
ZCwgcGF0dGVybkJ1ZmZlcik7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAg
ICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBp
bml0aWFsaXplIERhdGVUaW1lRm9ybWF0Il9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIC8vIElmIGhvdXIgaXMgbm90IHNwZWNpZmllZCwg
bV9ob3VyQ3ljbGUgZG9lcyBub3QgbWF0dGVyLiBMZXQncyBza2lwIGVuZm9yY2luZyBzdGVwLgor
ICAgICAgICBpZiAoaG91ci5pc051bGwoKSkgeworICAgICAgICAgICAgY2FuSW5jbHVkZUhvdXIg
PSBmYWxzZTsKKyAgICAgICAgICAgIG1faG91ckN5Y2xlID0gU3RyaW5nKCk7CisgICAgICAgIH0K
KworICAgICAgICAvLyBBbHdheXMgdXNlIElDVSBkYXRlIGZvcm1hdCBnZW5lcmF0b3IsIHJhdGhl
ciB0aGFuIG91ciBvd24gcGF0dGVybiBsaXN0IGFuZCBtYXRjaGVyLgorICAgICAgICBVRXJyb3JD
b2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgYXV0byogZ2VuZXJhdG9yID0gdWRh
dHBnX29wZW4oZGF0YUxvY2FsZVdpdGhFeHRlbnNpb25zLmRhdGEoKSwgJnN0YXR1cyk7CisgICAg
ICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1lRm9ybWF0
Il9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBz
a2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygpOworICAgICAgICBTdHJpbmdWaWV3
IHNrZWxldG9uVmlldyhza2VsZXRvbik7CisgICAgICAgIHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9k
dWNpbmdGdW5jdGlvbih1ZGF0cGdfZ2V0QmVzdFBhdHRlcm5XaXRoT3B0aW9ucywgZ2VuZXJhdG9y
LCBza2VsZXRvblZpZXcudXBjb252ZXJ0ZWRDaGFyYWN0ZXJzKCkuZ2V0KCksIHNrZWxldG9uVmll
dy5sZW5ndGgoKSwgVURBVFBHX01BVENIX0hPVVJfRklFTERfTEVOR1RILCBwYXR0ZXJuQnVmZmVy
KTsKKyAgICAgICAgdWRhdHBnX2Nsb3NlKGdlbmVyYXRvcik7CisgICAgICAgIGlmIChVX0ZBSUxV
UkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1lRm9ybWF0Il9zKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAotICAgIC8vIEVuZm9yY2Ugb3VyIGhvdXJD
eWNsZSwgcmVwbGFjaW5nIGhvdXIgY2hhcmFjdGVycyBpbiBwYXR0ZXJuLgotICAgIGlmICghbV9o
b3VyQ3ljbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgVUNoYXIgaG91ciA9ICdIJzsKLSAgICAgICAg
aWYgKG1faG91ckN5Y2xlID09ICJoMTEiKQotICAgICAgICAgICAgaG91ciA9ICdLJzsKLSAgICAg
ICAgZWxzZSBpZiAobV9ob3VyQ3ljbGUgPT0gImgxMiIpCi0gICAgICAgICAgICBob3VyID0gJ2gn
OwotICAgICAgICBlbHNlIGlmIChtX2hvdXJDeWNsZSA9PSAiaDI0IikKLSAgICAgICAgICAgIGhv
dXIgPSAnayc7Ci0KLSAgICAgICAgYm9vbCBpc0VzY2FwZWQgPSBmYWxzZTsKKyAgICAvLyBFbmZv
cmNlIG91ciBob3VyQ3ljbGUsIHJlcGxhY2luZyBob3VyIGNoYXJhY3RlcnMgaW4gcGF0dGVybi4g
SUNVIGNhbiBwaWNrIGZvcm1hdCB3aGljaCBkb2VzIG5vdCBhZ3JlZSB3aXRoIHNwZWNpZmllZCBo
b3VyQ3ljbGUuCisgICAgLy8gVGhpcyBzdGVwIG1vZGlmaWVzIGdlbmVyYXRlZCBwYXR0ZXJuIHRv
IHVzZSBzcGVjaWZpZWQgaG91ckN5Y2xlLCBhbmQgaXQgaXMgc3BlY2lmaWVkIGluIDEuMS4xIElu
aXRpYWxpemVEYXRlVGltZUZvcm1hdCBzdGVwIDMzLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
Y2FjaGUgYGhvdXJDeWNsZURlZmF1bHRgIHZhbHVlIG9idGFpbmVkIGJ5IGdlbmVyYXRpbmcgImpq
bW0iIHBhdHRlcm4gZnJvbSBVRGF0ZVRpbWVQYXR0ZXJuR2VuZXJhdG9yLgorICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0NTkKKyAgICBpZiAoY2FuSW5j
bHVkZUhvdXIpIHsKICAgICAgICAgYm9vbCBoYXNIb3VyID0gZmFsc2U7Ci0gICAgICAgIGZvciAo
YXV0byYgYyA6IHBhdHRlcm5CdWZmZXIpIHsKLSAgICAgICAgICAgIGlmIChjID09ICdcJycpCi0g
ICAgICAgICAgICAgICAgaXNFc2NhcGVkID0gIWlzRXNjYXBlZDsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKCFpc0VzY2FwZWQgJiYgKGMgPT0gJ2gnIHx8IGMgPT0gJ0gnIHx8IGMgPT0gJ2snIHx8IGMg
PT0gJ0snKSkgewotICAgICAgICAgICAgICAgIGMgPSBob3VyOwotICAgICAgICAgICAgICAgIGhh
c0hvdXIgPSB0cnVlOworICAgICAgICBpZiAoIW1faG91ckN5Y2xlLmlzTnVsbCgpIHx8ICFpc0hv
dXIxMlVuZGVmaW5lZCkgeworICAgICAgICAgICAgVUNoYXIgaG91ckZyb21Ib3VyQ3ljbGUgPSAn
SCc7IC8vIEgyMworICAgICAgICAgICAgaWYgKG1faG91ckN5Y2xlID09ICJoMTEiKQorICAgICAg
ICAgICAgICAgIGhvdXJGcm9tSG91ckN5Y2xlID0gJ0snOworICAgICAgICAgICAgZWxzZSBpZiAo
bV9ob3VyQ3ljbGUgPT0gImgxMiIpCisgICAgICAgICAgICAgICAgaG91ckZyb21Ib3VyQ3ljbGUg
PSAnaCc7CisgICAgICAgICAgICBlbHNlIGlmIChtX2hvdXJDeWNsZSA9PSAiaDI0IikKKyAgICAg
ICAgICAgICAgICBob3VyRnJvbUhvdXJDeWNsZSA9ICdrJzsKKworICAgICAgICAgICAgYm9vbCBp
c0VzY2FwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgYyA6IHBhdHRlcm5CdWZm
ZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXCcnKQorICAgICAgICAgICAgICAgICAg
ICBpc0VzY2FwZWQgPSAhaXNFc2NhcGVkOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFpc0Vz
Y2FwZWQgJiYgKGMgPT0gJ2gnIHx8IGMgPT0gJ0gnIHx8IGMgPT0gJ2snIHx8IGMgPT0gJ0snKSkg
eworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSAnSyc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0gnOiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoaXNIb3VyMTJVbmRlZmluZWQpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYyA9IGhvdXJGcm9tSG91ckN5Y2xlOworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSBpZiAoaG91cjEyID09IFRyaVN0YXRlOjpUcnVlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGMgPSAnSyc7CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYyA9ICdIJzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAg
ICAgICAgICAgICAgICAgICBjYXNlICdrJzogeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGlzSG91cjEyVW5kZWZpbmVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBob3Vy
RnJvbUhvdXJDeWNsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGhvdXIxMiA9
PSBUcmlTdGF0ZTo6VHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjID0gJ2gnOwor
ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGMgPSAnayc7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgaGFzSG91ciA9IHRydWU7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmICghaGFzSG91cikKICAgICAgICAgICAgIG1f
aG91ckN5Y2xlID0gU3RyaW5nKCk7CiAgICAgfQogCisgICAgYXV0byBwYXJzZURhdGVUaW1lU3R5
bGUgPSBbXShjb25zdCBTdHJpbmcmIHN0eWxlKSB7CisgICAgICAgIGlmIChzdHlsZSA9PSAiZnVs
bCJfcykKKyAgICAgICAgICAgIHJldHVybiBEYXRlVGltZVN0eWxlOjpGdWxsOworICAgICAgICBp
ZiAoc3R5bGUgPT0gImxvbmciX3MpCisgICAgICAgICAgICByZXR1cm4gRGF0ZVRpbWVTdHlsZTo6
TG9uZzsKKyAgICAgICAgaWYgKHN0eWxlID09ICJtZWRpdW0iX3MpCisgICAgICAgICAgICByZXR1
cm4gRGF0ZVRpbWVTdHlsZTo6TWVkaXVtOworICAgICAgICBpZiAoc3R5bGUgPT0gInNob3J0Il9z
KQorICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lU3R5bGU6OlNob3J0OworICAgICAgICByZXR1
cm4gRGF0ZVRpbWVTdHlsZTo6Tm9uZTsKKyAgICB9OworCiAgICAgU3RyaW5nVmlldyBwYXR0ZXJu
KHBhdHRlcm5CdWZmZXIuZGF0YSgpLCBwYXR0ZXJuQnVmZmVyLnNpemUoKSk7CiAgICAgc2V0Rm9y
bWF0c0Zyb21QYXR0ZXJuKHBhdHRlcm4pOworICAgIG1fZGF0ZVN0eWxlID0gcGFyc2VEYXRlVGlt
ZVN0eWxlKGRhdGVTdHlsZSk7CisgICAgbV90aW1lU3R5bGUgPSBwYXJzZURhdGVUaW1lU3R5bGUo
dGltZVN0eWxlKTsKIAotICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBVRXJyb3JDb2Rl
IHN0YXR1cyA9IFVfWkVST19FUlJPUjsKICAgICBTdHJpbmdWaWV3IHRpbWVab25lVmlldyhtX3Rp
bWVab25lKTsKICAgICBtX2RhdGVGb3JtYXQgPSBzdGQ6OnVuaXF1ZV9wdHI8VURhdGVGb3JtYXQs
IFVEYXRlRm9ybWF0RGVsZXRlcj4odWRhdF9vcGVuKFVEQVRfUEFUVEVSTiwgVURBVF9QQVRURVJO
LCBkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCB0aW1lWm9uZVZpZXcudXBjb252ZXJ0
ZWRDaGFyYWN0ZXJzKCksIHRpbWVab25lVmlldy5sZW5ndGgoKSwgcGF0dGVybi51cGNvbnZlcnRl
ZENoYXJhY3RlcnMoKSwgcGF0dGVybi5sZW5ndGgoKSwgJnN0YXR1cykpOwogICAgIGlmIChVX0ZB
SUxVUkUoc3RhdHVzKSkgewpAQCAtODA5LDYgKzkxOSwyNSBAQCBBU0NJSUxpdGVyYWwgSW50bERh
dGVUaW1lRm9ybWF0Ojp0aW1lWm9uZU5hbWVTdHJpbmcoVGltZVpvbmVOYW1lIHRpbWVab25lTmFt
ZSkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiB9CiAKK0FTQ0lJTGl0ZXJhbCBJ
bnRsRGF0ZVRpbWVGb3JtYXQ6OmZvcm1hdFN0eWxlU3RyaW5nKERhdGVUaW1lU3R5bGUgc3R5bGUp
Cit7CisgICAgc3dpdGNoIChzdHlsZSkgeworICAgIGNhc2UgRGF0ZVRpbWVTdHlsZTo6RnVsbDoK
KyAgICAgICAgcmV0dXJuICJmdWxsIl9zOworICAgIGNhc2UgRGF0ZVRpbWVTdHlsZTo6TG9uZzoK
KyAgICAgICAgcmV0dXJuICJsb25nIl9zOworICAgIGNhc2UgRGF0ZVRpbWVTdHlsZTo6TWVkaXVt
OgorICAgICAgICByZXR1cm4gIm1lZGl1bSJfczsKKyAgICBjYXNlIERhdGVUaW1lU3R5bGU6OlNo
b3J0OgorICAgICAgICByZXR1cm4gInNob3J0Il9zOworICAgIGNhc2UgRGF0ZVRpbWVTdHlsZTo6
Tm9uZToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWw6Om51bGwoKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOworfQorCiAvLyBodHRwczovL3RjMzkuZXMvZWNt
YTQwMi8jc2VjLWludGwuZGF0ZXRpbWVmb3JtYXQucHJvdG90eXBlLnJlc29sdmVkb3B0aW9ucwog
SlNPYmplY3QqIEludGxEYXRlVGltZUZvcm1hdDo6cmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CiB7CkBAIC04NTIsNiArOTgxLDEyIEBAIEpTT2JqZWN0
KiBJbnRsRGF0ZVRpbWVGb3JtYXQ6OnJlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KSBjb25zCiAgICAgaWYgKG1fdGltZVpvbmVOYW1lICE9IFRpbWVab25lTmFtZTo6
Tm9uZSkKICAgICAgICAgb3B0aW9ucy0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50
aW1lWm9uZU5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgdGltZVpvbmVOYW1lU3RyaW5nKG1f
dGltZVpvbmVOYW1lKSkpOwogCisgICAgaWYgKG1fZGF0ZVN0eWxlICE9IERhdGVUaW1lU3R5bGU6
Ok5vbmUpCisgICAgICAgIG9wdGlvbnMtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
ZGF0ZVN0eWxlLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1hdFN0eWxlU3RyaW5nKG1fZGF0
ZVN0eWxlKSkpOworCisgICAgaWYgKG1fdGltZVN0eWxlICE9IERhdGVUaW1lU3R5bGU6Ok5vbmUp
CisgICAgICAgIG9wdGlvbnMtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+dGltZVN0
eWxlLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1hdFN0eWxlU3RyaW5nKG1fdGltZVN0eWxl
KSkpOworCiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmgKaW5kZXggOWQyNjcxYzg5YzI0YTA2
Mjc2M2JlY2NjY2M4NDgyZGYyYzc1NzdlZC4uZjUxNTRlZTlmNjJkMWExYzFlOTAzMzBhYzc2ZTBj
NzNkNjY2MGJjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0LmgKQEAgLTc4LDYgKzc4LDcgQEAgY2xhc3MgSW50bERhdGVUaW1lRm9y
bWF0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIGVudW0gY2xhc3MgTWlu
dXRlIDogdWludDhfdCB7IE5vbmUsIFR3b0RpZ2l0LCBOdW1lcmljIH07CiAgICAgZW51bSBjbGFz
cyBTZWNvbmQgOiB1aW50OF90IHsgTm9uZSwgVHdvRGlnaXQsIE51bWVyaWMgfTsKICAgICBlbnVt
IGNsYXNzIFRpbWVab25lTmFtZSA6IHVpbnQ4X3QgeyBOb25lLCBTaG9ydCwgTG9uZyB9OworICAg
IGVudW0gY2xhc3MgRGF0ZVRpbWVTdHlsZSA6IHVpbnQ4X3QgeyBOb25lLCBGdWxsLCBMb25nLCBN
ZWRpdW0sIFNob3J0IH07CiAKICAgICBzdHJ1Y3QgVURhdGVGb3JtYXREZWxldGVyIHsKICAgICAg
ICAgdm9pZCBvcGVyYXRvcigpKFVEYXRlRm9ybWF0KikgY29uc3Q7CkBAIC05Myw2ICs5NCw3IEBA
IGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKICAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIG1pbnV0ZVN0cmluZyhNaW51dGUpOwogICAgIHN0
YXRpYyBBU0NJSUxpdGVyYWwgc2Vjb25kU3RyaW5nKFNlY29uZCk7CiAgICAgc3RhdGljIEFTQ0lJ
TGl0ZXJhbCB0aW1lWm9uZU5hbWVTdHJpbmcoVGltZVpvbmVOYW1lKTsKKyAgICBzdGF0aWMgQVND
SUlMaXRlcmFsIGZvcm1hdFN0eWxlU3RyaW5nKERhdGVUaW1lU3R5bGUpOwogCiAgICAgV3JpdGVC
YXJyaWVyPEpTQm91bmRGdW5jdGlvbj4gbV9ib3VuZEZvcm1hdDsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VURhdGVGb3JtYXQsIFVEYXRlRm9ybWF0RGVsZXRlcj4gbV9kYXRlRm9ybWF0OwpAQCAtMTEx
LDYgKzExMyw4IEBAIGNsYXNzIEludGxEYXRlVGltZUZvcm1hdCBmaW5hbCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICBNaW51dGUgbV9taW51dGUgeyBNaW51dGU6Ok5vbmUgfTsKICAg
ICBTZWNvbmQgbV9zZWNvbmQgeyBTZWNvbmQ6Ok5vbmUgfTsKICAgICBUaW1lWm9uZU5hbWUgbV90
aW1lWm9uZU5hbWUgeyBUaW1lWm9uZU5hbWU6Ok5vbmUgfTsKKyAgICBEYXRlVGltZVN0eWxlIG1f
ZGF0ZVN0eWxlIHsgRGF0ZVRpbWVTdHlsZTo6Tm9uZSB9OworICAgIERhdGVUaW1lU3R5bGUgbV90
aW1lU3R5bGUgeyBEYXRlVGltZVN0eWxlOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggY2FmNmYxMzRmNDM2NTdiNGE3OTY0YWY5YWFmNTQ5YTU0OGQzYTNhZC4uNjU4ZmU3MjcxMTkw
MTg2MzcxMDYwMGI1YzdlNDY0OGFjN2FkZDYzYSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNi0yMiAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtFQ01BLTQwMl0g
SW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGltZVN0eWxlIG1pc3NpbmcgaW4gV2ViS2l0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk3NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlciBhbmQgUm9zcyBLaXJzbGluZy4KKwor
ICAgICAgICAqIHN0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10aW1lLXN0eWxlLWJh
c2ljLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAgICAgKHNob3VsZEJlLm8u
Zm9ybWF0KToKKyAgICAgICAgKiBzdHJlc3MvaW50bC1kYXRlLXRpbWUtZm9ybWF0LWRhdGUtdGlt
ZS1zdHlsZS1ob3VyLWN5Y2xlLmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZEJlKToKKyAgICAg
ICAgKHNob3VsZEJlLm8uZm9ybWF0KToKKyAgICAgICAgKiBzdHJlc3MvaW50bC1kYXRlLXRpbWUt
c3R5bGUtb3B0aW9uLWNvbnNpc3RlbmN5LmpzOiBBZGRlZC4KKyAgICAgICAgKHNob3VsZFRocm93
KToKKyAgICAgICAgKHZhbHVlLm9mLk9iamVjdC5lbnRyaWVzKToKKyAgICAgICAgKiB0ZXN0MjYy
L2NvbmZpZy55YW1sOgorICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6CisKIDIw
MjAtMDYtMjEgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAg
ICAgICAgQXR0ZW1wdCB0byB1bnNraXAgc3RyZXNzIHRlc3QgYXJyYXktYnVmZmVyLXZpZXctd2F0
Y2hwb2ludC1jYW4tYmUtZmlyZWQtcmVhbGx5LWFkZC1pbi1kZmcuanMgb24gbW9zdCBhcmNoaXRl
Y3R1cmVzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQt
ZGF0ZS10aW1lLXN0eWxlLWJhc2ljLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUt
Zm9ybWF0LWRhdGUtdGltZS1zdHlsZS1iYXNpYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDAxMzBiZTVlZjlh
ZTdkYTI0NTMxZjkwNjU1MmExNjFlODFiZWFlCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9z
dHJlc3MvaW50bC1kYXRlLXRpbWUtZm9ybWF0LWRhdGUtdGltZS1zdHlsZS1iYXNpYy5qcwpAQCAt
MCwwICsxLDMwIEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAg
aWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZh
bHVlOiAnICsgYWN0dWFsKTsKK30KKworbGV0IG5vdyA9IDE1OTI4MzYzMTIwODE7Cit7CisgICAg
bGV0IG8gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICB0aW1lU3R5
bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICB9KTsKKyAgICBzaG91
bGRCZShvLmZvcm1hdChub3cpLCBgMjozMSBQTWApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcg
SW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICBkYXRlU3R5bGU6ICJzaG9ydCIs
CisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZvcm1h
dChub3cpLCBgNi8yMi8yMGApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGlt
ZUZvcm1hdCgiZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJtZWRpdW0iLAorICAgICAgICBk
YXRlU3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICB9KTsKKyAg
ICBzaG91bGRCZShvLmZvcm1hdChub3cpLCBgNi8yMi8yMCwgMjozMTo1MiBQTWApOworfQpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtZm9ybWF0LWRhdGUtdGltZS1z
dHlsZS1ob3VyLWN5Y2xlLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtZm9ybWF0
LWRhdGUtdGltZS1zdHlsZS1ob3VyLWN5Y2xlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiZDA2OWQzYzBiYzdj
NTg1NWRiOGU5NGY2MmQxZThhZDM0NjhkZTMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0
cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10aW1lLXN0eWxlLWhvdXItY3ljbGUuanMK
QEAgLTAsMCArMSw3OCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgewor
ICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Jh
ZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisKK2xldCBub3cxID0gMTU5Mjg3MDQ0MDAwMDsKK2xl
dCBub3cyID0gMTU5MjgyNzI0MDAwMDsKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRsLkRhdGVUaW1l
Rm9ybWF0KCJlbiIgLCB7CisgICAgICAgIHRpbWVTdHlsZTogInNob3J0IiwKKyAgICAgICAgdGlt
ZVpvbmU6ICJVVEMiLAorICAgICAgICBob3VyQ3ljbGU6ICJoMjMiLAorICAgIH0pOworICAgIHNo
b3VsZEJlKG8uZm9ybWF0KG5vdzEpLCBgMDowMCBBTWApOworfQorCit7CisgICAgbGV0IG8gPSBu
ZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJzaG9y
dCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICAgICAgaG91ckN5Y2xlOiAiaDI0IiwK
KyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZvcm1hdChub3cxKSwgYDI0OjAwIEFNYCk7Cit9CisK
K3sKKyAgICBsZXQgbyA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIgLCB7CisgICAgICAg
IHRpbWVTdHlsZTogInNob3J0IiwKKyAgICAgICAgdGltZVpvbmU6ICJVVEMiLAorICAgICAgICBo
b3VyQ3ljbGU6ICJoMTEiLAorICAgIH0pOworICAgIHNob3VsZEJlKG8uZm9ybWF0KG5vdzEpLCBg
MDowMCBBTWApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgi
ZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25lOiAi
VVRDIiwKKyAgICAgICAgaG91ckN5Y2xlOiAiaDEyIiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShv
LmZvcm1hdChub3cxKSwgYDEyOjAwIEFNYCk7Cit9CisKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRs
LkRhdGVUaW1lRm9ybWF0KCJlbiIgLCB7CisgICAgICAgIHRpbWVTdHlsZTogInNob3J0IiwKKyAg
ICAgICAgdGltZVpvbmU6ICJVVEMiLAorICAgICAgICBob3VyQ3ljbGU6ICJoMjMiLAorICAgIH0p
OworICAgIHNob3VsZEJlKG8uZm9ybWF0KG5vdzIpLCBgMTI6MDAgUE1gKTsKK30KKworeworICAg
IGxldCBvID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiAsIHsKKyAgICAgICAgdGltZVN0
eWxlOiAic2hvcnQiLAorICAgICAgICB0aW1lWm9uZTogIlVUQyIsCisgICAgICAgIGhvdXJDeWNs
ZTogImgyNCIsCisgICAgfSk7CisgICAgc2hvdWxkQmUoby5mb3JtYXQobm93MiksIGAxMjowMCBQ
TWApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwg
eworICAgICAgICB0aW1lU3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwK
KyAgICAgICAgaG91ckN5Y2xlOiAiaDExIiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZvcm1h
dChub3cyKSwgYDA6MDAgUE1gKTsKK30KKworeworICAgIGxldCBvID0gbmV3IEludGwuRGF0ZVRp
bWVGb3JtYXQoImVuIiAsIHsKKyAgICAgICAgdGltZVN0eWxlOiAic2hvcnQiLAorICAgICAgICB0
aW1lWm9uZTogIlVUQyIsCisgICAgICAgIGhvdXJDeWNsZTogImgxMiIsCisgICAgfSk7CisgICAg
c2hvdWxkQmUoby5mb3JtYXQobm93MiksIGAxMjowMCBQTWApOworfQpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtc3R5bGUtb3B0aW9uLWNvbnNpc3RlbmN5LmpzIGIv
SlNUZXN0cy9zdHJlc3MvaW50bC1kYXRlLXRpbWUtc3R5bGUtb3B0aW9uLWNvbnNpc3RlbmN5Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU2ZTM3ZTNjNDg2MzEyYTVkMmI1ZjM4NTMzYmVlZWU2ZWIyMmY3ZDQKLS0t
IC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1zdHlsZS1vcHRp
b24tY29uc2lzdGVuY3kuanMKQEAgLTAsMCArMSw0OCBAQAorZnVuY3Rpb24gc2hvdWxkVGhyb3co
ZnVuYywgZXJyb3JNZXNzYWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAg
dmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBlcnJvclRocm93biA9IHRydWU7CisgICAgICAgIGVycm9yID0gZTsK
KyAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJu
b3QgdGhyb3duIik7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9yTWVzc2FnZSkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKGVycm9yKX1gKTsKK30K
KworbGV0IG9wdGlvbnMgPSB7CisgICAgIndlZWtkYXkiOiAibmFycm93IiwKKyAgICAiZXJhIjog
Im5hcnJvdyIsCisgICAgInllYXIiOiAiMi1kaWdpdCIsCisgICAgIm1vbnRoIjogIjItZGlnaXQi
LAorICAgICJkYXkiOiAiMi1kaWdpdCIsCisgICAgImhvdXIiOiAiMi1kaWdpdCIsCisgICAgIm1p
bnV0ZSI6ICIyLWRpZ2l0IiwKKyAgICAic2Vjb25kIjogIjItZGlnaXQiLAorICAgICJ0aW1lWm9u
ZU5hbWUiOiAic2hvcnQiLAorfTsKKworZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5l
bnRyaWVzKG9wdGlvbnMpKSB7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAgICBuZXcg
SW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7CisgICAgICAgICAgICBkYXRlU3R5bGU6ICJmdWxs
IiwKKyAgICAgICAgICAgIFtrZXldOiB2YWx1ZQorICAgICAgICB9KTsKKyAgICB9LCBgVHlwZUVy
cm9yOiBkYXRlU3R5bGUgYW5kIHRpbWVTdHlsZSBtYXkgbm90IGJlIHVzZWQgd2l0aCBvdGhlciBE
YXRlVGltZUZvcm1hdCBvcHRpb25zYCk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4geworICAgICAg
ICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7CisgICAgICAgICAgICB0aW1lU3R5bGU6
ICJmdWxsIiwKKyAgICAgICAgICAgIFtrZXldOiB2YWx1ZQorICAgICAgICB9KTsKKyAgICB9LCBg
VHlwZUVycm9yOiBkYXRlU3R5bGUgYW5kIHRpbWVTdHlsZSBtYXkgbm90IGJlIHVzZWQgd2l0aCBv
dGhlciBEYXRlVGltZUZvcm1hdCBvcHRpb25zYCk7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gewor
ICAgICAgICBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iLCB7CisgICAgICAgICAgICBkYXRl
U3R5bGU6ICJmdWxsIiwKKyAgICAgICAgICAgIHRpbWVTdHlsZTogImZ1bGwiLAorICAgICAgICAg
ICAgW2tleV06IHZhbHVlCisgICAgICAgIH0pOworICAgIH0sIGBUeXBlRXJyb3I6IGRhdGVTdHls
ZSBhbmQgdGltZVN0eWxlIG1heSBub3QgYmUgdXNlZCB3aXRoIG90aGVyIERhdGVUaW1lRm9ybWF0
IG9wdGlvbnNgKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBi
L0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAppbmRleCBhNzlmMmRiZTM2MTY2ZjBiOGViYjk5
OWRiODVjZjRlMTY0Yjk0ZGYxLi41Y2FmMWFlYjQ0YTJmMjY2YjY5ZjA1ZGQ5ZjUyNWUwMzYwM2Uz
NWI5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC0yMiw3ICsyMiw2IEBAIHNraXA6CiAgICAgLSByZWdl
eHAtbWF0Y2gtaW5kaWNlcwogICAgIC0gdG9wLWxldmVsLWF3YWl0CiAgICAgLSBGaW5hbGl6YXRp
b25SZWdpc3RyeQotICAgIC0gSW50bC5EYXRlVGltZUZvcm1hdC1kYXRldGltZXN0eWxlCiAgICAg
LSBJbnRsLkRhdGVUaW1lRm9ybWF0LWRheVBlcmlvZAogICAgIC0gSW50bC5EYXRlVGltZUZvcm1h
dC1mb3JtYXRSYW5nZQogICAgIC0gSW50bC5EYXRlVGltZUZvcm1hdC1mcmFjdGlvbmFsU2Vjb25k
RGlnaXRzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwgYi9K
U1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggNzlhOGYxY2NjOWZhNjhlN2Vi
NjNkMTZjZjk5ZjkwYTY0NzNjZjg1OS4uMjVkNjE5ODZmM2Y3MTMyM2ZlYmFiMjY1YmJhOWRlYzNj
YjY1NzhjZSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCisr
KyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMTYzOCw2ICsxNjM4LDkg
QEAgdGVzdC9pbnRsNDAyL0NvbGxhdG9yL21pc3NpbmctdW5pY29kZS1leHQtdmFsdWUtZGVmYXVs
dHMtdG8tdHJ1ZS5qczoKIHRlc3QvaW50bDQwMi9Db2xsYXRvci91c2FnZS1kZS5qczoKICAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgW8OELCBBRV0gYW5kIFtBRSwgw4RdIHRvIGhh
dmUgdGhlIHNhbWUgY29udGVudHMuIHNlYXJjaCcKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIFvDhCwgQUVdIGFuZCBbQUUsIMOEXSB0byBoYXZlIHRoZSBzYW1lIGNvbnRl
bnRzLiBzZWFyY2gnCit0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL2Zvcm1h
dC90aW1lZGF0ZXN0eWxlLWVuLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZXN1bHQg
Zm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxNDoxMjo0NyBQTSBDb29yZGlu
YXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENvb3JkaW5hdGVkIFVuaXZlcnNhbCBU
aW1lwrspIHRvIGJlIHRydWUnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBSZXN1bHQg
Zm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxNDoxMjo0NyBQTSBDb29yZGlu
YXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENvb3JkaW5hdGVkIFVuaXZlcnNhbCBU
aW1lwrspIHRvIGJlIHRydWUnCiB0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBl
L3Jlc29sdmVkT3B0aW9ucy9ob3VyQ3ljbGUtZGVmYXVsdC5qczoKICAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKraDI0wrssIMKraDIzwrspIHRvIGJlIHRydWUn
CiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtoMjTC
uywgwqtoMjPCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407055</attachid>
            <date>2020-08-22 12:14:02 -0700</date>
            <delta_ts>2020-08-22 13:36:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209776-20200822121401.patch</filename>
            <type>text/plain</type>
            <size>25515</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
YmRhMjYyNzU0YmI1ODgyNTA1ZjllODg3OWQzMjEyYmU0NjY5NzA5Li41ZmExMjUwNDE2YWM2NjE5
NzYyNGM0MDM0Yzg3ZmM3YzdiMzQxOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMC0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtFQ01BLTQwMl0gSW50bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUvdGlt
ZVN0eWxlIG1pc3NpbmcgaW4gV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk3NzYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ciBhbmQgUm9zcyBLaXJzbGluZy4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgSW50
bC5EYXRlVGltZUZvcm1hdCBkYXRlU3R5bGUgYW5kIHRpbWVTdHlsZSBvcHRpb25zLiBXaGVuIGl0
IGlzIHNwZWNpZmllZCwKKyAgICAgICAgd2UgcXVlcnkgdGhlIGJlc3QgZGF0ZS10aW1lIGZvcm1h
dCB3aXRoIHRoZXNlIG9wdGlvbnMgdG8gSUNVIGluc3RlYWQgb2YgY29uZmlndXJpbmcgZWFjaCBk
YXRlLXRpbWUKKyAgICAgICAgZm9ybWF0cy4KKworICAgICAgICBTaW5jZSBFQ01BNDAyIHJlcXVp
cmVzIGVuZm9yY2VtZW50IG9mIGhvdXJDeWNsZSBzcGVjaWZpZWQgZnJvbSB0aGUgb3B0aW9uLCBl
dmVuIGlmIElDVSBpZ25vcmVzIHRoYXQuCisgICAgICAgIFNvLCBhZnRlciBnZXR0aW5nIHRoZSBh
cHByb3ByaWF0ZSBwYXR0ZXJuIGZyb20gSUNVLCB3ZSBtb2RpZnkgdGhpcyBwYXR0ZXJuIGFuZCBy
ZS1jcmVhdGUgVURhdGVGb3JtYXQKKyAgICAgICAgZnJvbSB0aGUgbW9kaWZpZWQgcGF0dGVybi4K
KworICAgICAgICAqIGJ1aWx0aW5zL0RhdGVQcm90b3R5cGUuanM6CisgICAgICAgICh0b0xvY2Fs
ZVN0cmluZy50b0RhdGVUaW1lT3B0aW9uc0FueUFsbCk6CisgICAgICAgICh0b0xvY2FsZVN0cmlu
Zyk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcudG9EYXRlVGltZU9wdGlvbnNEYXRlRGF0
ZSk6CisgICAgICAgICh0b0xvY2FsZURhdGVTdHJpbmcpOgorICAgICAgICAodG9Mb2NhbGVUaW1l
U3RyaW5nLnRvRGF0ZVRpbWVPcHRpb25zVGltZVRpbWUpOgorICAgICAgICAodG9Mb2NhbGVUaW1l
U3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmg6CisgICAgICAg
ICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjp0b0RhdGVU
aW1lT3B0aW9uc0FueURhdGUpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6Omlu
aXRpYWxpemVEYXRlVGltZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dDo6Zm9ybWF0U3R5bGVTdHJpbmcpOgorICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6
OnJlc29sdmVkT3B0aW9ucyBjb25zdCk6CisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXQuaDoKKwogMjAyMC0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtFQ01BLTQwMl0gSW1wbGVtZW50IHVuaWZpZWQgSW50bC5OdW1iZXJGb3Jt
YXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9EYXRlUHJvdG90
eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMK
aW5kZXggM2JiMmIyZWMzM2FhNjdiN2U1YjM0ZDJiMjg5ODM5YTRkNzg0ZmE5MC4uNDY4Zjg2Mzk0
ZTYxYmFkMWU0YmI4MmYzODlmYjgwYmE3MDIxMzQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL0RhdGVQcm90b3R5cGUuanMKQEAgLTUxLDYgKzUxLDEzIEBAIGVsc2Ug
aWYgKG9wdHMgPT09IG51bGwpCiAgICAgICAgICAgICBvcHRpb25zLnNlY29uZCA9PT0gQHVuZGVm
aW5lZAogICAgICAgICApOwogCisgICAgICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2
YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5kYXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0
eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7CisgICAgICAgICAgICBpZiAoZGF0ZVN0eWxlICE9PSBA
dW5kZWZpbmVkIHx8IHRpbWVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBu
ZWVkc0RlZmF1bHRzID0gZmFsc2U7CisgICAgICAgIH0KKwogICAgICAgICAvLyBPbmx5IGNyZWF0
ZSBkZXNjZW5kYW50IGlmIGl0IHdpbGwgaGF2ZSBvd24gcHJvcGVydGllcy4KICAgICAgICAgaWYg
KG5lZWRzRGVmYXVsdHMpIHsKICAgICAgICAgICAgIG9wdGlvbnMgPSBAT2JqZWN0LkBjcmVhdGUo
b3B0aW9ucyk7CkBAIC0xMDMsNiArMTEwLDE1IEBAIGVsc2UgaWYgKG9wdHMgPT09IG51bGwpCiAg
ICAgICAgICAgICBvcHRpb25zLmRheSA9PT0gQHVuZGVmaW5lZAogICAgICAgICApOwogCisgICAg
ICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgICAgICB2YXIgZGF0ZVN0eWxlID0gb3B0aW9ucy5k
YXRlU3R5bGU7CisgICAgICAgICAgICB2YXIgdGltZVN0eWxlID0gb3B0aW9ucy50aW1lU3R5bGU7
CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAg
ICAgIEB0aHJvd1R5cGVFcnJvcigidGltZVN0eWxlIGNhbm5vdCBiZSBzcGVjaWZpZWQiKTsKKyAg
ICAgICAgICAgIGlmIChkYXRlU3R5bGUgIT09IEB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAg
bmVlZHNEZWZhdWx0cyA9IGZhbHNlOworICAgICAgICB9CisKICAgICAgICAgLy8gT25seSBjcmVh
dGUgZGVzY2VuZGFudCBpZiBpdCB3aWxsIGhhdmUgb3duIHByb3BlcnRpZXMuCiAgICAgICAgIGlm
IChuZWVkc0RlZmF1bHRzKSB7CiAgICAgICAgICAgICBvcHRpb25zID0gQE9iamVjdC5AY3JlYXRl
KG9wdGlvbnMpOwpAQCAtMTUwLDYgKzE2NiwxNSBAQCBlbHNlIGlmIChvcHRzID09PSBudWxsKQog
ICAgICAgICAgICAgb3B0aW9ucy5zZWNvbmQgPT09IEB1bmRlZmluZWQKICAgICAgICAgKTsKIAor
ICAgICAgICBpZiAob3B0aW9ucykgeworICAgICAgICAgICAgdmFyIGRhdGVTdHlsZSA9IG9wdGlv
bnMuZGF0ZVN0eWxlOworICAgICAgICAgICAgdmFyIHRpbWVTdHlsZSA9IG9wdGlvbnMudGltZVN0
eWxlOworICAgICAgICAgICAgaWYgKGRhdGVTdHlsZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAg
ICAgICAgICBAdGhyb3dUeXBlRXJyb3IoImRhdGVTdHlsZSBjYW5ub3QgYmUgc3BlY2lmaWVkIik7
CisgICAgICAgICAgICBpZiAodGltZVN0eWxlICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAg
ICAgIG5lZWRzRGVmYXVsdHMgPSBmYWxzZTsKKyAgICAgICAgfQorCiAgICAgICAgIC8vIE9ubHkg
Y3JlYXRlIGRlc2NlbmRhbnQgaWYgaXQgd2lsbCBoYXZlIG93biBwcm9wZXJ0aWVzLgogICAgICAg
ICBpZiAobmVlZHNEZWZhdWx0cykgewogICAgICAgICAgICAgb3B0aW9ucyA9IEBPYmplY3QuQGNy
ZWF0ZShvcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCmluZGV4IGNhMTlkMDJiZTE3Y2EwNjQwNmEzOGU2MTY3NDExZTMwNWE0
ZTUwNGYuLjdmMWYzOTE1Y2ZlNWU3NmY1Njg2MTk5ZGMzNzA1NzE1ZTMwNWRhNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaApAQCAt
OTIsNiArOTIsNyBAQAogICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8oY291bnQp
IFwKICAgICBtYWNybyhjb3VudGVycykgXAorICAgIG1hY3JvKGRhdGVTdHlsZSkgXAogICAgIG1h
Y3JvKGRheSkgXAogICAgIG1hY3JvKGRlZmluZVByb3BlcnR5KSBcCiAgICAgbWFjcm8oZGVyZWYp
IFwKQEAgLTE5Myw2ICsxOTQsNyBAQAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNybyh0aGVu
KSBcCiAgICAgbWFjcm8odGltZSkgXAorICAgIG1hY3JvKHRpbWVTdHlsZSkgXAogICAgIG1hY3Jv
KHRpbWVab25lKSBcCiAgICAgbWFjcm8odGltZVpvbmVOYW1lKSBcCiAgICAgbWFjcm8odG9FeHBv
bmVudGlhbCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdC5jcHAKaW5kZXggZjE5MTdhZmJhNTA4YzRjMjkxN2U1ZGRmYzk0MDYwYzI1
Y2ZkM2FiNC4uZjk1MTYzYzU5MzE2OWM0YWNkNDAwMmQ2MTdiZmE2MGJjODljYzhiNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQu
Y3BwCkBAIC0yNjcsNiArMjY3LDE0IEBAIHN0YXRpYyBKU09iamVjdCogdG9EYXRlVGltZU9wdGlv
bnNBbnlEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAgICBpZiAo
IXNlY29uZC5pc1VuZGVmaW5lZCgpKQogICAgICAgICBuZWVkRGVmYXVsdHMgPSBmYWxzZTsKIAor
ICAgIEpTVmFsdWUgZGF0ZVN0eWxlID0gb3B0aW9ucy0+Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJv
cGVydHlOYW1lcy0+ZGF0ZVN0eWxlKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKKyAgICBKU1ZhbHVlIHRpbWVTdHlsZSA9IG9wdGlvbnMtPmdldChnbG9iYWxPYmpl
Y3QsIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVTdHlsZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgbnVsbHB0cik7CisKKyAgICBpZiAoIWRhdGVTdHlsZS5pc1VuZGVmaW5lZCgpIHx8
ICF0aW1lU3R5bGUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgbmVlZERlZmF1bHRzID0gZmFsc2U7
CisKICAgICAvLyA3LiBJZiBuZWVkRGVmYXVsdHMgaXMgdHJ1ZSBhbmQgZGVmYXVsdHMgaXMgZWl0
aGVyICJkYXRlIiBvciAiYWxsIiwgdGhlbgogICAgIC8vIERlZmF1bHRzIGlzIGFsd2F5cyAiZGF0
ZSIuCiAgICAgaWYgKG5lZWREZWZhdWx0cykgewpAQCAtNTg2LDcgKzU5NCw2IEBAIHZvaWQgSW50
bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ0gnKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIb3VyOjpOb25lOgotICAgICAgICBtX2hvdXJDeWNs
ZSA9IFN0cmluZygpOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTYzMiw0MiArNjM5LDEz
NCBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgaW50bFN0cmluZ09wdGlvbihnbG9iYWxP
YmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmZvcm1hdE1hdGNoZXIsIHsgImJhc2lj
IiwgImJlc3QgZml0IiB9LCAiZm9ybWF0TWF0Y2hlciBtdXN0IGJlIGVpdGhlciBcImJhc2ljXCIg
b3IgXCJiZXN0IGZpdFwiIiwgImJlc3QgZml0Iik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgdm9pZCgpKTsKIAotICAgIC8vIEFsd2F5cyB1c2UgSUNVIGRhdGUgZm9ybWF0IGdlbmVy
YXRvciwgcmF0aGVyIHRoYW4gb3VyIG93biBwYXR0ZXJuIGxpc3QgYW5kIG1hdGNoZXIuCi0gICAg
VUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgVURhdGVUaW1lUGF0dGVybkdl
bmVyYXRvciogZ2VuZXJhdG9yID0gdWRhdHBnX29wZW4oZGF0YUxvY2FsZVdpdGhFeHRlbnNpb25z
LmRhdGEoKSwgJnN0YXR1cyk7Ci0gICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7Ci0gICAgICAg
IHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gaW5pdGlhbGl6
ZSBEYXRlVGltZUZvcm1hdCJfcyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgbV9kYXRl
U3R5bGUgPSBpbnRsT3B0aW9uPERhdGVUaW1lU3R5bGU+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywg
dm0ucHJvcGVydHlOYW1lcy0+ZGF0ZVN0eWxlLCB7IHsgImZ1bGwiX3MsIERhdGVUaW1lU3R5bGU6
OkZ1bGwgfSwgeyAibG9uZyJfcywgRGF0ZVRpbWVTdHlsZTo6TG9uZyB9LCB7ICJtZWRpdW0iX3Ms
IERhdGVUaW1lU3R5bGU6Ok1lZGl1bSB9LCB7ICJzaG9ydCJfcywgRGF0ZVRpbWVTdHlsZTo6U2hv
cnQgfSB9LCAiZGF0ZVN0eWxlIG11c3QgYmUgXCJmdWxsXCIsIFwibG9uZ1wiLCBcIm1lZGl1bVwi
LCBvciBcInNob3J0XCIiX3MsIERhdGVUaW1lU3R5bGU6Ok5vbmUpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisKKyAgICBtX3RpbWVTdHlsZSA9IGludGxPcHRpb248
RGF0ZVRpbWVTdHlsZT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT50
aW1lU3R5bGUsIHsgeyAiZnVsbCJfcywgRGF0ZVRpbWVTdHlsZTo6RnVsbCB9LCB7ICJsb25nIl9z
LCBEYXRlVGltZVN0eWxlOjpMb25nIH0sIHsgIm1lZGl1bSJfcywgRGF0ZVRpbWVTdHlsZTo6TWVk
aXVtIH0sIHsgInNob3J0Il9zLCBEYXRlVGltZVN0eWxlOjpTaG9ydCB9IH0sICJ0aW1lU3R5bGUg
bXVzdCBiZSBcImZ1bGxcIiwgXCJsb25nXCIsIFwibWVkaXVtXCIsIG9yIFwic2hvcnRcIiJfcywg
RGF0ZVRpbWVTdHlsZTo6Tm9uZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9p
ZCgpKTsKIAotICAgIFN0cmluZyBza2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmluZygp
OwotICAgIFN0cmluZ1ZpZXcgc2tlbGV0b25WaWV3KHNrZWxldG9uKTsKKyAgICBib29sIGNhbklu
Y2x1ZGVIb3VyID0gdHJ1ZTsKICAgICBWZWN0b3I8VUNoYXIsIDMyPiBwYXR0ZXJuQnVmZmVyOwot
ICAgIHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9kdWNpbmdGdW5jdGlvbih1ZGF0cGdfZ2V0QmVzdFBh
dHRlcm5XaXRoT3B0aW9ucywgZ2VuZXJhdG9yLCBza2VsZXRvblZpZXcudXBjb252ZXJ0ZWRDaGFy
YWN0ZXJzKCkuZ2V0KCksIHNrZWxldG9uVmlldy5sZW5ndGgoKSwgVURBVFBHX01BVENIX0hPVVJf
RklFTERfTEVOR1RILCBwYXR0ZXJuQnVmZmVyKTsKLSAgICB1ZGF0cGdfY2xvc2UoZ2VuZXJhdG9y
KTsKLSAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVUaW1lRm9ybWF0
Il9zKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtX2RhdGVTdHlsZSAhPSBEYXRlVGltZVN0
eWxlOjpOb25lIHx8IG1fdGltZVN0eWxlICE9IERhdGVUaW1lU3R5bGU6Ok5vbmUpIHsKKyAgICAg
ICAgLy8gMzAuIEZvciBlYWNoIHJvdyBpbiBUYWJsZSAxLCBleGNlcHQgdGhlIGhlYWRlciByb3cs
IGRvCisgICAgICAgIC8vICAgICBpLiBMZXQgcHJvcCBiZSB0aGUgbmFtZSBnaXZlbiBpbiB0aGUg
UHJvcGVydHkgY29sdW1uIG9mIHRoZSByb3cuCisgICAgICAgIC8vICAgICBpaS4gTGV0IHAgYmUg
b3B0LltbPHByb3A+XV0uCisgICAgICAgIC8vICAgICBpaWkuIElmIHAgaXMgbm90IHVuZGVmaW5l
ZCwgdGhlbgorICAgICAgICAvLyAgICAgICAgIDEuIFRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlv
bi4KKyAgICAgICAgaWYgKHdlZWtkYXkgIT0gV2Vla2RheTo6Tm9uZSB8fCBlcmEgIT0gRXJhOjpO
b25lIHx8IHllYXIgIT0gWWVhcjo6Tm9uZSB8fCBtb250aCAhPSBNb250aDo6Tm9uZSB8fCBkYXkg
IT0gRGF5OjpOb25lIHx8IGhvdXIgIT0gSG91cjo6Tm9uZSB8fCBtaW51dGUgIT0gTWludXRlOjpO
b25lIHx8IHNlY29uZCAhPSBTZWNvbmQ6Ok5vbmUgfHwgdGltZVpvbmVOYW1lICE9IFRpbWVab25l
TmFtZTo6Tm9uZSkgeworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgImRhdGVTdHlsZSBhbmQgdGltZVN0eWxlIG1heSBub3QgYmUgdXNlZCB3aXRoIG90aGVy
IERhdGVUaW1lRm9ybWF0IG9wdGlvbnMiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gSWYgdGltZVN0eWxlIGlzIG5vdCBzcGVjaWZpZWQsIG1faG91ckN5
Y2xlIGRvZXMgbm90IG1hdHRlci4gTGV0J3Mgc2tpcCBlbmZvcmNpbmcgc3RlcC4KKyAgICAgICAg
aWYgKG1fdGltZVN0eWxlID09IERhdGVUaW1lU3R5bGU6Ok5vbmUpIHsKKyAgICAgICAgICAgIGNh
bkluY2x1ZGVIb3VyID0gZmFsc2U7CisgICAgICAgICAgICBtX2hvdXJDeWNsZSA9IFN0cmluZygp
OworICAgICAgICB9CisKKyAgICAgICAgYXV0byBwYXJzZVVEYXRlRm9ybWF0U3R5bGUgPSBbXShE
YXRlVGltZVN0eWxlIHN0eWxlKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlKSB7CisgICAg
ICAgICAgICBjYXNlIERhdGVUaW1lU3R5bGU6OkZ1bGw6CisgICAgICAgICAgICAgICAgcmV0dXJu
IFVEQVRfRlVMTDsKKyAgICAgICAgICAgIGNhc2UgRGF0ZVRpbWVTdHlsZTo6TG9uZzoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gVURBVF9MT05HOworICAgICAgICAgICAgY2FzZSBEYXRlVGltZVN0
eWxlOjpNZWRpdW06CisgICAgICAgICAgICAgICAgcmV0dXJuIFVEQVRfTUVESVVNOworICAgICAg
ICAgICAgY2FzZSBEYXRlVGltZVN0eWxlOjpTaG9ydDoKKyAgICAgICAgICAgICAgICByZXR1cm4g
VURBVF9TSE9SVDsKKyAgICAgICAgICAgIGNhc2UgRGF0ZVRpbWVTdHlsZTo6Tm9uZToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gVURBVF9OT05FOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmV0dXJuIFVEQVRfTk9ORTsKKyAgICAgICAgfTsKKworICAgICAgICAvLyBXZSBjYW5ub3QgdXNl
IHRoaXMgVURhdGVGb3JtYXQgZGlyZWN0bHkgeWV0IGJlY2F1c2Ugd2UgbmVlZCB0byBlbmZvcmNl
IHNwZWNpZmllZCBob3VyQ3ljbGUuCisgICAgICAgIC8vIEZpcnN0LCB3ZSBjcmVhdGUgVURhdGVG
b3JtYXQgdmlhIGRhdGVTdHlsZSBhbmQgdGltZVN0eWxlLiBBbmQgdGhlbiBjb252ZXJ0IGl0IHRv
IHBhdHRlcm4gc3RyaW5nLgorICAgICAgICAvLyBBZnRlciB1cGRhdGluZyB0aGlzIHBhdHRlcm4g
c3RyaW5nIHdpdGggbV9ob3VyQ3ljbGUsIHdlIGNyZWF0ZSBhIGZpbmFsIFVEYXRlRm9ybWF0IHdp
dGggdGhlIHVwZGF0ZWQgcGF0dGVybiBzdHJpbmcuCisgICAgICAgIFVFcnJvckNvZGUgc3RhdHVz
ID0gVV9aRVJPX0VSUk9SOworICAgICAgICBTdHJpbmdWaWV3IHRpbWVab25lVmlldyhtX3RpbWVa
b25lKTsKKyAgICAgICAgYXV0byBkYXRlRm9ybWF0RnJvbVN0eWxlID0gc3RkOjp1bmlxdWVfcHRy
PFVEYXRlRm9ybWF0LCBVRGF0ZUZvcm1hdERlbGV0ZXI+KHVkYXRfb3BlbihwYXJzZVVEYXRlRm9y
bWF0U3R5bGUobV90aW1lU3R5bGUpLCBwYXJzZVVEYXRlRm9ybWF0U3R5bGUobV9kYXRlU3R5bGUp
LCBkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCB0aW1lWm9uZVZpZXcudXBjb252ZXJ0
ZWRDaGFyYWN0ZXJzKCksIHRpbWVab25lVmlldy5sZW5ndGgoKSwgbnVsbHB0ciwgLTEsICZzdGF0
dXMpKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CisgICAgICAgICAgICB0aHJv
d1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUgRGF0
ZVRpbWVGb3JtYXQiX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IGNvbnN0ZXhwciBib29sIGxvY2FsaXplZCA9IGZhbHNlOyAvLyBBbGlnbmVkIHdpdGggaG93IElD
VSBTaW1wbGVEYXRlVGltZUZvcm1hdDo6Zm9ybWF0IHdvcmtzLiBXZSBkbyBub3QgbmVlZCB0byB0
cmFuc2xhdGUgdGhpcyB0byBsb2NhbGl6ZWQgcGF0dGVybi4KKyAgICAgICAgc3RhdHVzID0gY2Fs
bEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVkYXRfdG9QYXR0ZXJuLCBkYXRlRm9ybWF0RnJvbVN0
eWxlLmdldCgpLCBsb2NhbGl6ZWQsIHBhdHRlcm5CdWZmZXIpOworICAgICAgICBpZiAoVV9GQUlM
VVJFKHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBEYXRlVGltZUZvcm1hdCJfcyk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBJZiBob3Vy
IGlzIG5vdCBzcGVjaWZpZWQsIG1faG91ckN5Y2xlIGRvZXMgbm90IG1hdHRlci4gTGV0J3Mgc2tp
cCBlbmZvcmNpbmcgc3RlcC4KKyAgICAgICAgaWYgKGhvdXIgPT0gSG91cjo6Tm9uZSkgeworICAg
ICAgICAgICAgY2FuSW5jbHVkZUhvdXIgPSBmYWxzZTsKKyAgICAgICAgICAgIG1faG91ckN5Y2xl
ID0gU3RyaW5nKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBbHdheXMgdXNlIElDVSBkYXRl
IGZvcm1hdCBnZW5lcmF0b3IsIHJhdGhlciB0aGFuIG91ciBvd24gcGF0dGVybiBsaXN0IGFuZCBt
YXRjaGVyLgorICAgICAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICAg
ICAgYXV0byogZ2VuZXJhdG9yID0gdWRhdHBnX29wZW4oZGF0YUxvY2FsZVdpdGhFeHRlbnNpb25z
LmRhdGEoKSwgJnN0YXR1cyk7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAg
ICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBp
bml0aWFsaXplIERhdGVUaW1lRm9ybWF0Il9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIFN0cmluZyBza2VsZXRvbiA9IHNrZWxldG9uQnVpbGRlci50b1N0cmlu
ZygpOworICAgICAgICBTdHJpbmdWaWV3IHNrZWxldG9uVmlldyhza2VsZXRvbik7CisgICAgICAg
IHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9kdWNpbmdGdW5jdGlvbih1ZGF0cGdfZ2V0QmVzdFBhdHRl
cm5XaXRoT3B0aW9ucywgZ2VuZXJhdG9yLCBza2VsZXRvblZpZXcudXBjb252ZXJ0ZWRDaGFyYWN0
ZXJzKCkuZ2V0KCksIHNrZWxldG9uVmlldy5sZW5ndGgoKSwgVURBVFBHX01BVENIX0hPVVJfRklF
TERfTEVOR1RILCBwYXR0ZXJuQnVmZmVyKTsKKyAgICAgICAgdWRhdHBnX2Nsb3NlKGdlbmVyYXRv
cik7CisgICAgICAgIGlmIChVX0ZBSUxVUkUoc3RhdHVzKSkgeworICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIERhdGVU
aW1lRm9ybWF0Il9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIAot
ICAgIC8vIEVuZm9yY2Ugb3VyIGhvdXJDeWNsZSwgcmVwbGFjaW5nIGhvdXIgY2hhcmFjdGVycyBp
biBwYXR0ZXJuLgotICAgIGlmICghbV9ob3VyQ3ljbGUuaXNOdWxsKCkpIHsKLSAgICAgICAgVUNo
YXIgaG91ciA9ICdIJzsKLSAgICAgICAgaWYgKG1faG91ckN5Y2xlID09ICJoMTEiKQotICAgICAg
ICAgICAgaG91ciA9ICdLJzsKLSAgICAgICAgZWxzZSBpZiAobV9ob3VyQ3ljbGUgPT0gImgxMiIp
Ci0gICAgICAgICAgICBob3VyID0gJ2gnOwotICAgICAgICBlbHNlIGlmIChtX2hvdXJDeWNsZSA9
PSAiaDI0IikKLSAgICAgICAgICAgIGhvdXIgPSAnayc7Ci0KLSAgICAgICAgYm9vbCBpc0VzY2Fw
ZWQgPSBmYWxzZTsKKyAgICAvLyBFbmZvcmNlIG91ciBob3VyQ3ljbGUsIHJlcGxhY2luZyBob3Vy
IGNoYXJhY3RlcnMgaW4gcGF0dGVybi4gSUNVIGNhbiBwaWNrIGZvcm1hdCB3aGljaCBkb2VzIG5v
dCBhZ3JlZSB3aXRoIHNwZWNpZmllZCBob3VyQ3ljbGUuCisgICAgLy8gVGhpcyBzdGVwIG1vZGlm
aWVzIGdlbmVyYXRlZCBwYXR0ZXJuIHRvIHVzZSBzcGVjaWZpZWQgaG91ckN5Y2xlLCBhbmQgaXQg
aXMgc3BlY2lmaWVkIGluIDEuMS4xIEluaXRpYWxpemVEYXRlVGltZUZvcm1hdCBzdGVwIDMzLgor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2FjaGUgYGhvdXJDeWNsZURlZmF1bHRgIHZhbHVlIG9i
dGFpbmVkIGJ5IGdlbmVyYXRpbmcgImpqbW0iIHBhdHRlcm4gZnJvbSBVRGF0ZVRpbWVQYXR0ZXJu
R2VuZXJhdG9yLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTM0NTkKKyAgICBpZiAoY2FuSW5jbHVkZUhvdXIpIHsKICAgICAgICAgYm9vbCBoYXNIb3Vy
ID0gZmFsc2U7Ci0gICAgICAgIGZvciAoYXV0byYgYyA6IHBhdHRlcm5CdWZmZXIpIHsKLSAgICAg
ICAgICAgIGlmIChjID09ICdcJycpCi0gICAgICAgICAgICAgICAgaXNFc2NhcGVkID0gIWlzRXNj
YXBlZDsKLSAgICAgICAgICAgIGVsc2UgaWYgKCFpc0VzY2FwZWQgJiYgKGMgPT0gJ2gnIHx8IGMg
PT0gJ0gnIHx8IGMgPT0gJ2snIHx8IGMgPT0gJ0snKSkgewotICAgICAgICAgICAgICAgIGMgPSBo
b3VyOwotICAgICAgICAgICAgICAgIGhhc0hvdXIgPSB0cnVlOworICAgICAgICBpZiAoIW1faG91
ckN5Y2xlLmlzTnVsbCgpIHx8ICFpc0hvdXIxMlVuZGVmaW5lZCkgeworICAgICAgICAgICAgVUNo
YXIgaG91ckZyb21Ib3VyQ3ljbGUgPSAnSCc7IC8vIEgyMworICAgICAgICAgICAgaWYgKG1faG91
ckN5Y2xlID09ICJoMTEiKQorICAgICAgICAgICAgICAgIGhvdXJGcm9tSG91ckN5Y2xlID0gJ0sn
OworICAgICAgICAgICAgZWxzZSBpZiAobV9ob3VyQ3ljbGUgPT0gImgxMiIpCisgICAgICAgICAg
ICAgICAgaG91ckZyb21Ib3VyQ3ljbGUgPSAnaCc7CisgICAgICAgICAgICBlbHNlIGlmIChtX2hv
dXJDeWNsZSA9PSAiaDI0IikKKyAgICAgICAgICAgICAgICBob3VyRnJvbUhvdXJDeWNsZSA9ICdr
JzsKKworICAgICAgICAgICAgYm9vbCBpc0VzY2FwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGZv
ciAoYXV0byYgYyA6IHBhdHRlcm5CdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoYyA9PSAn
XCcnKQorICAgICAgICAgICAgICAgICAgICBpc0VzY2FwZWQgPSAhaXNFc2NhcGVkOworICAgICAg
ICAgICAgICAgIGVsc2UgaWYgKCFpc0VzY2FwZWQgJiYgKGMgPT0gJ2gnIHx8IGMgPT0gJ0gnIHx8
IGMgPT0gJ2snIHx8IGMgPT0gJ0snKSkgeworICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGMp
IHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnSyc6CisgICAgICAgICAgICAgICAgICAgIGNh
c2UgJ0gnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNIb3VyMTJVbmRlZmluZWQp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGhvdXJGcm9tSG91ckN5Y2xlOworICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaG91cjEyID09IFRyaVN0YXRlOjpUcnVlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAnSyc7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICdIJzsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAgICBjYXNlICdrJzogeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSG91cjEyVW5kZWZpbmVkKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGMgPSBob3VyRnJvbUhvdXJDeWNsZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKGhvdXIxMiA9PSBUcmlTdGF0ZTo6VHJ1ZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjID0gJ2gnOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAnayc7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaGFzSG91ciA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmICgh
aGFzSG91cikKQEAgLTY3Nyw3ICs3NzYsNyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5p
dGlhbGl6ZURhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAg
U3RyaW5nVmlldyBwYXR0ZXJuKHBhdHRlcm5CdWZmZXIuZGF0YSgpLCBwYXR0ZXJuQnVmZmVyLnNp
emUoKSk7CiAgICAgc2V0Rm9ybWF0c0Zyb21QYXR0ZXJuKHBhdHRlcm4pOwogCi0gICAgc3RhdHVz
ID0gVV9aRVJPX0VSUk9SOworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwog
ICAgIFN0cmluZ1ZpZXcgdGltZVpvbmVWaWV3KG1fdGltZVpvbmUpOwogICAgIG1fZGF0ZUZvcm1h
dCA9IHN0ZDo6dW5pcXVlX3B0cjxVRGF0ZUZvcm1hdCwgVURhdGVGb3JtYXREZWxldGVyPih1ZGF0
X29wZW4oVURBVF9QQVRURVJOLCBVREFUX1BBVFRFUk4sIGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9u
cy5kYXRhKCksIHRpbWVab25lVmlldy51cGNvbnZlcnRlZENoYXJhY3RlcnMoKSwgdGltZVpvbmVW
aWV3Lmxlbmd0aCgpLCBwYXR0ZXJuLnVwY29udmVydGVkQ2hhcmFjdGVycygpLCBwYXR0ZXJuLmxl
bmd0aCgpLCAmc3RhdHVzKSk7CiAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKSB7CkBAIC04MzYs
NiArOTM1LDI1IEBAIEFTQ0lJTGl0ZXJhbCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OnRpbWVab25lTmFt
ZVN0cmluZyhUaW1lWm9uZU5hbWUgdGltZVpvbmVOYW1lKQogICAgIHJldHVybiBBU0NJSUxpdGVy
YWw6Om51bGwoKTsKIH0KIAorQVNDSUlMaXRlcmFsIEludGxEYXRlVGltZUZvcm1hdDo6Zm9ybWF0
U3R5bGVTdHJpbmcoRGF0ZVRpbWVTdHlsZSBzdHlsZSkKK3sKKyAgICBzd2l0Y2ggKHN0eWxlKSB7
CisgICAgY2FzZSBEYXRlVGltZVN0eWxlOjpGdWxsOgorICAgICAgICByZXR1cm4gImZ1bGwiX3M7
CisgICAgY2FzZSBEYXRlVGltZVN0eWxlOjpMb25nOgorICAgICAgICByZXR1cm4gImxvbmciX3M7
CisgICAgY2FzZSBEYXRlVGltZVN0eWxlOjpNZWRpdW06CisgICAgICAgIHJldHVybiAibWVkaXVt
Il9zOworICAgIGNhc2UgRGF0ZVRpbWVTdHlsZTo6U2hvcnQ6CisgICAgICAgIHJldHVybiAic2hv
cnQiX3M7CisgICAgY2FzZSBEYXRlVGltZVN0eWxlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOworICAgIH0K
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxs
KCk7Cit9CisKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtaW50bC5kYXRldGltZWZv
cm1hdC5wcm90b3R5cGUucmVzb2x2ZWRvcHRpb25zCiBKU09iamVjdCogSW50bERhdGVUaW1lRm9y
bWF0OjpyZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
IHsKQEAgLTg3OSw2ICs5OTcsMTIgQEAgSlNPYmplY3QqIEludGxEYXRlVGltZUZvcm1hdDo6cmVz
b2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnMKICAgICBpZiAo
bV90aW1lWm9uZU5hbWUgIT0gVGltZVpvbmVOYW1lOjpOb25lKQogICAgICAgICBvcHRpb25zLT5w
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnRpbWVab25lTmFtZSwganNOb250cml2aWFs
U3RyaW5nKHZtLCB0aW1lWm9uZU5hbWVTdHJpbmcobV90aW1lWm9uZU5hbWUpKSk7CiAKKyAgICBp
ZiAobV9kYXRlU3R5bGUgIT0gRGF0ZVRpbWVTdHlsZTo6Tm9uZSkKKyAgICAgICAgb3B0aW9ucy0+
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5kYXRlU3R5bGUsIGpzTm9udHJpdmlhbFN0
cmluZyh2bSwgZm9ybWF0U3R5bGVTdHJpbmcobV9kYXRlU3R5bGUpKSk7CisKKyAgICBpZiAobV90
aW1lU3R5bGUgIT0gRGF0ZVRpbWVTdHlsZTo6Tm9uZSkKKyAgICAgICAgb3B0aW9ucy0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT50aW1lU3R5bGUsIGpzTm9udHJpdmlhbFN0cmluZyh2
bSwgZm9ybWF0U3R5bGVTdHJpbmcobV90aW1lU3R5bGUpKSk7CisKICAgICByZXR1cm4gb3B0aW9u
czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERh
dGVUaW1lRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRp
bWVGb3JtYXQuaAppbmRleCBjNWUwMzA0ZGYwMTNhMjU5MzczYmMyYzVjY2JiODQ4MTE2ZmI4NDli
Li4xYTQ3ZTVhNDZkYjgwNjhhNDg4MzAzNjZmMzZjNjc3YWM5NjhhZWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuaApAQCAtODEs
NiArODEsNyBAQCBjbGFzcyBJbnRsRGF0ZVRpbWVGb3JtYXQgZmluYWwgOiBwdWJsaWMgSlNOb25G
aW5hbE9iamVjdCB7CiAgICAgZW51bSBjbGFzcyBNaW51dGUgOiB1aW50OF90IHsgTm9uZSwgVHdv
RGlnaXQsIE51bWVyaWMgfTsKICAgICBlbnVtIGNsYXNzIFNlY29uZCA6IHVpbnQ4X3QgeyBOb25l
LCBUd29EaWdpdCwgTnVtZXJpYyB9OwogICAgIGVudW0gY2xhc3MgVGltZVpvbmVOYW1lIDogdWlu
dDhfdCB7IE5vbmUsIFNob3J0LCBMb25nIH07CisgICAgZW51bSBjbGFzcyBEYXRlVGltZVN0eWxl
IDogdWludDhfdCB7IE5vbmUsIEZ1bGwsIExvbmcsIE1lZGl1bSwgU2hvcnQgfTsKIAogICAgIHVz
aW5nIFVEYXRlRm9ybWF0RGVsZXRlciA9IElDVURlbGV0ZXI8dWRhdF9jbG9zZT47CiAKQEAgLTk0
LDYgKzk1LDcgQEAgY2xhc3MgSW50bERhdGVUaW1lRm9ybWF0IGZpbmFsIDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgewogICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgbWludXRlU3RyaW5nKE1pbnV0
ZSk7CiAgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzZWNvbmRTdHJpbmcoU2Vjb25kKTsKICAgICBz
dGF0aWMgQVNDSUlMaXRlcmFsIHRpbWVab25lTmFtZVN0cmluZyhUaW1lWm9uZU5hbWUpOworICAg
IHN0YXRpYyBBU0NJSUxpdGVyYWwgZm9ybWF0U3R5bGVTdHJpbmcoRGF0ZVRpbWVTdHlsZSk7CiAK
ICAgICBXcml0ZUJhcnJpZXI8SlNCb3VuZEZ1bmN0aW9uPiBtX2JvdW5kRm9ybWF0OwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxVRGF0ZUZvcm1hdCwgVURhdGVGb3JtYXREZWxldGVyPiBtX2RhdGVGb3Jt
YXQ7CkBAIC0xMTIsNiArMTE0LDggQEAgY2xhc3MgSW50bERhdGVUaW1lRm9ybWF0IGZpbmFsIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIE1pbnV0ZSBtX21pbnV0ZSB7IE1pbnV0ZTo6
Tm9uZSB9OwogICAgIFNlY29uZCBtX3NlY29uZCB7IFNlY29uZDo6Tm9uZSB9OwogICAgIFRpbWVa
b25lTmFtZSBtX3RpbWVab25lTmFtZSB7IFRpbWVab25lTmFtZTo6Tm9uZSB9OworICAgIERhdGVU
aW1lU3R5bGUgbV9kYXRlU3R5bGUgeyBEYXRlVGltZVN0eWxlOjpOb25lIH07CisgICAgRGF0ZVRp
bWVTdHlsZSBtX3RpbWVTdHlsZSB7IERhdGVUaW1lU3R5bGU6Ok5vbmUgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0No
YW5nZUxvZwppbmRleCAxYTJiZTIxZDU2MDcwODE0OGQ4ZTM4Nzg4MjE1NTJkMmI4ZjUzODNlLi40
YjI1MzM4NDg1MzYzYmQwN2Q1Mzg4MThkZjI2NmFhYWU5ZTZjZTFmIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDIwLTA4LTIyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0VDTUEtNDAyXSBJbnRsLkRhdGVUaW1lRm9ybWF0IGRhdGVTdHlsZS90aW1lU3R5bGUgbWlzc2lu
ZyBpbiBXZWJLaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTc3NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyIGFuZCBSb3NzIEtp
cnNsaW5nLgorCisgICAgICAgICogc3RyZXNzL2ludGwtZGF0ZS10aW1lLWZvcm1hdC1kYXRlLXRp
bWUtc3R5bGUtYmFzaWMuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAo
c2hvdWxkQmUuby5mb3JtYXQpOgorICAgICAgICAqIHN0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3Jt
YXQtZGF0ZS10aW1lLXN0eWxlLWhvdXItY3ljbGUuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxk
QmUpOgorICAgICAgICAoc2hvdWxkQmUuby5mb3JtYXQpOgorICAgICAgICAqIHN0cmVzcy9pbnRs
LWRhdGUtdGltZS1zdHlsZS1vcHRpb24tY29uc2lzdGVuY3kuanM6IEFkZGVkLgorICAgICAgICAo
c2hvdWxkVGhyb3cpOgorICAgICAgICAodmFsdWUub2YuT2JqZWN0LmVudHJpZXMpOgorICAgICAg
ICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6CisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMu
eWFtbDoKKwogMjAyMC0wOC0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtFQ01BLTQwMl0gSW1wbGVtZW50IHVuaWZpZWQgSW50bC5OdW1iZXJGb3JtYXQK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtZGF0ZS10aW1lLWZvcm1hdC1kYXRlLXRp
bWUtc3R5bGUtYmFzaWMuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQt
ZGF0ZS10aW1lLXN0eWxlLWJhc2ljLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkMDEzMGJlNWVmOWFlN2RhMjQ1
MzFmOTA2NTUyYTE2MWU4MWJlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9p
bnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10aW1lLXN0eWxlLWJhc2ljLmpzCkBAIC0wLDAgKzEs
MzAgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcg
KyBhY3R1YWwpOworfQorCitsZXQgbm93ID0gMTU5MjgzNjMxMjA4MTsKK3sKKyAgICBsZXQgbyA9
IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIgLCB7CisgICAgICAgIHRpbWVTdHlsZTogInNo
b3J0IiwKKyAgICAgICAgdGltZVpvbmU6ICJVVEMiLAorICAgIH0pOworICAgIHNob3VsZEJlKG8u
Zm9ybWF0KG5vdyksIGAyOjMxIFBNYCk7Cit9CisKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRsLkRh
dGVUaW1lRm9ybWF0KCJlbiIgLCB7CisgICAgICAgIGRhdGVTdHlsZTogInNob3J0IiwKKyAgICAg
ICAgdGltZVpvbmU6ICJVVEMiLAorICAgIH0pOworICAgIHNob3VsZEJlKG8uZm9ybWF0KG5vdyks
IGA2LzIyLzIwYCk7Cit9CisKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0
KCJlbiIgLCB7CisgICAgICAgIHRpbWVTdHlsZTogIm1lZGl1bSIsCisgICAgICAgIGRhdGVTdHls
ZTogInNob3J0IiwKKyAgICAgICAgdGltZVpvbmU6ICJVVEMiLAorICAgIH0pOworICAgIHNob3Vs
ZEJlKG8uZm9ybWF0KG5vdyksIGA2LzIyLzIwLCAyOjMxOjUyIFBNYCk7Cit9CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10aW1lLXN0eWxlLWhv
dXItY3ljbGUuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWRhdGUtdGltZS1mb3JtYXQtZGF0ZS10
aW1lLXN0eWxlLWhvdXItY3ljbGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJkMDY5ZDNjMGJjN2M1ODU1ZGI4
ZTk0ZjYyZDFlOGFkMzQ2OGRlMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2lu
dGwtZGF0ZS10aW1lLWZvcm1hdC1kYXRlLXRpbWUtc3R5bGUtaG91ci1jeWNsZS5qcwpAQCAtMCww
ICsxLDc4IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVl
OiAnICsgYWN0dWFsKTsKK30KKworbGV0IG5vdzEgPSAxNTkyODcwNDQwMDAwOworbGV0IG5vdzIg
PSAxNTkyODI3MjQwMDAwOworeworICAgIGxldCBvID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQo
ImVuIiAsIHsKKyAgICAgICAgdGltZVN0eWxlOiAic2hvcnQiLAorICAgICAgICB0aW1lWm9uZTog
IlVUQyIsCisgICAgICAgIGhvdXJDeWNsZTogImgyMyIsCisgICAgfSk7CisgICAgc2hvdWxkQmUo
by5mb3JtYXQobm93MSksIGAwOjAwIEFNYCk7Cit9CisKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRs
LkRhdGVUaW1lRm9ybWF0KCJlbiIgLCB7CisgICAgICAgIHRpbWVTdHlsZTogInNob3J0IiwKKyAg
ICAgICAgdGltZVpvbmU6ICJVVEMiLAorICAgICAgICBob3VyQ3ljbGU6ICJoMjQiLAorICAgIH0p
OworICAgIHNob3VsZEJlKG8uZm9ybWF0KG5vdzEpLCBgMjQ6MDAgQU1gKTsKK30KKworeworICAg
IGxldCBvID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoImVuIiAsIHsKKyAgICAgICAgdGltZVN0
eWxlOiAic2hvcnQiLAorICAgICAgICB0aW1lWm9uZTogIlVUQyIsCisgICAgICAgIGhvdXJDeWNs
ZTogImgxMSIsCisgICAgfSk7CisgICAgc2hvdWxkQmUoby5mb3JtYXQobm93MSksIGAwOjAwIEFN
YCk7Cit9CisKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIgLCB7
CisgICAgICAgIHRpbWVTdHlsZTogInNob3J0IiwKKyAgICAgICAgdGltZVpvbmU6ICJVVEMiLAor
ICAgICAgICBob3VyQ3ljbGU6ICJoMTIiLAorICAgIH0pOworICAgIHNob3VsZEJlKG8uZm9ybWF0
KG5vdzEpLCBgMTI6MDAgQU1gKTsKK30KKworeworICAgIGxldCBvID0gbmV3IEludGwuRGF0ZVRp
bWVGb3JtYXQoImVuIiAsIHsKKyAgICAgICAgdGltZVN0eWxlOiAic2hvcnQiLAorICAgICAgICB0
aW1lWm9uZTogIlVUQyIsCisgICAgICAgIGhvdXJDeWNsZTogImgyMyIsCisgICAgfSk7CisgICAg
c2hvdWxkQmUoby5mb3JtYXQobm93MiksIGAxMjowMCBQTWApOworfQorCit7CisgICAgbGV0IG8g
PSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgiZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJz
aG9ydCIsCisgICAgICAgIHRpbWVab25lOiAiVVRDIiwKKyAgICAgICAgaG91ckN5Y2xlOiAiaDI0
IiwKKyAgICB9KTsKKyAgICBzaG91bGRCZShvLmZvcm1hdChub3cyKSwgYDEyOjAwIFBNYCk7Cit9
CisKK3sKKyAgICBsZXQgbyA9IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIgLCB7CisgICAg
ICAgIHRpbWVTdHlsZTogInNob3J0IiwKKyAgICAgICAgdGltZVpvbmU6ICJVVEMiLAorICAgICAg
ICBob3VyQ3ljbGU6ICJoMTEiLAorICAgIH0pOworICAgIHNob3VsZEJlKG8uZm9ybWF0KG5vdzIp
LCBgMDowMCBQTWApOworfQorCit7CisgICAgbGV0IG8gPSBuZXcgSW50bC5EYXRlVGltZUZvcm1h
dCgiZW4iICwgeworICAgICAgICB0aW1lU3R5bGU6ICJzaG9ydCIsCisgICAgICAgIHRpbWVab25l
OiAiVVRDIiwKKyAgICAgICAgaG91ckN5Y2xlOiAiaDEyIiwKKyAgICB9KTsKKyAgICBzaG91bGRC
ZShvLmZvcm1hdChub3cyKSwgYDEyOjAwIFBNYCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9pbnRsLWRhdGUtdGltZS1zdHlsZS1vcHRpb24tY29uc2lzdGVuY3kuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9pbnRsLWRhdGUtdGltZS1zdHlsZS1vcHRpb24tY29uc2lzdGVuY3kuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTZlMzdlM2M0ODYzMTJhNWQyYjVmMzg1MzNiZWVlZTZlYjIyZjdkNAotLS0gL2Rldi9u
dWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtZGF0ZS10aW1lLXN0eWxlLW9wdGlvbi1jb25z
aXN0ZW5jeS5qcwpAQCAtMCwwICsxLDQ4IEBACitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBl
cnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJy
b3IgPSBudWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0K
KyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm5vdCB0aHJv
d24iKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOworfQorCitsZXQg
b3B0aW9ucyA9IHsKKyAgICAid2Vla2RheSI6ICJuYXJyb3ciLAorICAgICJlcmEiOiAibmFycm93
IiwKKyAgICAieWVhciI6ICIyLWRpZ2l0IiwKKyAgICAibW9udGgiOiAiMi1kaWdpdCIsCisgICAg
ImRheSI6ICIyLWRpZ2l0IiwKKyAgICAiaG91ciI6ICIyLWRpZ2l0IiwKKyAgICAibWludXRlIjog
IjItZGlnaXQiLAorICAgICJzZWNvbmQiOiAiMi1kaWdpdCIsCisgICAgInRpbWVab25lTmFtZSI6
ICJzaG9ydCIsCit9OworCitmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMo
b3B0aW9ucykpIHsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIG5ldyBJbnRsLkRh
dGVUaW1lRm9ybWF0KCJlbiIsIHsKKyAgICAgICAgICAgIGRhdGVTdHlsZTogImZ1bGwiLAorICAg
ICAgICAgICAgW2tleV06IHZhbHVlCisgICAgICAgIH0pOworICAgIH0sIGBUeXBlRXJyb3I6IGRh
dGVTdHlsZSBhbmQgdGltZVN0eWxlIG1heSBub3QgYmUgdXNlZCB3aXRoIG90aGVyIERhdGVUaW1l
Rm9ybWF0IG9wdGlvbnNgKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAgIG5ldyBJ
bnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHsKKyAgICAgICAgICAgIHRpbWVTdHlsZTogImZ1bGwi
LAorICAgICAgICAgICAgW2tleV06IHZhbHVlCisgICAgICAgIH0pOworICAgIH0sIGBUeXBlRXJy
b3I6IGRhdGVTdHlsZSBhbmQgdGltZVN0eWxlIG1heSBub3QgYmUgdXNlZCB3aXRoIG90aGVyIERh
dGVUaW1lRm9ybWF0IG9wdGlvbnNgKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiB7CisgICAgICAg
IG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCJlbiIsIHsKKyAgICAgICAgICAgIGRhdGVTdHlsZTog
ImZ1bGwiLAorICAgICAgICAgICAgdGltZVN0eWxlOiAiZnVsbCIsCisgICAgICAgICAgICBba2V5
XTogdmFsdWUKKyAgICAgICAgfSk7CisgICAgfSwgYFR5cGVFcnJvcjogZGF0ZVN0eWxlIGFuZCB0
aW1lU3R5bGUgbWF5IG5vdCBiZSB1c2VkIHdpdGggb3RoZXIgRGF0ZVRpbWVGb3JtYXQgb3B0aW9u
c2ApOworfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4IDY1NDVmNTgwNDNjNDkyOTY5YzdjMDU4MzBlMDY4
NzhlZDM0ODY5ZGQuLmE0MzY3MzMwOTZiNGI2MTYzYmZhMDY0M2YyNmVmMDZlZDIyYmVhNTcgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3Qy
NjIvY29uZmlnLnlhbWwKQEAgLTIzLDcgKzIzLDYgQEAgc2tpcDoKICAgICAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0NzUKICAgICAtIHJlZ2V4cC1tYXRjaC1p
bmRpY2VzCiAgICAgLSB0b3AtbGV2ZWwtYXdhaXQKLSAgICAtIEludGwuRGF0ZVRpbWVGb3JtYXQt
ZGF0ZXRpbWVzdHlsZQogICAgIC0gSW50bC5EYXRlVGltZUZvcm1hdC1kYXlQZXJpb2QKICAgICAt
IEludGwuRGF0ZVRpbWVGb3JtYXQtZm9ybWF0UmFuZ2UKICAgICAtIEludGwuRGF0ZVRpbWVGb3Jt
YXQtZnJhY3Rpb25hbFNlY29uZERpZ2l0cwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4
cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4
IGZlOGUzYjFlNDQ1MDNhZjc1NzJmNmIxYTA4NzdiYjdkY2YyNjVlMjAuLjM0MDQwMTMxZjMwYmVh
MDRkY2U2YjVmOWJjMDE5YmFmODQyNTUzYzEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9l
eHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwK
QEAgLTE1NjMsNiArMTU2Myw5IEBAIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3Rv
cnMvb2YvbmV3LWluc3RhbmNlLXVzaW5nLWN1c3RvbS1jdG9yLmpzOgogdGVzdC9pbnRsNDAyL0Nv
bGxhdG9yL21pc3NpbmctdW5pY29kZS1leHQtdmFsdWUtZGVmYXVsdHMtdG8tdHJ1ZS5qczoKICAg
ZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogXCJrbi10cnVlXCIgaXMgcmV0dXJuZWQgaW4gbG9jYWxl
LCBidXQgc2hvdWxkbid0IGJlLiBFeHBlY3RlZCBTYW1lVmFsdWUowqs3wrssIMKrLTHCuykgdG8g
YmUgdHJ1ZSIKICAgc3RyaWN0IG1vZGU6ICJUZXN0MjYyRXJyb3I6IFwia24tdHJ1ZVwiIGlzIHJl
dHVybmVkIGluIGxvY2FsZSwgYnV0IHNob3VsZG4ndCBiZS4gRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
N8K7LCDCqy0xwrspIHRvIGJlIHRydWUiCit0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvcHJv
dG90eXBlL2Zvcm1hdC90aW1lZGF0ZXN0eWxlLWVuLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBSZXN1bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxNDoxMjo0
NyBQTSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENvb3JkaW5hdGVk
IFVuaXZlcnNhbCBUaW1lwrspIHRvIGJlIHRydWUnCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBSZXN1bHQgZm9yIGZ1bGwgd2l0aCB7fSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxNDoxMjo0
NyBQTSBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZcK7LCDCqzE0OjEyOjQ3IENvb3JkaW5hdGVk
IFVuaXZlcnNhbCBUaW1lwrspIHRvIGJlIHRydWUnCiB0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3Jt
YXQvcHJvdG90eXBlL3Jlc29sdmVkT3B0aW9ucy9ob3VyQ3ljbGUtZGVmYXVsdC5qczoKICAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKraDI0wrssIMKraDIzwrsp
IHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1l
VmFsdWUowqtoMjTCuywgwqtoMjPCuykgdG8gYmUgdHJ1ZScK
</data>
<flag name="commit-queue"
          id="422418"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>