<?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>236996</bug_id>
          
          <creation_ts>2022-02-21 14:25:05 -0800</creation_ts>
          <short_desc>[Cocoa] Only clear ICU cache when time zone is changed</short_desc>
          <delta_ts>2022-04-07 14:01:34 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=238939</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=238958</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218365</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</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>1844386</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-21 14:25:05 -0800</bug_when>
    <thetext>Only clear ICU cache when time zone is changed.

Otherwise, VMEntryScope keeps invalidating the ICU cache and we keep going to the file system to figure out the current host time zone:
Sample Count, Samples %, Normalized CPU %, Symbol
2, 0.0%, 0.0%, JSC::DateCache::defaultTimeZone() (in JavaScriptCore)
2, 0.0%, 0.0%,     JSC::DateCache::timeZoneCacheSlow() (in JavaScriptCore)
2, 0.0%, 0.0%,         ucal_getHostTimeZone (in libicucore.A.dylib)
2, 0.0%, 0.0%,             icu::TimeZone::detectHostTimeZone() (in libicucore.A.dylib)
1, 0.0%, 0.0%,                 readlink (in libsystem_kernel.dylib)
1, 0.0%, 0.0%,                     unix_syscall64 (in kernel.development)
1, 0.0%, 0.0%,                         readlink (in kernel.development)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844388</commentid>
    <comment_count>1</comment_count>
      <attachid>452774</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-21 14:30:58 -0800</bug_when>
    <thetext>Created attachment 452774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844717</commentid>
    <comment_count>2</comment_count>
      <attachid>452873</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-22 08:18:39 -0800</bug_when>
    <thetext>Created attachment 452873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844939</commentid>
    <comment_count>3</comment_count>
      <attachid>452873</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-22 16:52:12 -0800</bug_when>
    <thetext>Comment on attachment 452873
Patch

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

&gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:358
&gt; +    static_cast&lt;DateCache*&gt;(observer)-&gt;reset();

I think this needs some care: in non-WebKit JavaScriptCore.framework, JSC VM can be moved from one thread to the other. So let&apos;s consider the case,

1. Initializing JSC VM on the main thread
2. It registers notification
3. Then moving this VM to a different thread
4. Using this VM in the different thread
5. Now notification comes to the main thread
6. We reset the cache from the main thread while the different thread is using VM, which can be in the middle of using this cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844940</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-22 16:53:52 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #3)
&gt; Comment on attachment 452873 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=452873&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:358
&gt; &gt; +    static_cast&lt;DateCache*&gt;(observer)-&gt;reset();
&gt; 
&gt; I think this needs some care: in non-WebKit JavaScriptCore.framework, JSC VM
&gt; can be moved from one thread to the other. So let&apos;s consider the case,
&gt; 
&gt; 1. Initializing JSC VM on the main thread
&gt; 2. It registers notification
&gt; 3. Then moving this VM to a different thread
&gt; 4. Using this VM in the different thread
&gt; 5. Now notification comes to the main thread
&gt; 6. We reset the cache from the main thread while the different thread is
&gt; using VM, which can be in the middle of using this cache.

Ouch, I didn&apos;t realize a VM would be moved to a different thread. If so, then it makes things more complicated indeed..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845289</commentid>
    <comment_count>5</comment_count>
      <attachid>453018</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-23 13:08:52 -0800</bug_when>
    <thetext>Created attachment 453018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845403</commentid>
    <comment_count>6</comment_count>
      <attachid>453018</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-23 16:15:42 -0800</bug_when>
    <thetext>Comment on attachment 453018
Patch

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

&gt; Source/JavaScriptCore/runtime/JSDateMath.h:135
&gt; +inline OpaqueICUTimeZone* DateCache::timeZoneCache()
&gt; +{
&gt; +    auto&amp; caches = ensureCaches();
&gt; +    if (!caches.timeZoneCache)
&gt; +        caches.timeZoneCacheSlow();
&gt; +    return caches.timeZoneCache.get();
&gt; +}
&gt; +
&gt; +inline auto DateCache::ensureCaches() -&gt; Caches&amp;
&gt; +{
&gt; +    if (!m_caches || !m_caches-&gt;isUpToDate())
&gt; +        m_caches.emplace();
&gt; +    return *m_caches;
&gt; +}

Let&apos;s reset DateCache only when entering VMEntryScope.
In the current implementation, DateCache can be reset and cleared anytime we use a cache.
This means that, when running a code,

let date1 = new Date();
let date2 = new Date();

in the above sequence, suddenly, date1 and date2 get different timezone, which is surprising.
So, instead, let&apos;s ensure the same timezone while running one VMEntryScope, and clear if necessary when entering next VMEntryScope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845406</commentid>
    <comment_count>7</comment_count>
      <attachid>453018</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-23 16:17:42 -0800</bug_when>
    <thetext>Comment on attachment 453018
Patch

Can do :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845454</commentid>
    <comment_count>8</comment_count>
      <attachid>453058</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-23 17:32:29 -0800</bug_when>
    <thetext>Created attachment 453058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845679</commentid>
    <comment_count>9</comment_count>
      <attachid>453058</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-24 11:33:40 -0800</bug_when>
    <thetext>Comment on attachment 453058
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845680</commentid>
    <comment_count>10</comment_count>
      <attachid>453058</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-24 11:34:04 -0800</bug_when>
    <thetext>Comment on attachment 453058
Patch

Thanks for reviewing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845682</commentid>
    <comment_count>11</comment_count>
      <attachid>453058</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-24 11:35:06 -0800</bug_when>
    <thetext>Comment on attachment 453058
Patch

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

&gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:370
&gt; +#if PLATFORM(COCOA)
&gt; +static void timeZoneChangeNotification(CFNotificationCenterRef, void*, CFStringRef, const void*, CFDictionaryRef)
&gt; +{
&gt; +    ASSERT(isMainThread());
&gt; +    ++lastTimeZoneID;
&gt; +}
&gt; +#endif
&gt; +
&gt;  // To confine icu::TimeZone destructor invocation in this file.
&gt; -DateCache::DateCache() = default;
&gt; +DateCache::DateCache()
&gt; +{
&gt; +#if PLATFORM(COCOA)
&gt; +    static std::once_flag onceKey;
&gt; +    std::call_once(onceKey, [&amp;] {
&gt; +        CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), nullptr, timeZoneChangeNotification, kCFTimeZoneSystemTimeZoneDidChangeNotification, nullptr, CFNotificationSuspensionBehaviorDeliverImmediately);
&gt; +    });

Will it always notified into the main thread even if we are calling this from non main thread? (in JavaScriptCore.framework use case, it is possible that VM&apos;s first launch is on the non main thread.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845684</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-24 11:36:50 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #11)
&gt; Comment on attachment 453058 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453058&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:370
&gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; +static void timeZoneChangeNotification(CFNotificationCenterRef, void*, CFStringRef, const void*, CFDictionaryRef)
&gt; &gt; +{
&gt; &gt; +    ASSERT(isMainThread());
&gt; &gt; +    ++lastTimeZoneID;
&gt; &gt; +}
&gt; &gt; +#endif
&gt; &gt; +
&gt; &gt;  // To confine icu::TimeZone destructor invocation in this file.
&gt; &gt; -DateCache::DateCache() = default;
&gt; &gt; +DateCache::DateCache()
&gt; &gt; +{
&gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; +    static std::once_flag onceKey;
&gt; &gt; +    std::call_once(onceKey, [&amp;] {
&gt; &gt; +        CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), nullptr, timeZoneChangeNotification, kCFTimeZoneSystemTimeZoneDidChangeNotification, nullptr, CFNotificationSuspensionBehaviorDeliverImmediately);
&gt; &gt; +    });
&gt; 
&gt; Will it always notified into the main thread even if we are calling this
&gt; from non main thread? (in JavaScriptCore.framework use case, it is possible
&gt; that VM&apos;s first launch is on the non main thread.)

Per my understanding of the documentation (https://developer.apple.com/documentation/corefoundation/1543316-cfnotificationcenteraddobserver?language=objc), yes, it would always get called on the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845685</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-24 11:37:41 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #12)
&gt; (In reply to Yusuke Suzuki from comment #11)
&gt; &gt; Comment on attachment 453058 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=453058&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:370
&gt; &gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; &gt; +static void timeZoneChangeNotification(CFNotificationCenterRef, void*, CFStringRef, const void*, CFDictionaryRef)
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    ASSERT(isMainThread());
&gt; &gt; &gt; +    ++lastTimeZoneID;
&gt; &gt; &gt; +}
&gt; &gt; &gt; +#endif
&gt; &gt; &gt; +
&gt; &gt; &gt;  // To confine icu::TimeZone destructor invocation in this file.
&gt; &gt; &gt; -DateCache::DateCache() = default;
&gt; &gt; &gt; +DateCache::DateCache()
&gt; &gt; &gt; +{
&gt; &gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; &gt; +    static std::once_flag onceKey;
&gt; &gt; &gt; +    std::call_once(onceKey, [&amp;] {
&gt; &gt; &gt; +        CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), nullptr, timeZoneChangeNotification, kCFTimeZoneSystemTimeZoneDidChangeNotification, nullptr, CFNotificationSuspensionBehaviorDeliverImmediately);
&gt; &gt; &gt; +    });
&gt; &gt; 
&gt; &gt; Will it always notified into the main thread even if we are calling this
&gt; &gt; from non main thread? (in JavaScriptCore.framework use case, it is possible
&gt; &gt; that VM&apos;s first launch is on the non main thread.)
&gt; 
&gt; Per my understanding of the documentation
&gt; (https://developer.apple.com/documentation/corefoundation/1543316-
&gt; cfnotificationcenteraddobserver?language=objc), yes, it would always get
&gt; called on the main thread.

That said, we could also drop the main thread assertion. In this latest patch iteration, it doesn&apos;t really matter what thread the callback is called on..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845687</commentid>
    <comment_count>14</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-24 11:39:25 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; (In reply to Chris Dumez from comment #12)
&gt; &gt; (In reply to Yusuke Suzuki from comment #11)
&gt; &gt; &gt; Comment on attachment 453058 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=453058&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/JavaScriptCore/runtime/JSDateMath.cpp:370
&gt; &gt; &gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; &gt; &gt; +static void timeZoneChangeNotification(CFNotificationCenterRef, void*, CFStringRef, const void*, CFDictionaryRef)
&gt; &gt; &gt; &gt; +{
&gt; &gt; &gt; &gt; +    ASSERT(isMainThread());
&gt; &gt; &gt; &gt; +    ++lastTimeZoneID;
&gt; &gt; &gt; &gt; +}
&gt; &gt; &gt; &gt; +#endif
&gt; &gt; &gt; &gt; +
&gt; &gt; &gt; &gt;  // To confine icu::TimeZone destructor invocation in this file.
&gt; &gt; &gt; &gt; -DateCache::DateCache() = default;
&gt; &gt; &gt; &gt; +DateCache::DateCache()
&gt; &gt; &gt; &gt; +{
&gt; &gt; &gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; &gt; &gt; +    static std::once_flag onceKey;
&gt; &gt; &gt; &gt; +    std::call_once(onceKey, [&amp;] {
&gt; &gt; &gt; &gt; +        CFNotificationCenterAddObserver(CFNotificationCenterGetLocalCenter(), nullptr, timeZoneChangeNotification, kCFTimeZoneSystemTimeZoneDidChangeNotification, nullptr, CFNotificationSuspensionBehaviorDeliverImmediately);
&gt; &gt; &gt; &gt; +    });
&gt; &gt; &gt; 
&gt; &gt; &gt; Will it always notified into the main thread even if we are calling this
&gt; &gt; &gt; from non main thread? (in JavaScriptCore.framework use case, it is possible
&gt; &gt; &gt; that VM&apos;s first launch is on the non main thread.)
&gt; &gt; 
&gt; &gt; Per my understanding of the documentation
&gt; &gt; (https://developer.apple.com/documentation/corefoundation/1543316-
&gt; &gt; cfnotificationcenteraddobserver?language=objc), yes, it would always get
&gt; &gt; called on the main thread.
&gt; 
&gt; That said, we could also drop the main thread assertion. In this latest
&gt; patch iteration, it doesn&apos;t really matter what thread the callback is called
&gt; on..

Perfect! Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845703</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-24 12:10:00 -0800</bug_when>
    <thetext>Committed r290449 (247751@main): &lt;https://commits.webkit.org/247751@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453058.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845704</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-24 12:11:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/89432384&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854418</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-23 14:49:53 -0700</bug_when>
    <thetext>*** Bug 218365 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452774</attachid>
            <date>2022-02-21 14:30:58 -0800</date>
            <delta_ts>2022-02-22 08:18:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236996-20220221143057.patch</filename>
            <type>text/plain</type>
            <size>5036</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MWE3OGZkNjRkMzEwZjllNTIyOWI2Y2IzYjIwNDgwYzExOTAyMDYyLi5iZjE3MzczNTM0ZTUyYWYx
NzRiMzdlYWFjMjNiODBmMzUxOGI0ZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMi0wMi0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gT25seSBjbGVhciBJQ1UgY2FjaGUgd2hlbiB0aW1lIHpvbmUgaXMg
Y2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rm9yIFZNcyBiZWxvbmdpbmcgdG8gdGhlIG1haW4gdGhyZWFkLCB3ZSBub3cgaW52YWxpZGF0ZSBK
U0MncyBEYXRlQ2FjaGUgd2hlbiB0aGUgaG9zdAorICAgICAgICB0aW1lIHpvbmUgYWN0dWFsbHkg
Y2hhbmdlcyAoYnkgbGlzdGVuaW5nIHRvIHRoZSBrQ0ZUaW1lWm9uZVN5c3RlbVRpbWVab25lRGlk
Q2hhbmdlTm90aWZpY2F0aW9uKS4KKyAgICAgICAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGFnZ3Jl
c3NpdmVseSBpbnZhbGlkYXRlIHRoaXMgY2FjaGUgaW5zaWRlIFZNRW50cnlTY29wZSgpLCB3aGlj
aCB3YXMKKyAgICAgICAgY2F1c2luZyB1cyB0byByZXBlYXRlZGx5IGdvIHRvIHRoZSBmaWxlIHN5
c3RlbSB0byBkZXRlcm1pbmUgdGhlIGhvc3QgdGltZSB6b25lLgorCisgICAgICAgIFRoaXMgaXMg
Y3VycmVudGx5IGxpbWl0ZWQgdG8gVk1zIGJlbG9uZ2luZyB0byB0aGUgbWFpbiB0aHJlYWQgdG8g
a2VlcCB0aGUgY29kZSBzaW1wbGUsIGdpdmVuCisgICAgICAgIHRoYXQgd2UgZ2V0IHRoZSBub3Rp
ZmljYXRpb24gb24gdGhlIG1haW4gdGhyZWFkLiBIb3dldmVyLCBpdCB3b3VsZCBiZSBnb29kIHRv
IGV4dGVuZCB0aGlzIHRvCisgICAgICAgIFZNcyBvbiBvdGhlciB0aHJlYWRzIGluIGEgZm9sbG93
LXVwLiBUaGF0IHNhaWQsIGl0IGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgdG8gYXZvaWQgZmls
ZXN5c3RlbQorICAgICAgICBhY2Nlc3Mgb24gdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAgICog
cnVudGltZS9KU0RhdGVNYXRoLmNwcDoKKyAgICAgICAgKEpTQzo6dGltZXpvbmVDaGFuZ2VkKToK
KyAgICAgICAgKEpTQzo6RGF0ZUNhY2hlOjpEYXRlQ2FjaGUpOgorICAgICAgICAoSlNDOjpEYXRl
Q2FjaGU6On5EYXRlQ2FjaGUpOgorICAgICAgICAoSlNDOjpEYXRlQ2FjaGU6OnN1cHBvcnRzVGlt
ZVpvbmVJbnZhbGlkYXRpb24gY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5o
OgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06OnN1cHBvcnRzVGlt
ZVpvbmVJbnZhbGlkYXRpb24gY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvVk1FbnRyeVNjb3Bl
LmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgorCiAyMDIy
LTAyLTE5ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MDE5NCBhbmQgcjI5MDIxMC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAKaW5kZXggNTIxOWY4ZjcyNDJiODZm
OTQwZTgyODIzNTg0ZTYxZmUyYmE0OWU2MS4uYzk0Mjg5OGM3YzNmM2U0M2E5NjY3ZjNkNmJiZTkz
N2Y5ZDNmODQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNE
YXRlTWF0aC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0
aC5jcHAKQEAgLTM1MSw5ICszNTEsMzkgQEAgU3RyaW5nIERhdGVDYWNoZTo6ZGVmYXVsdFRpbWVa
b25lKCkKICNlbmRpZgogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCitzdGF0aWMgdm9pZCB0aW1l
em9uZUNoYW5nZWQoQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0
cmluZ1JlZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKK3sKKyAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIHN0YXRpY19jYXN0PERhdGVDYWNoZSo+KG9ic2VydmVyKS0+cmVz
ZXQoKTsKK30KKyNlbmRpZgorCiAvLyBUbyBjb25maW5lIGljdTo6VGltZVpvbmUgZGVzdHJ1Y3Rv
ciBpbnZvY2F0aW9uIGluIHRoaXMgZmlsZS4KLURhdGVDYWNoZTo6RGF0ZUNhY2hlKCkgPSBkZWZh
dWx0OwotRGF0ZUNhY2hlOjp+RGF0ZUNhY2hlKCkgPSBkZWZhdWx0OworRGF0ZUNhY2hlOjpEYXRl
Q2FjaGUoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChpc01haW5UaHJlYWQoKSkK
KyAgICAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNl
bnRlckdldExvY2FsQ2VudGVyKCksICh2b2lkKil0aGlzLCB0aW1lem9uZUNoYW5nZWQsIGtDRlRp
bWVab25lU3lzdGVtVGltZVpvbmVEaWRDaGFuZ2VOb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90
aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yRGVsaXZlckltbWVkaWF0ZWx5KTsKKyNlbmRpZgor
fQorCitEYXRlQ2FjaGU6On5EYXRlQ2FjaGUoKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IGlmIChpc01haW5UaHJlYWQoKSkKKyAgICAgICAgQ0ZOb3RpZmljYXRpb25DZW50ZXJSZW1vdmVP
YnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldExvY2FsQ2VudGVyKCksICh2b2lkKil0aGlz
LCBrQ0ZUaW1lWm9uZVN5c3RlbVRpbWVab25lRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBudWxscHRy
KTsKKyNlbmRpZgorfQorCitib29sIERhdGVDYWNoZTo6c3VwcG9ydHNUaW1lWm9uZUludmFsaWRh
dGlvbigpIGNvbnN0Cit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcmV0dXJuIGlzTWFpblRo
cmVhZCgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KIAogUmVmPERhdGVJ
bnN0YW5jZURhdGE+IERhdGVDYWNoZTo6Y2FjaGVkRGF0ZUluc3RhbmNlRGF0YShkb3VibGUgbWls
bGlzZWNvbmRzRnJvbUVwb2NoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNEYXRlTWF0aC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNE
YXRlTWF0aC5oCmluZGV4IDJmZDY4Y2U0Njk3NWI4NThiYmRjZTQwZGU2NThhMmYyN2NlYTEwN2Qu
LjEyZmYyMTgxNTA3ZDZjNzE3NTgyNjk2NmU2MWVlYTE3MjQwNzY1NmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGlj
OgogICAgIH5EYXRlQ2FjaGUoKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXQo
KTsKKyAgICBib29sIHN1cHBvcnRzVGltZVpvbmVJbnZhbGlkYXRpb24oKSBjb25zdDsKIAogICAg
IFN0cmluZyBkZWZhdWx0VGltZVpvbmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgK
aW5kZXggMDNkZGRlYTg1ODQzZGEyMTk3ZjUyNTBiODk0ZmMyNjVlNDYyNTNkYS4uZTRmMDIwYzVh
NzI3ZjgxMjBjNWQ0MDVmNjU3NTVlMjkyZTY1NGEyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTS5oCkBAIC03MzQsNiArNzM0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHJl
c2V0RGF0ZUNhY2hlKCkgeyBkYXRlQ2FjaGUucmVzZXQoKTsgfQorICAgIGJvb2wgc3VwcG9ydHNU
aW1lWm9uZUludmFsaWRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIGRhdGVDYWNoZS5zdXBwb3J0c1Rp
bWVab25lSW52YWxpZGF0aW9uKCk7IH0KIAogICAgIFJlZ0V4cENhY2hlKiByZWdFeHBDYWNoZSgp
IHsgcmV0dXJuIG1fcmVnRXhwQ2FjaGU7IH0KICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAppbmRleCA1
ZDcwYjM1Njg2YTcxZGZlMWU4YmI3MDlkYzAxYWIxNGI4MGRjYzI1Li40YjczY2E3ZGQ1ZGJiYzJm
ODQ5MTYxZGUxNWI5NzkwYzcyNzA2NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNRW50cnlTY29wZS5jcHAKQEAgLTU4LDcgKzU4LDggQEAgVk1FbnRyeVNjb3BlOjpW
TUVudHJ5U2NvcGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAg
ICAvLyBvYnNlcnZlIHRpbWUgem9uZSBjaGFuZ2VzLgogICAgICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIGNsZWFyIGl0IG9ubHkgd2hlbiB3ZSBrbm93IHRoZSB0aW1lem9uZSBoYXMgYmVlbiBjaGFu
Z2VkLgogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE4MzY1Ci0gICAgICAgIHZtLnJlc2V0RGF0ZUNhY2hlKCk7CisgICAgICAgIGlmICghdm0uc3Vw
cG9ydHNUaW1lWm9uZUludmFsaWRhdGlvbigpKQorICAgICAgICAgICAgdm0ucmVzZXREYXRlQ2Fj
aGUoKTsKIAogICAgICAgICBpZiAodm0ud2F0Y2hkb2coKSkKICAgICAgICAgICAgIHZtLndhdGNo
ZG9nKCktPmVudGVyZWRWTSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452873</attachid>
            <date>2022-02-22 08:18:39 -0800</date>
            <delta_ts>2022-02-23 13:08:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236996-20220222081838.patch</filename>
            <type>text/plain</type>
            <size>5058</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
Mzc1YTUzMmM4ZmM0OGQ5YjhmMTM3MzFhYWI3MWMzYjYwMjI3OGFhLi5iZGZlMjQ3YTM5ODZjYjMz
MzJjYThlODQ4MDkwMDM1M2MyODZmNjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMi0wMi0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gT25seSBjbGVhciBJQ1UgY2FjaGUgd2hlbiB0aW1lIHpvbmUgaXMg
Y2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rm9yIFZNcyBiZWxvbmdpbmcgdG8gdGhlIG1haW4gdGhyZWFkLCB3ZSBub3cgaW52YWxpZGF0ZSBK
U0MncyBEYXRlQ2FjaGUgd2hlbiB0aGUgaG9zdAorICAgICAgICB0aW1lIHpvbmUgYWN0dWFsbHkg
Y2hhbmdlcyAoYnkgbGlzdGVuaW5nIHRvIHRoZSBrQ0ZUaW1lWm9uZVN5c3RlbVRpbWVab25lRGlk
Q2hhbmdlTm90aWZpY2F0aW9uKS4KKyAgICAgICAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGFnZ3Jl
c3NpdmVseSBpbnZhbGlkYXRlIHRoaXMgY2FjaGUgaW5zaWRlIFZNRW50cnlTY29wZSgpLCB3aGlj
aCB3YXMKKyAgICAgICAgY2F1c2luZyB1cyB0byByZXBlYXRlZGx5IGdvIHRvIHRoZSBmaWxlIHN5
c3RlbSB0byBkZXRlcm1pbmUgdGhlIGhvc3QgdGltZSB6b25lLgorCisgICAgICAgIFRoaXMgaXMg
Y3VycmVudGx5IGxpbWl0ZWQgdG8gVk1zIGJlbG9uZ2luZyB0byB0aGUgbWFpbiB0aHJlYWQgdG8g
a2VlcCB0aGUgY29kZSBzaW1wbGUsIGdpdmVuCisgICAgICAgIHRoYXQgd2UgZ2V0IHRoZSBub3Rp
ZmljYXRpb24gb24gdGhlIG1haW4gdGhyZWFkLiBIb3dldmVyLCBpdCB3b3VsZCBiZSBnb29kIHRv
IGV4dGVuZCB0aGlzIHRvCisgICAgICAgIFZNcyBvbiBvdGhlciB0aHJlYWRzIGluIGEgZm9sbG93
LXVwLiBUaGF0IHNhaWQsIGl0IGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgdG8gYXZvaWQgZmls
ZXN5c3RlbQorICAgICAgICBhY2Nlc3Mgb24gdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAgICog
cnVudGltZS9KU0RhdGVNYXRoLmNwcDoKKyAgICAgICAgKEpTQzo6dGltZXpvbmVDaGFuZ2VkKToK
KyAgICAgICAgKEpTQzo6RGF0ZUNhY2hlOjpEYXRlQ2FjaGUpOgorICAgICAgICAoSlNDOjpEYXRl
Q2FjaGU6On5EYXRlQ2FjaGUpOgorICAgICAgICAoSlNDOjpEYXRlQ2FjaGU6OnN1cHBvcnRzVGlt
ZVpvbmVJbnZhbGlkYXRpb24gY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5o
OgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06OnN1cHBvcnRzVGlt
ZVpvbmVJbnZhbGlkYXRpb24gY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvVk1FbnRyeVNjb3Bl
LmNwcDoKKyAgICAgICAgKEpTQzo6Vk1FbnRyeVNjb3BlOjpWTUVudHJ5U2NvcGUpOgorCiAyMDIy
LTAyLTIyICBBc3VtdSBUYWtpa2F3YSAgPGFzdW11QGlnYWxpYS5jb20+CiAKICAgICAgICAgSW5p
dGlhbCBzdXBwb3J0IGZvciBXYXNtL0VTTS1pbnRlZ3JhdGlvbiBpbiB0aGUgV2ViQ29yZSBtb2R1
bGUgbG9hZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rh
dGVNYXRoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3Bw
CmluZGV4IDUyMTlmOGY3MjQyYjg2Zjk0MGU4MjgyMzU4NGU2MWZlMmJhNDllNjEuLmM5NDI4OThj
N2MzZjNlNDNhOTY2N2YzZDZiYmU5MzdmOWQzZjg0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCkBAIC0zNTEsOSArMzUxLDM5IEBAIFN0cmluZyBE
YXRlQ2FjaGU6OmRlZmF1bHRUaW1lWm9uZSgpCiAjZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JNKENP
Q09BKQorc3RhdGljIHZvaWQgdGltZXpvbmVDaGFuZ2VkKENGTm90aWZpY2F0aW9uQ2VudGVyUmVm
LCB2b2lkKiBvYnNlcnZlciwgQ0ZTdHJpbmdSZWYsIGNvbnN0IHZvaWQqLCBDRkRpY3Rpb25hcnlS
ZWYpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWNfY2FzdDxEYXRl
Q2FjaGUqPihvYnNlcnZlciktPnJlc2V0KCk7Cit9CisjZW5kaWYKKwogLy8gVG8gY29uZmluZSBp
Y3U6OlRpbWVab25lIGRlc3RydWN0b3IgaW52b2NhdGlvbiBpbiB0aGlzIGZpbGUuCi1EYXRlQ2Fj
aGU6OkRhdGVDYWNoZSgpID0gZGVmYXVsdDsKLURhdGVDYWNoZTo6fkRhdGVDYWNoZSgpID0gZGVm
YXVsdDsKK0RhdGVDYWNoZTo6RGF0ZUNhY2hlKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2Jz
ZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCAodm9pZCopdGhpcywg
dGltZXpvbmVDaGFuZ2VkLCBrQ0ZUaW1lWm9uZVN5c3RlbVRpbWVab25lRGlkQ2hhbmdlTm90aWZp
Y2F0aW9uLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckRlbGl2ZXJJ
bW1lZGlhdGVseSk7CisjZW5kaWYKK30KKworRGF0ZUNhY2hlOjp+RGF0ZUNhY2hlKCkKK3sKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgIENGTm90
aWZpY2F0aW9uQ2VudGVyUmVtb3ZlT2JzZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2Nh
bENlbnRlcigpLCAodm9pZCopdGhpcywga0NGVGltZVpvbmVTeXN0ZW1UaW1lWm9uZURpZENoYW5n
ZU5vdGlmaWNhdGlvbiwgbnVsbHB0cik7CisjZW5kaWYKK30KKworYm9vbCBEYXRlQ2FjaGU6OnN1
cHBvcnRzVGltZVpvbmVJbnZhbGlkYXRpb24oKSBjb25zdAoreworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCit9CiAKIFJlZjxEYXRlSW5zdGFuY2VEYXRhPiBEYXRlQ2FjaGU6OmNhY2hlZERhdGVJ
bnN0YW5jZURhdGEoZG91YmxlIG1pbGxpc2Vjb25kc0Zyb21FcG9jaCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaAppbmRleCAyZmQ2OGNlNDY5NzViODU4YmJk
Y2U0MGRlNjU4YTJmMjdjZWExMDdkLi4xMmZmMjE4MTUwN2Q2YzcxNzU4MjY5NjZlNjFlZWExNzI0
MDc2NTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVN
YXRoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5oCkBA
IC03OCw2ICs3OCw3IEBAIHB1YmxpYzoKICAgICB+RGF0ZUNhY2hlKCk7CiAKICAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIHJlc2V0KCk7CisgICAgYm9vbCBzdXBwb3J0c1RpbWVab25lSW52YWxp
ZGF0aW9uKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgZGVmYXVsdFRpbWVab25lKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IDAzZGRkZWE4NTg0M2RhMjE5N2Y1MjUwYjg5NGZj
MjY1ZTQ2MjUzZGEuLmU0ZjAyMGM1YTcyN2Y4MTIwYzVkNDA1ZjY1NzU1ZTI5MmU2NTRhMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNzM0LDYgKzczNCw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgdm9pZCByZXNldERhdGVDYWNoZSgpIHsgZGF0ZUNhY2hlLnJlc2V0KCk7
IH0KKyAgICBib29sIHN1cHBvcnRzVGltZVpvbmVJbnZhbGlkYXRpb24oKSBjb25zdCB7IHJldHVy
biBkYXRlQ2FjaGUuc3VwcG9ydHNUaW1lWm9uZUludmFsaWRhdGlvbigpOyB9CiAKICAgICBSZWdF
eHBDYWNoZSogcmVnRXhwQ2FjaGUoKSB7IHJldHVybiBtX3JlZ0V4cENhY2hlOyB9CiAjaWYgRU5B
QkxFKFJFR0VYUF9UUkFDSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1FbnRyeVNjb3BlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
RW50cnlTY29wZS5jcHAKaW5kZXggNWQ3MGIzNTY4NmE3MWRmZTFlOGJiNzA5ZGMwMWFiMTRiODBk
Y2MyNS4uNGI3M2NhN2RkNWRiYmMyZjg0OTE2MWRlMTViOTc5MGM3MjcwNjQ4OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCkBAIC01OCw3ICs1
OCw4IEBAIFZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3BlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICAgICAgLy8gb2JzZXJ2ZSB0aW1lIHpvbmUgY2hhbmdlcy4KICAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjbGVhciBpdCBvbmx5IHdoZW4gd2Uga25vdyB0aGUg
dGltZXpvbmUgaGFzIGJlZW4gY2hhbmdlZC4KICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODM2NQotICAgICAgICB2bS5yZXNldERhdGVDYWNoZSgp
OworICAgICAgICBpZiAoIXZtLnN1cHBvcnRzVGltZVpvbmVJbnZhbGlkYXRpb24oKSkKKyAgICAg
ICAgICAgIHZtLnJlc2V0RGF0ZUNhY2hlKCk7CiAKICAgICAgICAgaWYgKHZtLndhdGNoZG9nKCkp
CiAgICAgICAgICAgICB2bS53YXRjaGRvZygpLT5lbnRlcmVkVk0oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453018</attachid>
            <date>2022-02-23 13:08:52 -0800</date>
            <delta_ts>2022-02-23 17:32:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236996-20220223130851.patch</filename>
            <type>text/plain</type>
            <size>9685</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
OGY4YmQyMDYzZjUzMTY1ZWYwNmMwMzYxOTEzZTkyZWMwOTU3NmY2Li44YWE0ODAyMmJjNWU0ZWQy
ZjY1YTk1ZTY2ZWE0ZDY4MjlhNzY3YmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMyBAQAorMjAyMi0wMi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gT25seSBjbGVhciBJQ1UgY2FjaGUgd2hlbiB0aW1lIHpvbmUgaXMg
Y2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugbm93IGxhemlseSBpbnZhbGlkYXRlIHRoZSBWTSdzIERhdGVDYWNoZSB3aGVuIHRoZSBob3N0
IHRpbWUgem9uZSBhY3R1YWxseSBjaGFuZ2VzIChieSBsaXN0ZW5pbmcKKyAgICAgICAgdG8gdGhl
IGtDRlRpbWVab25lU3lzdGVtVGltZVpvbmVEaWRDaGFuZ2VOb3RpZmljYXRpb24pLiBUaGlzIGF2
b2lkcyBoYXZpbmcgdG8gYWdncmVzc2l2ZWx5CisgICAgICAgIGludmFsaWRhdGUgdGhpcyBjYWNo
ZSBpbnNpZGUgVk1FbnRyeVNjb3BlKCksIHdoaWNoIHdhcyBjYXVzaW5nIHVzIHRvIHJlcGVhdGVk
bHkgZ28gdG8gdGhlIGZpbGUKKyAgICAgICAgc3lzdGVtIHRvIGRldGVybWluZSB0aGUgaG9zdCB0
aW1lIHpvbmUuCisKKyAgICAgICAgKiBydW50aW1lL0pTRGF0ZU1hdGguY3BwOgorICAgICAgICAo
SlNDOjpEYXRlQ2FjaGU6OmxvY2FsVGltZU9mZnNldCk6CisgICAgICAgIChKU0M6OkRhdGVDYWNo
ZTo6cGFyc2VEYXRlKToKKyAgICAgICAgKEpTQzo6dGltZVpvbmVDaGFuZ2VOb3RpZmljYXRpb24p
OgorICAgICAgICAoSlNDOjpEYXRlQ2FjaGU6OkRhdGVDYWNoZSk6CisgICAgICAgIChKU0M6OkRh
dGVDYWNoZTo6Y2FjaGVkRGF0ZUluc3RhbmNlRGF0YSk6CisgICAgICAgIChKU0M6OkRhdGVDYWNo
ZTo6Q2FjaGVzOjp0aW1lWm9uZUNhY2hlU2xvdyk6CisgICAgICAgIChKU0M6OkRhdGVDYWNoZTo6
cmVzZXQpOgorICAgICAgICAoSlNDOjpEYXRlQ2FjaGU6OnRpbWVab25lQ2FjaGVTbG93KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRGF0ZU1hdGguaDoKKyAgICAgICAgKEpTQzo6RGF0
ZUNhY2hlOjpDYWNoZXM6OkNhY2hlcyk6CisgICAgICAgIChKU0M6OkRhdGVDYWNoZTo6Q2FjaGVz
Ojppc1VwVG9EYXRlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6RGF0ZUNhY2hlOjp0aW1lWm9uZUNh
Y2hlKToKKyAgICAgICAgKEpTQzo6RGF0ZUNhY2hlOjplbnN1cmVDYWNoZXMpOgorICAgICAgICAo
SlNDOjpEYXRlQ2FjaGU6OnRpbWVab25lQ2hhbmdlZCk6CisgICAgICAgICogcnVudGltZS9WTUVu
dHJ5U2NvcGUuY3BwOgorICAgICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZSk6
CisKIDIwMjItMDItMjMgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNv
bT4KIAogICAgICAgICBFbnN1cmUgZ2VuZXJhdGVkIGlubGluZSBhc3NlbWJsZXIgdGhhdCBzZXR1
cHMgc2VnbWVudHMgcmV0dXJucyB0byBwcmV2aW91cyBzdGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcAppbmRleCA1MjE5ZjhmNzI0MmI4NmY5NDBlODI4
MjM1ODRlNjFmZTJiYTQ5ZTYxLi5iZTE1MjkwNzNmOGU4ZDI3MDE3NmRiNTBmNjU2YWFlZjgyZjc1
NjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRo
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmNwcApA
QCAtOTcsNiArOTcsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RkOjphdG9taWM8dWludDY0
X3Q+IERhdGVDYWNoZTo6bGFzdFRpbWVab25lSUQ7CiAKICNpZiBIQVZFKElDVV9DX1RJTUVaT05F
X0FQSSkKIGNsYXNzIE9wYXF1ZUlDVVRpbWVab25lIHsKQEAgLTE3Miw3ICsxNzMsOCBAQCBMb2Nh
bFRpbWVPZmZzZXQgRGF0ZUNhY2hlOjpjYWxjdWxhdGVMb2NhbFRpbWVPZmZzZXQoZG91YmxlIG1p
bGxpc2Vjb25kc0Zyb21FcG9jaAogCiBMb2NhbFRpbWVPZmZzZXQgRGF0ZUNhY2hlOjpsb2NhbFRp
bWVPZmZzZXQoZG91YmxlIG1pbGxpc2Vjb25kc0Zyb21FcG9jaCwgV1RGOjpUaW1lVHlwZSBpbnB1
dFRpbWVUeXBlKQogewotICAgIExvY2FsVGltZU9mZnNldENhY2hlJiBjYWNoZSA9IGlucHV0VGlt
ZVR5cGUgPT0gV1RGOjpMb2NhbFRpbWUgPyBtX2xvY2FsVGltZU9mZnNldENhY2hlIDogbV91dGNU
aW1lT2Zmc2V0Q2FjaGU7CisgICAgYXV0byYgY2FjaGVzID0gZW5zdXJlQ2FjaGVzKCk7CisgICAg
TG9jYWxUaW1lT2Zmc2V0Q2FjaGUmIGNhY2hlID0gaW5wdXRUaW1lVHlwZSA9PSBXVEY6OkxvY2Fs
VGltZSA/IGNhY2hlcy5sb2NhbFRpbWVPZmZzZXRDYWNoZSA6IGNhY2hlcy51dGNUaW1lT2Zmc2V0
Q2FjaGU7CiAKICAgICBkb3VibGUgc3RhcnQgPSBjYWNoZS5zdGFydDsKICAgICBkb3VibGUgZW5k
ID0gY2FjaGUuZW5kOwpAQCAtMjk1LDggKzI5Nyw5IEBAIGRvdWJsZSBEYXRlQ2FjaGU6OnBhcnNl
RGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIGNvbnN0IFN0cmluZyYK
IHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAo
ZGF0ZSA9PSBtX2NhY2hlZERhdGVTdHJpbmcpCi0gICAgICAgIHJldHVybiBtX2NhY2hlZERhdGVT
dHJpbmdWYWx1ZTsKKyAgICBhdXRvJiBjYWNoZXMgPSBlbnN1cmVDYWNoZXMoKTsKKyAgICBpZiAo
ZGF0ZSA9PSBjYWNoZXMuY2FjaGVkRGF0ZVN0cmluZykKKyAgICAgICAgcmV0dXJuIGNhY2hlcy5j
YWNoZWREYXRlU3RyaW5nVmFsdWU7CiAgICAgYXV0byBleHBlY3RlZFN0cmluZyA9IGRhdGUudHJ5
R2V0VXRmOCgpOwogICAgIGlmICghZXhwZWN0ZWRTdHJpbmcpIHsKICAgICAgICAgaWYgKGV4cGVj
dGVkU3RyaW5nLmVycm9yKCkgPT0gVVRGOENvbnZlcnNpb25FcnJvcjo6T3V0T2ZNZW1vcnkpCkBA
IC0zMjEsOCArMzI0LDggQEAgZG91YmxlIERhdGVDYWNoZTo6cGFyc2VEYXRlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgY29uc3QgU3RyaW5nJgogCiAgICAgYXV0byBkYXRl
VXRmOCA9IGV4cGVjdGVkU3RyaW5nLnZhbHVlKCk7CiAgICAgZG91YmxlIHZhbHVlID0gcGFyc2VE
YXRlSW1wbChkYXRlVXRmOC5kYXRhKCkpOwotICAgIG1fY2FjaGVkRGF0ZVN0cmluZyA9IGRhdGU7
Ci0gICAgbV9jYWNoZWREYXRlU3RyaW5nVmFsdWUgPSB2YWx1ZTsKKyAgICBjYWNoZXMuY2FjaGVk
RGF0ZVN0cmluZyA9IGRhdGU7CisgICAgY2FjaGVzLmNhY2hlZERhdGVTdHJpbmdWYWx1ZSA9IHZh
bHVlOwogICAgIHJldHVybiB2YWx1ZTsKIH0KIApAQCAtMzUxLDE4ICszNTQsMzUgQEAgU3RyaW5n
IERhdGVDYWNoZTo6ZGVmYXVsdFRpbWVab25lKCkKICNlbmRpZgogfQogCisjaWYgUExBVEZPUk0o
Q09DT0EpCitzdGF0aWMgdm9pZCB0aW1lWm9uZUNoYW5nZU5vdGlmaWNhdGlvbihDRk5vdGlmaWNh
dGlvbkNlbnRlclJlZiwgdm9pZCosIENGU3RyaW5nUmVmLCBjb25zdCB2b2lkKiwgQ0ZEaWN0aW9u
YXJ5UmVmKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgRGF0ZUNhY2hlOjp0
aW1lWm9uZUNoYW5nZWQoKTsKK30KKyNlbmRpZgorCiAvLyBUbyBjb25maW5lIGljdTo6VGltZVpv
bmUgZGVzdHJ1Y3RvciBpbnZvY2F0aW9uIGluIHRoaXMgZmlsZS4KLURhdGVDYWNoZTo6RGF0ZUNh
Y2hlKCkgPSBkZWZhdWx0OworRGF0ZUNhY2hlOjpEYXRlQ2FjaGUoKQoreworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlS2V5OworICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VLZXksIFsmXSB7CisgICAgICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2Jz
ZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXRMb2NhbENlbnRlcigpLCBudWxscHRyLCB0aW1l
Wm9uZUNoYW5nZU5vdGlmaWNhdGlvbiwga0NGVGltZVpvbmVTeXN0ZW1UaW1lWm9uZURpZENoYW5n
ZU5vdGlmaWNhdGlvbiwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JE
ZWxpdmVySW1tZWRpYXRlbHkpOworICAgIH0pOworI2VuZGlmCit9CisKIERhdGVDYWNoZTo6fkRh
dGVDYWNoZSgpID0gZGVmYXVsdDsKIAogUmVmPERhdGVJbnN0YW5jZURhdGE+IERhdGVDYWNoZTo6
Y2FjaGVkRGF0ZUluc3RhbmNlRGF0YShkb3VibGUgbWlsbGlzZWNvbmRzRnJvbUVwb2NoKQogewot
ICAgIHJldHVybiAqbV9kYXRlSW5zdGFuY2VDYWNoZS5hZGQobWlsbGlzZWNvbmRzRnJvbUVwb2No
KTsKKyAgICByZXR1cm4gKmVuc3VyZUNhY2hlcygpLmRhdGVJbnN0YW5jZUNhY2hlLmFkZChtaWxs
aXNlY29uZHNGcm9tRXBvY2gpOwogfQogCi12b2lkIERhdGVDYWNoZTo6dGltZVpvbmVDYWNoZVNs
b3coKQordm9pZCBEYXRlQ2FjaGU6OkNhY2hlczo6dGltZVpvbmVDYWNoZVNsb3coKQogewotICAg
IEFTU0VSVCghbV90aW1lWm9uZUNhY2hlKTsKKyAgICBBU1NFUlQoIXRpbWVab25lQ2FjaGUpOwog
I2lmIEhBVkUoSUNVX0NfVElNRVpPTkVfQVBJKQogICAgIGF1dG8qIGNhY2hlID0gbmV3IE9wYXF1
ZUlDVVRpbWVab25lOwogCkBAIC0zODMsMjEgKzQwMywxNiBAQCB2b2lkIERhdGVDYWNoZTo6dGlt
ZVpvbmVDYWNoZVNsb3coKQogICAgIGNhY2hlLT5tX2NhbGVuZGFyID0gc3RkOjp1bmlxdWVfcHRy
PFVDYWxlbmRhciwgSUNVRGVsZXRlcjx1Y2FsX2Nsb3NlPj4odWNhbF9vcGVuKHRpbWVab25lSUQu
ZGF0YSgpLCB0aW1lWm9uZUlELnNpemUoKSwgIiIsIFVDQUxfREVGQVVMVCwgJnN0YXR1cykpOwog
ICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCBVX1NVQ0NFU1Moc3RhdHVzKSk7CiAgICAgdWNhbF9z
ZXRHcmVnb3JpYW5DaGFuZ2UoY2FjaGUtPm1fY2FsZW5kYXIuZ2V0KCksIG1pbkVDTUFTY3JpcHRU
aW1lLCAmc3RhdHVzKTsgLy8gSWdub3JlICJ1bnN1cHBvcnRlZCIgZXJyb3IuCi0gICAgbV90aW1l
Wm9uZUNhY2hlID0gc3RkOjp1bmlxdWVfcHRyPE9wYXF1ZUlDVVRpbWVab25lLCBPcGFxdWVJQ1VU
aW1lWm9uZURlbGV0ZXI+KGNhY2hlKTsKKyAgICB0aW1lWm9uZUNhY2hlID0gc3RkOjp1bmlxdWVf
cHRyPE9wYXF1ZUlDVVRpbWVab25lLCBPcGFxdWVJQ1VUaW1lWm9uZURlbGV0ZXI+KGNhY2hlKTsK
ICNlbHNlCiAgICAgLy8gRG8gbm90IHVzZSBpY3U6OlRpbWVab25lOjpjcmVhdGVEZWZhdWx0LiBJ
Q1UgaW50ZXJuYWxseSBoYXMgYSBjYWNoZSBmb3IgdGltZXpvbmUgYW5kIGNyZWF0ZURlZmF1bHQg
cmV0dXJucyB0aGlzIGNhY2hlZCB2YWx1ZS4KLSAgICBtX3RpbWVab25lQ2FjaGUgPSBzdGQ6OnVu
aXF1ZV9wdHI8T3BhcXVlSUNVVGltZVpvbmUsIE9wYXF1ZUlDVVRpbWVab25lRGVsZXRlcj4oYml0
d2lzZV9jYXN0PE9wYXF1ZUlDVVRpbWVab25lKj4oaWN1OjpUaW1lWm9uZTo6ZGV0ZWN0SG9zdFRp
bWVab25lKCkpKTsKKyAgICB0aW1lWm9uZUNhY2hlID0gc3RkOjp1bmlxdWVfcHRyPE9wYXF1ZUlD
VVRpbWVab25lLCBPcGFxdWVJQ1VUaW1lWm9uZURlbGV0ZXI+KGJpdHdpc2VfY2FzdDxPcGFxdWVJ
Q1VUaW1lWm9uZSo+KGljdTo6VGltZVpvbmU6OmRldGVjdEhvc3RUaW1lWm9uZSgpKSk7CiAjZW5k
aWYKIH0KIAogdm9pZCBEYXRlQ2FjaGU6OnJlc2V0KCkKIHsKLSAgICBtX3RpbWVab25lQ2FjaGUu
cmVzZXQoKTsKLSAgICBtX3V0Y1RpbWVPZmZzZXRDYWNoZSA9IExvY2FsVGltZU9mZnNldENhY2hl
KCk7Ci0gICAgbV9sb2NhbFRpbWVPZmZzZXRDYWNoZSA9IExvY2FsVGltZU9mZnNldENhY2hlKCk7
Ci0gICAgbV9jYWNoZWREYXRlU3RyaW5nID0gU3RyaW5nKCk7Ci0gICAgbV9jYWNoZWREYXRlU3Ry
aW5nVmFsdWUgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwotICAg
IG1fZGF0ZUluc3RhbmNlQ2FjaGUucmVzZXQoKTsKKyAgICBtX2NhY2hlcyA9IHN0ZDo6bnVsbG9w
dDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0RhdGVNYXRoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0RhdGVNYXRoLmgKaW5kZXggMmZkNjhjZTQ2OTc1Yjg1OGJiZGNlNDBkZTY1OGEyZjI3Y2Vh
MTA3ZC4uODVmZTg2NDdjNDQwNzYzZDZhZGU5Njk1MTYyNjEwNDYzYzBjOGYzZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaApAQCAtODcsMjYgKzg3LDU4IEBA
IHB1YmxpYzoKICAgICBkb3VibGUgZ3JlZ29yaWFuRGF0ZVRpbWVUb01TKGNvbnN0IEdyZWdvcmlh
bkRhdGVUaW1lJiwgZG91YmxlIG1pbGxpc2Vjb25kcywgV1RGOjpUaW1lVHlwZSBpbnB1dFRpbWVU
eXBlKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBkb3VibGUgcGFyc2VEYXRlKEpTR2xvYmFsT2Jq
ZWN0KiwgVk0mLCBjb25zdCBXVEY6OlN0cmluZyYpOwogCisgICAgc3RhdGljIHZvaWQgdGltZVpv
bmVDaGFuZ2VkKCk7CisKIHByaXZhdGU6Ci0gICAgdm9pZCB0aW1lWm9uZUNhY2hlU2xvdygpOwog
ICAgIExvY2FsVGltZU9mZnNldCBsb2NhbFRpbWVPZmZzZXQoZG91YmxlIG1pbGxpc2Vjb25kc0Zy
b21FcG9jaCwgV1RGOjpUaW1lVHlwZSBpbnB1dFRpbWVUeXBlID0gV1RGOjpVVENUaW1lKTsKICAg
ICBMb2NhbFRpbWVPZmZzZXQgY2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KGRvdWJsZSBtaWxsaXNl
Y29uZHNGcm9tRXBvY2gsIFdURjo6VGltZVR5cGUgaW5wdXRUaW1lVHlwZSk7CiAKLSAgICBPcGFx
dWVJQ1VUaW1lWm9uZSogdGltZVpvbmVDYWNoZSgpCi0gICAgewotICAgICAgICBpZiAoIW1fdGlt
ZVpvbmVDYWNoZSkKLSAgICAgICAgICAgIHRpbWVab25lQ2FjaGVTbG93KCk7Ci0gICAgICAgIHJl
dHVybiBtX3RpbWVab25lQ2FjaGUuZ2V0KCk7Ci0gICAgfQotCi0gICAgc3RkOjp1bmlxdWVfcHRy
PE9wYXF1ZUlDVVRpbWVab25lLCBPcGFxdWVJQ1VUaW1lWm9uZURlbGV0ZXI+IG1fdGltZVpvbmVD
YWNoZTsKLSAgICBMb2NhbFRpbWVPZmZzZXRDYWNoZSBtX3V0Y1RpbWVPZmZzZXRDYWNoZTsKLSAg
ICBMb2NhbFRpbWVPZmZzZXRDYWNoZSBtX2xvY2FsVGltZU9mZnNldENhY2hlOwotICAgIFN0cmlu
ZyBtX2NhY2hlZERhdGVTdHJpbmc7Ci0gICAgZG91YmxlIG1fY2FjaGVkRGF0ZVN0cmluZ1ZhbHVl
OwotICAgIERhdGVJbnN0YW5jZUNhY2hlIG1fZGF0ZUluc3RhbmNlQ2FjaGU7CisgICAgT3BhcXVl
SUNVVGltZVpvbmUqIHRpbWVab25lQ2FjaGUoKTsKKworICAgIHN0YXRpYyBzdGQ6OmF0b21pYzx1
aW50NjRfdD4gbGFzdFRpbWVab25lSUQ7CisgICAgc3RydWN0IENhY2hlcyB7CisgICAgICAgIENh
Y2hlcygpCisgICAgICAgICAgICA6IG1fdGltZXpvbmVJRChsYXN0VGltZVpvbmVJRCkKKyAgICAg
ICAgeyB9CisKKyAgICAgICAgYm9vbCBpc1VwVG9EYXRlKCkgY29uc3QgeyByZXR1cm4gbV90aW1l
em9uZUlEID09IGxhc3RUaW1lWm9uZUlEOyB9CisgICAgICAgIHZvaWQgdGltZVpvbmVDYWNoZVNs
b3coKTsKKworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8T3BhcXVlSUNVVGltZVpvbmUsIE9wYXF1
ZUlDVVRpbWVab25lRGVsZXRlcj4gdGltZVpvbmVDYWNoZTsKKyAgICAgICAgTG9jYWxUaW1lT2Zm
c2V0Q2FjaGUgdXRjVGltZU9mZnNldENhY2hlOworICAgICAgICBMb2NhbFRpbWVPZmZzZXRDYWNo
ZSBsb2NhbFRpbWVPZmZzZXRDYWNoZTsKKyAgICAgICAgU3RyaW5nIGNhY2hlZERhdGVTdHJpbmc7
CisgICAgICAgIGRvdWJsZSBjYWNoZWREYXRlU3RyaW5nVmFsdWU7CisgICAgICAgIERhdGVJbnN0
YW5jZUNhY2hlIGRhdGVJbnN0YW5jZUNhY2hlOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29u
c3QgdWludDY0X3QgbV90aW1lem9uZUlEIHsgbGFzdFRpbWVab25lSUQgfTsKKyAgICB9OworICAg
IENhY2hlcyYgZW5zdXJlQ2FjaGVzKCk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPENhY2hlcz4gbV9j
YWNoZXM7CiB9OwogCitpbmxpbmUgT3BhcXVlSUNVVGltZVpvbmUqIERhdGVDYWNoZTo6dGltZVpv
bmVDYWNoZSgpCit7CisgICAgYXV0byYgY2FjaGVzID0gZW5zdXJlQ2FjaGVzKCk7CisgICAgaWYg
KCFjYWNoZXMudGltZVpvbmVDYWNoZSkKKyAgICAgICAgY2FjaGVzLnRpbWVab25lQ2FjaGVTbG93
KCk7CisgICAgcmV0dXJuIGNhY2hlcy50aW1lWm9uZUNhY2hlLmdldCgpOworfQorCitpbmxpbmUg
YXV0byBEYXRlQ2FjaGU6OmVuc3VyZUNhY2hlcygpIC0+IENhY2hlcyYKK3sKKyAgICBpZiAoIW1f
Y2FjaGVzIHx8ICFtX2NhY2hlcy0+aXNVcFRvRGF0ZSgpKQorICAgICAgICBtX2NhY2hlcy5lbXBs
YWNlKCk7CisgICAgcmV0dXJuICptX2NhY2hlczsKK30KKworaW5saW5lIHZvaWQgRGF0ZUNhY2hl
Ojp0aW1lWm9uZUNoYW5nZWQoKQoreworICAgICsrbGFzdFRpbWVab25lSUQ7Cit9CisKIEFMV0FZ
U19JTkxJTkUgYm9vbCBpc1VUQ0VxdWl2YWxlbnQoU3RyaW5nVmlldyB0aW1lWm9uZSkKIHsKICAg
ICByZXR1cm4gdGltZVpvbmUgPT0gIkV0Yy9VVEMiX3MgfHwgdGltZVpvbmUgPT0gIkV0Yy9HTVQi
X3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2Nv
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcApp
bmRleCA1ZDcwYjM1Njg2YTcxZGZlMWU4YmI3MDlkYzAxYWIxNGI4MGRjYzI1Li44ZmExZmNkZWIx
MzU2YzNmODUyNzdiNWQ1YjkyN2VmZGU0MTk0ZTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKQEAgLTU0LDExICs1NCwxMyBAQCBWTUVudHJ5
U2NvcGU6OlZNRW50cnlTY29wZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAKICAgICAgICAgdm0uZmlyZVByaW1pdGl2ZUdpZ2FjYWdlRW5hYmxlZElmTmVjZXNzYXJ5KCk7
CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIC8vIFJlc2V0IHRoZSBkYXRlIGNhY2hl
IGJldHdlZW4gSlMgaW52b2NhdGlvbnMgdG8gZm9yY2UgdGhlIFZNIHRvCiAgICAgICAgIC8vIG9i
c2VydmUgdGltZSB6b25lIGNoYW5nZXMuCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2xl
YXIgaXQgb25seSB3aGVuIHdlIGtub3cgdGhlIHRpbWV6b25lIGhhcyBiZWVuIGNoYW5nZWQuCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgzNjUK
ICAgICAgICAgdm0ucmVzZXREYXRlQ2FjaGUoKTsKKyNlbmRpZgogCiAgICAgICAgIGlmICh2bS53
YXRjaGRvZygpKQogICAgICAgICAgICAgdm0ud2F0Y2hkb2coKS0+ZW50ZXJlZFZNKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453058</attachid>
            <date>2022-02-23 17:32:29 -0800</date>
            <delta_ts>2022-02-24 12:10:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236996-20220223173228.patch</filename>
            <type>text/plain</type>
            <size>6036</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
OGY4YmQyMDYzZjUzMTY1ZWYwNmMwMzYxOTEzZTkyZWMwOTU3NmY2Li5kYzZhYzgyNzZiNDkwODQ0
MDRlZTc3ODdiMGMxY2NjZTY0NDY0ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMi0wMi0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gT25seSBjbGVhciBJQ1UgY2FjaGUgd2hlbiB0aW1lIHpvbmUgaXMg
Y2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM2OTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2UgdXNlZCB0byB1bmNvbmRpdGlvbmFsbHkgaW52YWxpZGF0ZSB0aGUgVk0ncyBEYXRlQ2FjaGUg
aW4gVk1FbnRyeVNjb3BlIGluIG9yZGVyIHRvCisgICAgICAgIG1ha2Ugc3VyZSB3ZSBhbHdheXMg
dXNlZCB0aGUgbGF0ZXN0IHRpbWUgem9uZSBmcm9tIHRoZSBob3N0IG1hY2hpbmUgKGluIGNhc2Ug
aXQgY2hhbmdlZCkuCisgICAgICAgIFRoaXMgb3Zlcmx5IGFnZ3Jlc3NpdmUgaW52YWxpZGF0aW9u
IHdhcyBjYXVzaW5nIHVzIHRvIHJlcGVhdGVkbHkgZ28gdG8gdGhlIGRpc2sgaW4gb3JkZXIKKyAg
ICAgICAgdG8gZGV0ZXJtaW5lIHRoZSBob3N0IHRpbWUgem9uZS4gT24gQ29jb2EgcG9ydHMsIHdl
IG5vdyBsaXN0ZW4gdG8gdGhlCisgICAgICAgIGtDRlRpbWVab25lU3lzdGVtVGltZVpvbmVEaWRD
aGFuZ2VOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uIGFuZCBvbmx5IGludmFsaWRhdGUgdGhlCisg
ICAgICAgIFZNJ3MgRGF0ZUNhY2hlIGluIFZNRW50cnlTY29wZSBpZiB0aGUgaG9zdCB0aW1lIHpv
bmUgaGFzIGFjdHVhbGx5IGNoYW5nZWQgc2luY2UgdGhlCisgICAgICAgIGxhc3QgdGltZS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNEYXRlTWF0aC5jcHA6CisgICAgICAgIChKU0M6OnRpbWVab25l
Q2hhbmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKEpTQzo6RGF0ZUNhY2hlOjpEYXRlQ2FjaGUp
OgorICAgICAgICAoSlNDOjpEYXRlQ2FjaGU6OnJlc2V0SWZOZWNlc3NhcnkpOgorICAgICAgICAo
SlNDOjpEYXRlQ2FjaGU6OnJlc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRGF0
ZU1hdGguaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6OlZNOjpyZXNl
dERhdGVDYWNoZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKEpTQzo6Vk06OnJlc2V0RGF0ZUNhY2hl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1ZNRW50cnlTY29wZS5jcHA6CisgICAgICAg
IChKU0M6OlZNRW50cnlTY29wZTo6Vk1FbnRyeVNjb3BlKToKKwogMjAyMi0wMi0yMyAgQWRyaWFu
IFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIEVuc3VyZSBn
ZW5lcmF0ZWQgaW5saW5lIGFzc2VtYmxlciB0aGF0IHNldHVwcyBzZWdtZW50cyByZXR1cm5zIHRv
IHByZXZpb3VzIHN0YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0RhdGVNYXRoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1h
dGguY3BwCmluZGV4IDUyMTlmOGY3MjQyYjg2Zjk0MGU4MjgyMzU4NGU2MWZlMmJhNDllNjEuLmYx
Mjg2NDNlNGI3YzJjMmQwNjZlYzM0ZWQyMzAwOTI3MzdlMTQ3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguY3BwCkBAIC05Nyw2ICs5Nyw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCitzdGF0aWMgc3RkOjphdG9taWM8dWludDY0X3Q+IGxhc3RUaW1lWm9u
ZUlEIHsgMSB9OwogCiAjaWYgSEFWRShJQ1VfQ19USU1FWk9ORV9BUEkpCiBjbGFzcyBPcGFxdWVJ
Q1VUaW1lWm9uZSB7CkBAIC0zNTEsOCArMzUyLDI1IEBAIFN0cmluZyBEYXRlQ2FjaGU6OmRlZmF1
bHRUaW1lWm9uZSgpCiAjZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorc3RhdGljIHZv
aWQgdGltZVpvbmVDaGFuZ2VOb3RpZmljYXRpb24oQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsIHZv
aWQqLCBDRlN0cmluZ1JlZiwgY29uc3Qgdm9pZCosIENGRGljdGlvbmFyeVJlZikKK3sKKyAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICsrbGFzdFRpbWVab25lSUQ7Cit9CisjZW5kaWYK
KwogLy8gVG8gY29uZmluZSBpY3U6OlRpbWVab25lIGRlc3RydWN0b3IgaW52b2NhdGlvbiBpbiB0
aGlzIGZpbGUuCi1EYXRlQ2FjaGU6OkRhdGVDYWNoZSgpID0gZGVmYXVsdDsKK0RhdGVDYWNoZTo6
RGF0ZUNhY2hlKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUtleTsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlS2V5LCBbJl0geworICAgICAg
ICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0
TG9jYWxDZW50ZXIoKSwgbnVsbHB0ciwgdGltZVpvbmVDaGFuZ2VOb3RpZmljYXRpb24sIGtDRlRp
bWVab25lU3lzdGVtVGltZVpvbmVEaWRDaGFuZ2VOb3RpZmljYXRpb24sIG51bGxwdHIsIENGTm90
aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yRGVsaXZlckltbWVkaWF0ZWx5KTsKKyAgICB9KTsK
KyNlbmRpZgorfQorCiBEYXRlQ2FjaGU6On5EYXRlQ2FjaGUoKSA9IGRlZmF1bHQ7CiAKIFJlZjxE
YXRlSW5zdGFuY2VEYXRhPiBEYXRlQ2FjaGU6OmNhY2hlZERhdGVJbnN0YW5jZURhdGEoZG91Ymxl
IG1pbGxpc2Vjb25kc0Zyb21FcG9jaCkKQEAgLTM5MCw4ICs0MDgsMTYgQEAgdm9pZCBEYXRlQ2Fj
aGU6OnRpbWVab25lQ2FjaGVTbG93KCkKICNlbmRpZgogfQogCi12b2lkIERhdGVDYWNoZTo6cmVz
ZXQoKQordm9pZCBEYXRlQ2FjaGU6OnJlc2V0SWZOZWNlc3NhcnkoKQogeworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIGlmIChtX2NhY2hlZFRpbWV6b25lSUQgPT0gbGFzdFRpbWVab25lSUQpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX2NhY2hlZFRpbWV6b25lSUQgPSBsYXN0VGltZVpvbmVJRDsK
KyNlbmRpZgorCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjbGVhciBpdCBvbmx5IHdoZW4gd2Ug
a25vdyB0aGUgdGltZXpvbmUgaGFzIGJlZW4gY2hhbmdlZCBvbiBOb24tQ29jb2EgcGxhdGZvcm1z
LgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgzNjUK
ICAgICBtX3RpbWVab25lQ2FjaGUucmVzZXQoKTsKICAgICBtX3V0Y1RpbWVPZmZzZXRDYWNoZSA9
IExvY2FsVGltZU9mZnNldENhY2hlKCk7CiAgICAgbV9sb2NhbFRpbWVPZmZzZXRDYWNoZSA9IExv
Y2FsVGltZU9mZnNldENhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0RhdGVNYXRoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Rh
dGVNYXRoLmgKaW5kZXggMmZkNjhjZTQ2OTc1Yjg1OGJiZGNlNDBkZTY1OGEyZjI3Y2VhMTA3ZC4u
ZTNhYTU4YmJkMjdmMDkwODViNTU1YjNiMTg3OGFlZTc1OTVlNTA3NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRlTWF0aC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0ZU1hdGguaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6
CiAgICAgRGF0ZUNhY2hlKCk7CiAgICAgfkRhdGVDYWNoZSgpOwogCi0gICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCByZXNldCgpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVzZXRJZk5l
Y2Vzc2FyeSgpOwogCiAgICAgU3RyaW5nIGRlZmF1bHRUaW1lWm9uZSgpOwogCkBAIC04Nyw2ICs4
Nyw4IEBAIHB1YmxpYzoKICAgICBkb3VibGUgZ3JlZ29yaWFuRGF0ZVRpbWVUb01TKGNvbnN0IEdy
ZWdvcmlhbkRhdGVUaW1lJiwgZG91YmxlIG1pbGxpc2Vjb25kcywgV1RGOjpUaW1lVHlwZSBpbnB1
dFRpbWVUeXBlKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBkb3VibGUgcGFyc2VEYXRlKEpTR2xv
YmFsT2JqZWN0KiwgVk0mLCBjb25zdCBXVEY6OlN0cmluZyYpOwogCisgICAgc3RhdGljIHZvaWQg
dGltZVpvbmVDaGFuZ2VkKCk7CisKIHByaXZhdGU6CiAgICAgdm9pZCB0aW1lWm9uZUNhY2hlU2xv
dygpOwogICAgIExvY2FsVGltZU9mZnNldCBsb2NhbFRpbWVPZmZzZXQoZG91YmxlIG1pbGxpc2Vj
b25kc0Zyb21FcG9jaCwgV1RGOjpUaW1lVHlwZSBpbnB1dFRpbWVUeXBlID0gV1RGOjpVVENUaW1l
KTsKQEAgLTEwNSw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2NhY2hlZERhdGVT
dHJpbmc7CiAgICAgZG91YmxlIG1fY2FjaGVkRGF0ZVN0cmluZ1ZhbHVlOwogICAgIERhdGVJbnN0
YW5jZUNhY2hlIG1fZGF0ZUluc3RhbmNlQ2FjaGU7CisgICAgdWludDY0X3QgbV9jYWNoZWRUaW1l
em9uZUlEIHsgMCB9OwogfTsKIAogQUxXQVlTX0lOTElORSBib29sIGlzVVRDRXF1aXZhbGVudChT
dHJpbmdWaWV3IHRpbWVab25lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKaW5kZXggMDNk
ZGRlYTg1ODQzZGEyMTk3ZjUyNTBiODk0ZmMyNjVlNDYyNTNkYS4uNzg2Y2Q2MDNmNGMzYTI3OWQ4
YmE4NWRjMTMyYTQ3M2NhNjhjMDBmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBA
IC03MzMsNyArNzMzLDcgQEAgcHVibGljOgogICAgIFJUVHJhY2VMaXN0KiBtX3J0VHJhY2VMaXN0
OwogI2VuZGlmCiAKLSAgICB2b2lkIHJlc2V0RGF0ZUNhY2hlKCkgeyBkYXRlQ2FjaGUucmVzZXQo
KTsgfQorICAgIHZvaWQgcmVzZXREYXRlQ2FjaGVJZk5lY2Vzc2FyeSgpIHsgZGF0ZUNhY2hlLnJl
c2V0SWZOZWNlc3NhcnkoKTsgfQogCiAgICAgUmVnRXhwQ2FjaGUqIHJlZ0V4cENhY2hlKCkgeyBy
ZXR1cm4gbV9yZWdFeHBDYWNoZTsgfQogI2lmIEVOQUJMRShSRUdFWFBfVFJBQ0lORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwCmluZGV4IDVkNzBi
MzU2ODZhNzFkZmUxZThiYjcwOWRjMDFhYjE0YjgwZGNjMjUuLmE5NTgwZTY3OWExZDA3ZGY1NmQy
Yzg5YzNlYmRiOTIwMDNjMjE3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNRW50cnlTY29wZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk1FbnRyeVNjb3BlLmNwcApAQCAtNTYsOSArNTYsNyBAQCBWTUVudHJ5U2NvcGU6OlZNRW50
cnlTY29wZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKICAgICAgICAg
Ly8gUmVzZXQgdGhlIGRhdGUgY2FjaGUgYmV0d2VlbiBKUyBpbnZvY2F0aW9ucyB0byBmb3JjZSB0
aGUgVk0gdG8KICAgICAgICAgLy8gb2JzZXJ2ZSB0aW1lIHpvbmUgY2hhbmdlcy4KLSAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBjbGVhciBpdCBvbmx5IHdoZW4gd2Uga25vdyB0aGUgdGltZXpv
bmUgaGFzIGJlZW4gY2hhbmdlZC4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxODM2NQotICAgICAgICB2bS5yZXNldERhdGVDYWNoZSgpOworICAg
ICAgICB2bS5yZXNldERhdGVDYWNoZUlmTmVjZXNzYXJ5KCk7CiAKICAgICAgICAgaWYgKHZtLndh
dGNoZG9nKCkpCiAgICAgICAgICAgICB2bS53YXRjaGRvZygpLT5lbnRlcmVkVk0oKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>