<?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>222888</bug_id>
          
          <creation_ts>2021-03-07 09:18:08 -0800</creation_ts>
          <short_desc>[GStreamer] CaptureDevice monitor used from UIProcess</short_desc>
          <delta_ts>2021-04-13 01:39:21 -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>WebRTC</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>192697</blocked>
    
    <blocked>222889</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1736933</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-07 09:18:08 -0800</bug_when>
    <thetext>If the webapp starts listening on the devicechange event on the MediaDevice (hello jitsi), a RELEASE_ASSERT is hit, because the UserMediaPermissionRequestManager (WebProcess) sends a BeginMonitoringCaptureDevices message to the UIProcess...

(gdb) bt
#0  0x00007f1c1adf394e in WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:295
#1  0x00007f1c277f1b6b in WTFCrashWithInfo(int, char const*, char const*, int) () at DerivedSources/ForwardingHeaders/wtf/Assertions.h:671
#2  0x00007f1c2945df7b in WebCore::ensureGStreamerInitialized() () at ../../Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:242
#3  0x00007f1c2d50d119 in WebCore::GStreamerCaptureDeviceManager::captureDevices() (this=0x7f1c34089080 &lt;WebCore::GStreamerAudioCaptureDeviceManager::singleton()::manager&gt;)
    at ../../Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp:90
#4  0x00007f1c2c22ea24 in WebCore::CaptureDeviceManager::getCaptureDevices(WTF::CompletionHandler&lt;void (WTF::Vector&lt;WebCore::CaptureDevice, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;&amp;)&gt;&amp;&amp;)
    (this=0x7f1c34089080 &lt;WebCore::GStreamerAudioCaptureDeviceManager::singleton()::manager&gt;, callback=...) at ../../Source/WebCore/platform/mediastream/CaptureDeviceManager.h:38
#5  0x00007f1c2c241461 in WebCore::RealtimeMediaSourceCenter::getMediaStreamDevices(WTF::CompletionHandler&lt;void (WTF::Vector&lt;WebCore::CaptureDevice, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;&amp;)&gt;&amp;&amp;)
    (this=0x7f1c3407e4f0 &lt;WebCore::RealtimeMediaSourceCenter::singleton()::center&gt;, completion=...) at ../../Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:153
#6  0x00007f1c2875593d in WebKit::UserMediaProcessManager::updateCaptureDevices(WebKit::UserMediaProcessManager::ShouldNotify)
    (this=0x7f1c34060400 &lt;WebKit::UserMediaProcessManager::singleton()::manager&gt;, shouldNotify=WebKit::UserMediaProcessManager::ShouldNotify::No) at ../../Source/WebKit/UIProcess/UserMediaProcessManager.cpp:222
#7  0x00007f1c287698a4 in WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27::operator()() const (this=0x7ffd8ca5a5b0) at ../../Source/WebKit/UIProcess/UserMediaProcessManager.cpp:261
#8  0x00007f1c2876986d in std::__invoke_impl&lt;void, WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&gt;(std::__invoke_other, WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&amp;&amp;) (__f=...) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/invoke.h:60
#9  0x00007f1c2876982d in std::__invoke&lt;WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&gt;(WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&amp;&amp;) (__fn=...)
    at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/invoke.h:95
#10 0x00007f1c28769800 in std::call_once&lt;WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&gt;(std::once_flag&amp;, WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&amp;&amp;)::{lambda()#1}::operator()() const (this=0x7ffd8ca5a588) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../include/c++/10.2.0/mutex:717
#11 0x00007f1c287697d7 in std::call_once&lt;WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&gt;(std::once_flag&amp;, WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&amp;&amp;)::{lambda()#2}::operator()() const (this=0x3) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../include/c++/10.2.0/mutex:722
#12 0x00007f1c287697a9 in std::call_once&lt;WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&gt;(std::once_flag&amp;, WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&amp;&amp;)::{lambda()#2}::__invoke() () at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../include/c++/10.2.0/mutex:722
#13 0x00007f1c14d34aaf in __pthread_once_slow (once_control=0x7f1c34060450 &lt;WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::onceFlag&gt;, init_routine=0x7f1c136bd810 &lt;std::__once_proxy()&gt;)
    at pthread_once.c:116
#14 0x00007f1c2876977b in __gthread_once(int*, void (*)()) (__once=0x7f1c34060450 &lt;WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::onceFlag&gt;, __func=0x7f1c136bd810 &lt;std::__once_proxy()&gt;)
    at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../include/c++/10.2.0/x86_64-unknown-linux-gnu/bits/gthr-default.h:700
#15 0x00007f1c28755a68 in std::call_once&lt;WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&gt;(std::once_flag&amp;, WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices()::$_27&amp;&amp;)
    (__once=..., __f=...) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../include/c++/10.2.0/mutex:729
#16 0x00007f1c287559e4 in WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices() (this=0x7f1c34060400 &lt;WebKit::UserMediaProcessManager::singleton()::manager&gt;)
    at ../../Source/WebKit/UIProcess/UserMediaProcessManager.cpp:260
#17 0x00007f1c287dbaba in WebKit::WebPageProxy::beginMonitoringCaptureDevices() (this=0x7f07bc0f9000) at ../../Source/WebKit/UIProcess/WebPageProxy.cpp:8228
#18 0x00007f1c27be7b84 in IPC::callMemberFunctionImpl&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(), std::tuple&lt;&gt;&gt;(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(), std::tuple&lt;&gt;&amp;&amp;, std::integer_sequence&lt;unsigned long&gt;) (object=0x7f07bc0f9000, function=(void (WebKit::WebPageProxy::*)(WebKit::WebPageProxy * const)) 0x7f1c287dba90 &lt;WebKit::WebPageProxy::beginMonitoringCaptureDevices()&gt;, args=...)
    at ../../Source/WebKit/Platform/IPC/HandleMessage.h:43
#19 0x00007f1c27be7af0 in IPC::callMemberFunction&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(), std::tuple&lt;&gt;, std::integer_sequence&lt;unsigned long&gt; &gt;(std::tuple&lt;&gt;&amp;&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)()) (args=..., object=0x7f07bc0f9000, function=(void (WebKit::WebPageProxy::*)(WebKit::WebPageProxy * const)) 0x7f1c287dba90 &lt;WebKit::WebPageProxy::beginMonitoringCaptureDevices()&gt;)
    at ../../Source/WebKit/Platform/IPC/HandleMessage.h:49
#20 0x00007f1c27bd9126 in IPC::handleMessage&lt;Messages::WebPageProxy::BeginMonitoringCaptureDevices, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)()&gt;(IPC::Decoder&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)()) (decoder=..., object=0x7f07bc0f9000, function=(void (WebKit::WebPageProxy::*)(WebKit::WebPageProxy * const)) 0x7f1c287dba90 &lt;WebKit::WebPageProxy::beginMonitoringCaptureDevices()&gt;)
    at ../../Source/WebKit/Platform/IPC/HandleMessage.h:121
#21 0x00007f1c27bd04bc in WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=0x7f07bc0f9000, connection=..., decoder=...)
    at DerivedSources/WebKit/WebPageProxyMessageReceiver.cpp:1493
#22 0x00007f1c2859f481 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=0x7f07bc2fc4b8, connection=..., decoder=...)
    at ../../Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:123
#23 0x00007f1c286ea52e in WebKit::AuxiliaryProcessProxy::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=0x7f07bc2fc480, connection=..., decoder=...)
    at ../../Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:221
#24 0x00007f1c288b4eef in WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) (this=0x7f07bc2fc480, connection=..., decoder=...) at ../../Source/WebKit/UIProcess/WebProcessProxy.cpp:819
#25 0x00007f1c2857976c in IPC::Connection::dispatchMessage(IPC::Decoder&amp;) (this=0x7f1c104a8198, decoder=...) at ../../Source/WebKit/Platform/IPC/Connection.cpp:1010
#26 0x00007f1c28579c2c in IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::Decoder, std::default_delete&lt;IPC::Decoder&gt; &gt;) (this=0x7f1c104a8198, message=std::unique_ptr&lt;IPC::Decoder&gt; = {...})
    at ../../Source/WebKit/Platform/IPC/Connection.cpp:1055
#27 0x00007f1c28578c11 in IPC::Connection::dispatchIncomingMessages() (this=0x7f1c104a8198) at ../../Source/WebKit/Platform/IPC/Connection.cpp:1159
#28 0x00007f1c2857e352 in IPC::Connection::enqueueIncomingMessage(std::unique_ptr&lt;IPC::Decoder, std::default_delete&lt;IPC::Decoder&gt; &gt;)::$_8::operator()() (this=0x7f1c104a18a8)
    at ../../Source/WebKit/Platform/IPC/Connection.cpp:977
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--
#29 0x00007f1c2857e2fe in WTF::Detail::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::unique_ptr&lt;IPC::Decoder, std::default_delete&lt;IPC::Decoder&gt; &gt;)::$_8, void&gt;::call() (this=0x7f1c104a18a0)
    at DerivedSources/ForwardingHeaders/wtf/Function.h:52
#30 0x00007f1c277f1332 in WTF::Function&lt;void ()&gt;::operator()() const (this=0x7ffd8ca5b5b8) at DerivedSources/ForwardingHeaders/wtf/Function.h:83
#31 0x00007f1c1ae2c395 in WTF::RunLoop::performWork() (this=0x7f1c104f9000) at ../../Source/WTF/wtf/RunLoop.cpp:128
#32 0x00007f1c1aec571c in WTF::RunLoop::RunLoop()::$_1::operator()(void*) const (this=0x7f1c104f9000, userData=0x7f1c104f9000) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:80
#33 0x00007f1c1aec56f5 in WTF::RunLoop::RunLoop()::$_1::__invoke(void*) (userData=0x7f1c104f9000) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:79
#34 0x00007f1c1aec56a9 in WTF::RunLoop::$_0::operator()(_GSource*, int (*)(void*), void*) const
    (this=0xb13450, source=0xb13450, callback=0x7f1c1aec56e0 &lt;WTF::RunLoop::RunLoop()::$_1::__invoke(void*)&gt;, userData=0x7f1c104f9000) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:53
#35 0x00007f1c1aec4725 in WTF::RunLoop::$_0::__invoke(_GSource*, int (*)(void*), void*) (source=0xb13450, callback=0x7f1c1aec56e0 &lt;WTF::RunLoop::RunLoop()::$_1::__invoke(void*)&gt;, userData=0x7f1c104f9000)
    at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:45
#36 0x00007f1c3418adbf in g_main_dispatch (context=0xb31460) at ../glib/gmain.c:3337
#37 g_main_context_dispatch (context=0xb31460) at ../glib/gmain.c:4055
#38 0x00007f1c3418b168 in g_main_context_iterate (context=context@entry=0xb31460, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:4131
#39 0x00007f1c3418b233 in g_main_context_iteration (context=context@entry=0xb31460, may_block=may_block@entry=1) at ../glib/gmain.c:4196
#40 0x00007f1c13be962d in g_application_run (application=0xb97210 [GtkApplication], argc=-1935296492, argv=&lt;optimized out&gt;) at ../gio/gapplication.c:2560
#41 0x000000000041c23d in main (argc=1, argv=0x7ffd8ca5ba18) at ../../Tools/MiniBrowser/gtk/main.c:833</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736942</commentid>
    <comment_count>1</comment_count>
      <attachid>422532</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-07 10:56:04 -0800</bug_when>
    <thetext>Created attachment 422532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736996</commentid>
    <comment_count>2</comment_count>
      <attachid>422532</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-03-08 00:46:16 -0800</bug_when>
    <thetext>Comment on attachment 422532
Patch

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

&gt; Source/WebKit/UIProcess/UserMediaProcessManager.h:61
&gt; +    DevicesChangedCallback m_devicesChangedCallback;

Maybe we should make this gstreamer only.

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:40
&gt; +#if USE(GSTREAMER)
&gt; +#include &quot;UserMediaProcessManager.h&quot;
&gt; +#endif

It&apos;s a bit weird to use UI process API from the web process directly. Maybe we should move it to Shared (not necessarily as part of this patch, though).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737000</commentid>
    <comment_count>3</comment_count>
      <attachid>422532</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-08 01:02:16 -0800</bug_when>
    <thetext>Comment on attachment 422532
Patch

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

&gt;&gt; Source/WebKit/UIProcess/UserMediaProcessManager.h:61
&gt;&gt; +    DevicesChangedCallback m_devicesChangedCallback;
&gt; 
&gt; Maybe we should make this gstreamer only.

Why? Then we&apos;d also need to ifdef the beginMonitoringCaptureDevices changes?

&gt;&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:40
&gt;&gt; +#endif
&gt; 
&gt; It&apos;s a bit weird to use UI process API from the web process directly. Maybe we should move it to Shared (not necessarily as part of this patch, though).

I agree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739335</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-15 02:32:13 -0700</bug_when>
    <thetext>So, does this patch needs an update?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742781</commentid>
    <comment_count>5</comment_count>
      <attachid>422532</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-23 07:18:53 -0700</bug_when>
    <thetext>Comment on attachment 422532
Patch

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

&gt; Source/WebKit/UIProcess/UserMediaProcessManager.cpp:216
&gt; +    m_devicesChangedCallback();

What if m_devicesChangedCallback is not set?
Might not happen in practice but still.

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:163
&gt; +        UserMediaProcessManager::singleton().beginMonitoringCaptureDevices([weakThis = makeWeakPtr(*this)]() {

Maybe you should create your own class here.
UserMediaProcessManager is in UIProcess folder.
And beginMonitoringCaptureDevices is not doing a lot of things anyway.
Maybe you could use WebCore::RealtimeMediaSourceCenter::singleton() directly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742790</commentid>
    <comment_count>6</comment_count>
      <attachid>424017</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-23 07:58:52 -0700</bug_when>
    <thetext>Created attachment 424017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742826</commentid>
    <comment_count>7</comment_count>
      <attachid>424017</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-23 09:10:16 -0700</bug_when>
    <thetext>Comment on attachment 424017
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        GStreamer ports aim to reduce usage of the GStreamer library in the UIProcess and thus

Why are you doing this?  Our view is that the web process is untrusted so we moved capturing things like this to the trusted UI process.

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:163
&gt; +    WebCore::RealtimeMediaSourceCenter::singleton().getMediaStreamDevices([this, shouldNotify] (auto&amp;&amp; newDevices) mutable {

This looks like it could use the this pointer after it is freed.

if (!weakThis)
    return;

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:71
&gt; +    enum class ShouldNotify { Yes, No };

: bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742863</commentid>
    <comment_count>8</comment_count>
      <attachid>424030</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-23 09:47:15 -0700</bug_when>
    <thetext>Created attachment 424030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742866</commentid>
    <comment_count>9</comment_count>
      <attachid>424017</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-23 09:49:50 -0700</bug_when>
    <thetext>Comment on attachment 424017
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:8
&gt;&gt; +        GStreamer ports aim to reduce usage of the GStreamer library in the UIProcess and thus
&gt; 
&gt; Why are you doing this?  Our view is that the web process is untrusted so we moved capturing things like this to the trusted UI process.

I expanded the explanation. We unfortunately can&apos;t move out of WebProcess yet, and we try to not initialize GStreamer from the UIProcess either, due to performance concerns on embedded platforms.

&gt;&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:163
&gt;&gt; +    WebCore::RealtimeMediaSourceCenter::singleton().getMediaStreamDevices([this, shouldNotify] (auto&amp;&amp; newDevices) mutable {
&gt; 
&gt; This looks like it could use the this pointer after it is freed.
&gt; 
&gt; if (!weakThis)
&gt;     return;

Right, weak ptr now captured in lambda.

&gt;&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:71
&gt;&gt; +    enum class ShouldNotify { Yes, No };
&gt; 
&gt; : bool

I wonder why an enum was used in the UserMediaProcess now ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744612</commentid>
    <comment_count>10</comment_count>
      <attachid>424496</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-28 06:34:11 -0700</bug_when>
    <thetext>Created attachment 424496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744635</commentid>
    <comment_count>11</comment_count>
      <attachid>424496</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-28 12:16:49 -0700</bug_when>
    <thetext>Comment on attachment 424496
Patch

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

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:173
&gt; +        if (m_captureDevices.size() == oldDevices.size()) {

We could add to CaptureDevice.h a free function like:
bool haveDevicesChanged(const Vector&lt; CaptureDevice &gt;&amp; oldDevices, const Vector&lt; CaptureDevice &gt;&amp; newDevices).

And RealtimeMediaSourceCenter could do the debouceTimer before calling the observer.
We would share more code with UserMediaProcessManager and rewrite this callback as:

if (! haveDevicesChanged(m_captureDevices, newDevices))
    return;
m_captureDevices = WTFMove(newDevices);
if (shouldNotify == ShouldNotify::Yes)
    captureDevicesChanged();

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:210
&gt; +        WebCore::RealtimeMediaSourceCenter::singleton().setDevicesChangedObserver([weakThis = makeWeakPtr(*this)]() {

UserMediaPermissionRequestManager is per page, but RealtimeMediaSourceCenter is taking only one callback so far.
This probably does not work for processes with more than one page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744637</commentid>
    <comment_count>12</comment_count>
      <attachid>424496</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-28 13:00:38 -0700</bug_when>
    <thetext>Comment on attachment 424496
Patch

I&apos;ll rework this then. Thanks Youenn :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744776</commentid>
    <comment_count>13</comment_count>
      <attachid>424547</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-29 10:55:55 -0700</bug_when>
    <thetext>Created attachment 424547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746439</commentid>
    <comment_count>14</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-02 02:46:34 -0700</bug_when>
    <thetext>Does it look better Youenn? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746442</commentid>
    <comment_count>15</comment_count>
      <attachid>424547</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-02 02:58:26 -0700</bug_when>
    <thetext>Comment on attachment 424547
Patch

Looks good to me, a few suggestions below.

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

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h:89
&gt; +    WEBCORE_EXPORT UserMediaClient::DeviceChangeObserverToken addDevicesChangedObserver(std::function&lt;void()&gt;&amp;&amp;);

I do not remember why we use std::function. We probably want Function here.

&gt; Source/WebKit/UIProcess/UserMediaProcessManager.cpp:205
&gt; +    WebCore::RealtimeMediaSourceCenter::singleton().removeDevicesChangedObserver(m_deviceChangeObserverToken);

I don&apos;t think we want this one,  or we should add the observer back when enabled is set to true.
Given it is a singleton, let&apos;s register once and for all.

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:181
&gt; +        m_deviceChangeObserverToken = WebCore::RealtimeMediaSourceCenter::singleton().addDevicesChangedObserver([weakThis = makeWeakPtr(*this)]() {

We probably want to remove m_deviceChangeObserverToken in the destructor if it is set, otherwise it will grow over time.
If we do so, we do not need to use weakThis here.

Another possibility would be to use a WeakHashSet&lt;Observer&gt; which would remove the explicit use of weakThis and observer removal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747896</commentid>
    <comment_count>16</comment_count>
      <attachid>424547</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-07 08:45:07 -0700</bug_when>
    <thetext>Comment on attachment 424547
Patch

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

&gt;&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:181
&gt;&gt; +        m_deviceChangeObserverToken = WebCore::RealtimeMediaSourceCenter::singleton().addDevicesChangedObserver([weakThis = makeWeakPtr(*this)]() {
&gt; 
&gt; We probably want to remove m_deviceChangeObserverToken in the destructor if it is set, otherwise it will grow over time.
&gt; If we do so, we do not need to use weakThis here.
&gt; 
&gt; Another possibility would be to use a WeakHashSet&lt;Observer&gt; which would remove the explicit use of weakThis and observer removal.

Trying to understand what you mean here, are you suggesting to wrap a new Observer class in the RealtimeSourceCenter and then make UserMediaPermissionRequestManager (in gst case) and UserMediaProcessManager inherit from it?

I´ve tried that but that triggers build errors in UserMediaPermissionRequestManager:

WTF/Headers/wtf/WeakPtr.h:249:19: error: member &apos;weakPtrFactory&apos; found in multiple base classes of different types
    return object.weakPtrFactory().template createWeakPtr&lt;T&gt;(object);
                  ^
../../Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:158:87: note: in instantiation of function template specialization &apos;WTF::makeWeakPtr&lt;WebKit::UserMediaPermissionRequestManager&gt;&apos; requested here
    WebCore::RealtimeMediaSourceCenter::singleton().getMediaStreamDevices([weakThis = makeWeakPtr(*this), this, shouldNotify](auto&amp;&amp; newDevices) mutable {
                                                                                      ^
WTF/Headers/wtf/WeakPtr.h:200:39: note: member found by ambiguous name lookup
    const WeakPtrFactory&lt;T, Counter&gt;&amp; weakPtrFactory() const { return m_weakPtrFactory; }
                                      ^
WTF/Headers/wtf/WeakPtr.h:200:39: note: member found by ambiguous name lookup
In file included from DerivedSources/WebKit/unified-sources/UnifiedSource-54928a2b-26.cpp:2:
../../Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:159:14: error: use of undeclared identifier &apos;weakThis&apos;
        if (!weakThis)
             ^
2 errors generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747909</commentid>
    <comment_count>17</comment_count>
      <attachid>424547</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-07 08:58:31 -0700</bug_when>
    <thetext>Comment on attachment 424547
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:181
&gt;&gt;&gt; +        m_deviceChangeObserverToken = WebCore::RealtimeMediaSourceCenter::singleton().addDevicesChangedObserver([weakThis = makeWeakPtr(*this)]() {
&gt;&gt; 
&gt;&gt; We probably want to remove m_deviceChangeObserverToken in the destructor if it is set, otherwise it will grow over time.
&gt;&gt; If we do so, we do not need to use weakThis here.
&gt;&gt; 
&gt;&gt; Another possibility would be to use a WeakHashSet&lt;Observer&gt; which would remove the explicit use of weakThis and observer removal.
&gt; 
&gt; Trying to understand what you mean here, are you suggesting to wrap a new Observer class in the RealtimeSourceCenter and then make UserMediaPermissionRequestManager (in gst case) and UserMediaProcessManager inherit from it?
&gt; 
&gt; I´ve tried that but that triggers build errors in UserMediaPermissionRequestManager:
&gt; 
&gt; WTF/Headers/wtf/WeakPtr.h:249:19: error: member &apos;weakPtrFactory&apos; found in multiple base classes of different types
&gt;     return object.weakPtrFactory().template createWeakPtr&lt;T&gt;(object);
&gt;                   ^
&gt; ../../Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:158:87: note: in instantiation of function template specialization &apos;WTF::makeWeakPtr&lt;WebKit::UserMediaPermissionRequestManager&gt;&apos; requested here
&gt;     WebCore::RealtimeMediaSourceCenter::singleton().getMediaStreamDevices([weakThis = makeWeakPtr(*this), this, shouldNotify](auto&amp;&amp; newDevices) mutable {
&gt;                                                                                       ^
&gt; WTF/Headers/wtf/WeakPtr.h:200:39: note: member found by ambiguous name lookup
&gt;     const WeakPtrFactory&lt;T, Counter&gt;&amp; weakPtrFactory() const { return m_weakPtrFactory; }
&gt;                                       ^
&gt; WTF/Headers/wtf/WeakPtr.h:200:39: note: member found by ambiguous name lookup
&gt; In file included from DerivedSources/WebKit/unified-sources/UnifiedSource-54928a2b-26.cpp:2:
&gt; ../../Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:159:14: error: use of undeclared identifier &apos;weakThis&apos;
&gt;         if (!weakThis)
&gt;              ^
&gt; 2 errors generated.

Ok, trying to decouple the observer from the UserMediaPermissionRequestManager class might work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1747910</commentid>
    <comment_count>18</comment_count>
      <attachid>425406</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-07 09:10:08 -0700</bug_when>
    <thetext>Created attachment 425406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748285</commentid>
    <comment_count>19</comment_count>
      <attachid>425503</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-08 06:15:05 -0700</bug_when>
    <thetext>Created attachment 425503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749215</commentid>
    <comment_count>20</comment_count>
      <attachid>425503</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-12 07:47:16 -0700</bug_when>
    <thetext>Comment on attachment 425503
Patch

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

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.cpp:71
&gt; +}

I would use = default for consistency with above destructor.

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSourceCenter.h:64
&gt; +        virtual void devicesChanged() { }

I would make it virtual pure since there is no point for an observe with devicesChanged being a no-op

&gt; Source/WebKit/UIProcess/UserMediaProcessManager.h:53
&gt; +    void devicesChanged() final;

Can it be made private?

&gt; Source/WebKit/UIProcess/UserMediaProcessManager.h:63
&gt; +    WebCore::UserMediaClient::DeviceChangeObserverToken m_deviceChangeObserverToken;

No longer needed?

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:57
&gt; +    class DeviceObserver : public WebCore::RealtimeMediaSourceCenter::Observer {

Can be made private probably.
You could also make UserMediaPermissionRequestManager a RealtimeMediaSourceCenter::Observer.

&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:59
&gt; +        DeviceObserver(UserMediaPermissionRequestManager&amp; manager)

explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749234</commentid>
    <comment_count>21</comment_count>
      <attachid>425503</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-12 08:58:40 -0700</bug_when>
    <thetext>Comment on attachment 425503
Patch

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

&gt;&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:57
&gt;&gt; +    class DeviceObserver : public WebCore::RealtimeMediaSourceCenter::Observer {
&gt; 
&gt; Can be made private probably.
&gt; You could also make UserMediaPermissionRequestManager a RealtimeMediaSourceCenter::Observer.

I tried that already, would incur duplicate inheritance on CanMakeWeakPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749236</commentid>
    <comment_count>22</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-12 09:01:48 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #21)
&gt; Comment on attachment 425503 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425503&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:57
&gt; &gt;&gt; +    class DeviceObserver : public WebCore::RealtimeMediaSourceCenter::Observer {
&gt; &gt; 
&gt; &gt; Can be made private probably.
&gt; &gt; You could also make UserMediaPermissionRequestManager a RealtimeMediaSourceCenter::Observer.
&gt; 
&gt; I tried that already, would incur duplicate inheritance on CanMakeWeakPtr.

Right, you can probably do something like:
    using Class::weakPtrFactory;
    using WeakValueType = Class::WeakValueType;

With Class be one of the two CanMakeWeakPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749237</commentid>
    <comment_count>23</comment_count>
      <attachid>425753</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-12 09:03:28 -0700</bug_when>
    <thetext>Created attachment 425753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749250</commentid>
    <comment_count>24</comment_count>
      <attachid>425503</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-12 09:28:55 -0700</bug_when>
    <thetext>Comment on attachment 425503
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/WebProcess/MediaStream/UserMediaPermissionRequestManager.h:57
&gt;&gt;&gt;&gt; +    class DeviceObserver : public WebCore::RealtimeMediaSourceCenter::Observer {
&gt;&gt;&gt; 
&gt;&gt;&gt; Can be made private probably.
&gt;&gt;&gt; You could also make UserMediaPermissionRequestManager a RealtimeMediaSourceCenter::Observer.
&gt;&gt; 
&gt;&gt; I tried that already, would incur duplicate inheritance on CanMakeWeakPtr.
&gt; 
&gt; Right, you can probably do something like:
&gt;     using Class::weakPtrFactory;
&gt;     using WeakValueType = Class::WeakValueType;
&gt; 
&gt; With Class be one of the two CanMakeWeakPtr.

Ah, nice! I didn&apos;t know about this trick. I&apos;ll upload a new version of the patch. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749253</commentid>
    <comment_count>25</comment_count>
      <attachid>425759</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-12 09:40:02 -0700</bug_when>
    <thetext>Created attachment 425759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749255</commentid>
    <comment_count>26</comment_count>
      <attachid>425760</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-12 09:42:17 -0700</bug_when>
    <thetext>Created attachment 425760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749590</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-13 01:38:21 -0700</bug_when>
    <thetext>Committed r275871 (236436@main): &lt;https://commits.webkit.org/236436@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425760.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749591</commentid>
    <comment_count>28</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-13 01:39:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/76581284&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422532</attachid>
            <date>2021-03-07 10:56:04 -0800</date>
            <delta_ts>2021-03-23 07:58:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210307105602.patch</filename>
            <type>text/plain</type>
            <size>5605</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM1NDZkMzVmNTUzN2RmNjgw
MjRjNjk4Y2JkNTY5MmJkOTRjZTUxZmUuLjE3OTk3NzkzMTBlMTRkZDkxMDNlODgwZTNkYzBiMTA1
ZmM3OTc2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDMtMDcgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIENh
cHR1cmVEZXZpY2UgbW9uaXRvciB1c2VkIGZyb20gVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4ODgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHU3RyZWFtZXIgcG9ydHMgYWltIHRvIHJl
ZHVjZSB1c2FnZSBvZiB0aGUgR1N0cmVhbWVyIGxpYnJhcnkgaW4gdGhlIFVJUHJvY2VzcyBhbmQg
dGh1cworICAgICAgICBzaG91bGQgbm90IHJlbGF5IGNhcHR1cmUgZGV2aWNlY2hhbmdlIG1vbml0
b3JpbmcgdG8gdGhlIFVJUHJvY2Vzcy4gU28gZm9yIHRoZXNlIHBvcnRzIHRoZQorICAgICAgICBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgaW5pdGlhbGl6ZXMgdGhlIGRldmljZSBt
b25pdG9yIGRpcmVjdGx5IHdpdGhpbiB0aGUKKyAgICAgICAgV2ViUHJvY2VzcywgZGV2aWNlIGNo
YW5nZXMgYXJlIG5vdGlmaWVkIHRocm91Z2ggYSBjdXN0b20gZnVuY3Rpb24gcGFzc2VkIHRvIHRo
ZQorICAgICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6YmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRp
YVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDogUHVibGljbHkgaW5o
ZXJpdCBmcm9tCisgICAgICAgIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciBzbyB0aGF0IHdlIGNhbiB1
c2UgdGhlIHdlYWtwdHIgZmFjdG9yeS4KKwogMjAyMS0wMy0wNiAgSmlld2VuIFRhbiAgPGppZXdl
bl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gRXhwYW5kIFdlYkF1dGhuIFBy
b2Nlc3MncyBzYW5kYm94IHByb2ZpbGUgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggYzg0MjNkZWJjNzc3ZmM5
NGZiYTYwMzUzMGI4NTRkNGZjY2ZhZDM0Mi4uZjhjODkxYzIxYTQzZmM4NmUzYzUzNGVmNTQyY2Uw
ODY4YjU3ZmY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtMjEyLDkgKzIxMiwxMyBAQCB2b2lkIFVzZXJNZWRpYVBy
b2Nlc3NNYW5hZ2VyOjpzZXRDYXB0dXJlRW5hYmxlZChib29sIGVuYWJsZWQpCiAKIHZvaWQgVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiB7CisjaWYgVVNF
KEdTVFJFQU1FUikKKyAgICBtX2RldmljZXNDaGFuZ2VkQ2FsbGJhY2soKTsKKyNlbHNlCiAgICAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmZvckVhY2goW10oYXV0byYg
cHJveHkpIHsKICAgICAgICAgcHJveHkuY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAgICAgfSk7
CisjZW5kaWYKIH0KIAogdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6dXBkYXRlQ2FwdHVy
ZURldmljZXMoU2hvdWxkTm90aWZ5IHNob3VsZE5vdGlmeSkKQEAgLTI1MywxMCArMjU3LDEyIEBA
IHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3Vs
ZE5vdGlmeSBzaG91bGROb3RpZnkpCiAgICAgfSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUHJvY2Vz
c01hbmFnZXI6OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKK3ZvaWQgVXNlck1lZGlh
UHJvY2Vzc01hbmFnZXI6OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKERldmljZXNDaGFu
Z2VkQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUZsYWc7CiAKKyAgICBtX2RldmljZXNDaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KTsKKwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbdGhpc10gewogICAgICAgICB1cGRh
dGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Ok5vKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgKaW5kZXggNmI5ODRkMTRmN2Rj
NjA2MDY3OWQzMTY2YTcwZTBmZjhlMzYzZjhmNi4uMDJiODI5N2YwMzU5MDY0Zjg0MTdmNmNjNjI5
OTZiOTMxOWE2N2I1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUHJvY2Vzc01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQcm9jZXNzTWFuYWdlci5oCkBAIC00NSw3ICs0NSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZGVueU5leHRVc2VyTWVkaWFSZXF1ZXN0KCkgeyBtX2RlbnlOZXh0UmVxdWVzdCA9IHRydWU7IH0K
IAotICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKTsKKyAgICB1c2luZyBE
ZXZpY2VzQ2hhbmdlZENhbGxiYWNrID0gRnVuY3Rpb248dm9pZCgpPjsKKyAgICB2b2lkIGJlZ2lu
TW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKERldmljZXNDaGFuZ2VkQ2FsbGJhY2smJiA9IG51bGxw
dHIpOwogCiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IHsgWWVzLCBObyB9
OwpAQCAtNTYsNiArNTcsOCBAQCBwcml2YXRlOgogICAgIFJ1bkxvb3A6OlRpbWVyPFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyPiBtX2RlYm91bmNlVGltZXI7CiAgICAgYm9vbCBtX2NhcHR1cmVFbmFi
bGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9kZW55TmV4dFJlcXVlc3QgeyBmYWxzZSB9OworCisg
ICAgRGV2aWNlc0NoYW5nZWRDYWxsYmFjayBtX2RldmljZXNDaGFuZ2VkQ2FsbGJhY2s7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAKaW5kZXggZmQ2YWI0ZGY3MmYyMWQwOTg5NzcxYTUwYTBkODI1ZDAy
ZThhZmYzNi4uOTQ4ZjM0MjZhZDM1NGJkZTBlMDIzNzZiY2MwMTQyN2MzYWY3ZTc4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01l
ZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTM1LDYg
KzM1LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQorI2lu
Y2x1ZGUgIlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTU1LDcgKzE1OSwxNSBAQCBV
c2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjphZAogCiAgICAgaWYgKCFtX21vbml0b3JpbmdEZXZpY2VDaGFu
Z2UpIHsKICAgICAgICAgbV9tb25pdG9yaW5nRGV2aWNlQ2hhbmdlID0gdHJ1ZTsKKyNpZiBVU0Uo
R1NUUkVBTUVSKQorICAgICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCku
YmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpXSgpIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgd2Vha1RoaXMtPmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOworICAg
ICAgICB9KTsKKyNlbHNlCiAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkpOworI2VuZGlmCiAgICAgfQogICAg
IHJldHVybiBpZGVudGlmaWVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oCmluZGV4IDA0N2FmYTIxY2ZjZWUzZDAwOWJkZTM2MTc3NmM4MjE5MzBhNGRk
Y2IuLjRkYmQ3YWE1N2QwODA4NTlhZDZjMDBiNjZmMTcxMDJkNTBlZjZkYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJl
YW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTM0LDcgKzM0LDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CiAKLWNsYXNzIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlciA6IHByaXZhdGUgV2ViQ29yZTo6TWVkaWFDYW5TdGFydExp
c3RlbmVyIHsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciA6IHB1Ymxp
YyBXZWJDb3JlOjpNZWRpYUNhblN0YXJ0TGlzdGVuZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcihXZWJQYWdlJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424017</attachid>
            <date>2021-03-23 07:58:52 -0700</date>
            <delta_ts>2021-03-23 09:47:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210323075851.patch</filename>
            <type>text/plain</type>
            <size>6589</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJjNjZhYTU3NDA5NjYzZWQ5
MTI1ZGIyZmNkYmU5YThmMzgzNTVkZjYuLjY5YmIwZjIxNWU2NzRjZjQ3NjA2YTg2ZDVhMzE2YjYw
MTUzYzE1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDMtMjMgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIENh
cHR1cmVEZXZpY2UgbW9uaXRvciB1c2VkIGZyb20gVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4ODgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHU3RyZWFtZXIgcG9ydHMgYWltIHRvIHJl
ZHVjZSB1c2FnZSBvZiB0aGUgR1N0cmVhbWVyIGxpYnJhcnkgaW4gdGhlIFVJUHJvY2VzcyBhbmQg
dGh1cworICAgICAgICBzaG91bGQgbm90IHJlbGF5IGNhcHR1cmUgZGV2aWNlY2hhbmdlIG1vbml0
b3JpbmcgdG8gdGhlIFVJUHJvY2Vzcy4gU28gZm9yIHRoZXNlIHBvcnRzIHRoZQorICAgICAgICBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgaW5pdGlhbGl6ZXMgdGhlIGRldmljZSBt
b25pdG9yIGRpcmVjdGx5IHdpdGhpbiB0aGUKKyAgICAgICAgV2ViUHJvY2VzcywgdXNpbmcgY29k
ZSBpbXBvcnRlZCBmcm9tIHRoZSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVwZGF0ZUNhcHR1cmVEZXZpY2VzKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjphZGRE
ZXZpY2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDogUHVibGljbHkgaW5oZXJpdCBmcm9t
CisgICAgICAgIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIHdl
YWtwdHIgZmFjdG9yeS4KKwogMjAyMS0wMy0yMyAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgaW5zdGFuY2VkIGRyYXdpbmcgZnVuY3Rpb25hbGl0
eSBmcm9tIEV4dGVuc2lvbnNHTCB0byBHcmFwaGljc0NvbnRleHRHTApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCBmZDZhYjRkZjcyZjIxZDA5
ODk3NzFhNTBhMGQ4MjVkMDJlOGFmZjM2Li4yMTE5NzZiYTZiNGZhNGY1N2I3ZmY4NjkzZDJjNmUy
N2JmM2I0YjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJl
YW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcApAQCAtMzUsNiArMzUsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KIAorI2lmIFVT
RShHU1RSRUFNRVIpCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Lmg+CisKK3N0YXRpYyBjb25zdCBTZWNvbmRzIGRldmljZUNoYW5nZURlYm91bmNlVGltZXJJbnRl
cnZhbCB7IDIwMF9tcyB9OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQyLDYgKzQ4LDkgQEAgc3RhdGljIGNvbnN0ZXhwciBPcHRp
b25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gZm9jdXNlZEFjdGl2ZVdpbmRvdyA9IHsgQWN0aXZp
dHkKIAogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQorI2lm
IFVTRShHU1RSRUFNRVIpCisgICAgLCBtX2RlYm91bmNlVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0
aGlzLCAmVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0No
YW5nZWQpCisjZW5kaWYKIHsKIH0KIApAQCAtMTQ4LDYgKzE1Nyw0NCBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKERvY3VtZW50
JiBkb2N1bWVudAogICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUgeyBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZSgqZnJhbWUpLT5mcmFtZUlEKCksIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0
YSgpLCBkb2N1bWVudC50b3BPcmlnaW4oKS5kYXRhKCkgfSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnkgc2hvdWxk
Tm90aWZ5KQoreworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcyhbdGhpcywgc2hvdWxkTm90aWZ5XSAoYXV0byYm
IG5ld0RldmljZXMpIG11dGFibGUgeworICAgICAgICBhdXRvIG9sZERldmljZXMgPSBXVEZNb3Zl
KG1fY2FwdHVyZURldmljZXMpOworICAgICAgICBtX2NhcHR1cmVEZXZpY2VzID0gV1RGTW92ZShu
ZXdEZXZpY2VzKTsKKworICAgICAgICBpZiAoc2hvdWxkTm90aWZ5ID09IFNob3VsZE5vdGlmeTo6
Tm8pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKG1fY2FwdHVyZURldmljZXMu
c2l6ZSgpID09IG9sZERldmljZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBib29sIGhhdmVDaGFu
Z2VzID0gZmFsc2U7CisgICAgICAgICAgICBmb3IgKGF1dG8gJm5ld0RldmljZSA6IG1fY2FwdHVy
ZURldmljZXMpIHsKKyAgICAgICAgICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSAhPSBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmEgJiYgbmV3RGV2aWNlLnR5cGUo
KSAhPSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgICAgIGF1dG8gaW5kZXgg
PSBvbGREZXZpY2VzLmZpbmRNYXRjaGluZyhbJm5ld0RldmljZV0gKGF1dG8mIG9sZERldmljZSkg
eworICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpID09
IG9sZERldmljZS5wZXJzaXN0ZW50SWQoKSAmJiBuZXdEZXZpY2UuZW5hYmxlZCgpICE9IG9sZERl
dmljZS5lbmFibGVkKCk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgICAgICBp
ZiAoaW5kZXggPT0gbm90Rm91bmQpIHsKKyAgICAgICAgICAgICAgICAgICAgaGF2ZUNoYW5nZXMg
PSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghaGF2ZUNoYW5nZXMpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gV2hlbiBhIGRldmljZSB3aXRo
IGNhbWVyYSBhbmQgbWljcm9waG9uZSBpcyBhdHRhY2hlZCBvciBkZXRhY2hlZCwgdGhlIENhcHR1
cmVEZXZpY2Ugbm90aWZpY2F0aW9uIGZvcgorICAgICAgICAvLyB0aGUgZGlmZmVyZW50IGRldmlj
ZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1lIHRpbWUgc28gZGVsYXkgYSBiaXQgc28gd2UgY2Fu
IGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCisgICAgICAgIGlmICghbV9kZWJvdW5jZVRpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgICAgICBtX2RlYm91bmNlVGltZXIuc3RhcnRPbmVTaG90KGRldmlj
ZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZhbCk7CisgICAgfSk7Cit9CisjZW5kaWYKKwogVXNl
ck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6YWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIoRnVuY3Rpb248dm9pZCgp
PiYmIG9ic2VydmVyKQogewogICAgIGF1dG8gaWRlbnRpZmllciA9IFVzZXJNZWRpYUNsaWVudDo6
RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbjo6Z2VuZXJhdGUoKTsKQEAgLTE1NSw3ICsyMDIsMTYg
QEAgVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6YWQKIAogICAgIGlmICghbV9tb25pdG9yaW5nRGV2aWNl
Q2hhbmdlKSB7CiAgICAgICAgIG1fbW9uaXRvcmluZ0RldmljZUNoYW5nZSA9IHRydWU7CisjaWYg
VVNFKEdTVFJFQU1FUikKKyAgICAgICAgdXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5
OjpObyk7CisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLnNldERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXSgpIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3Vs
ZE5vdGlmeTo6WWVzKTsKKyAgICAgICAgfSk7CisjZWxzZQogICAgICAgICBtX3BhZ2Uuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpKTsK
KyNlbmRpZgogICAgIH0KICAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCAwNDdhZmEyMWNmY2VlM2QwMDli
ZGUzNjE3NzZjODIxOTMwYTRkZGNiLi4wYTVkNDE1MWI3YTk5ODE3MmY0NzJjYTJmMzY3MzAwZDll
ZGM0OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
CkBAIC0yOSwxMiArMjksMTMgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CiAKLWNsYXNzIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciA6IHByaXZhdGUgV2ViQ29yZTo6TWVkaWFD
YW5TdGFydExpc3RlbmVyIHsKK2NsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ciA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYUNhblN0YXJ0TGlzdGVuZXIgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CkBAIC02NSw2ICs2NiwxNCBAQCBwcml2YXRlOgog
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2Vy
dmVyVG9rZW4sIEZ1bmN0aW9uPHZvaWQoKT4+IG1fZGV2aWNlQ2hhbmdlT2JzZXJ2ZXJNYXA7CiAg
ICAgYm9vbCBtX21vbml0b3JpbmdEZXZpY2VDaGFuZ2UgeyBmYWxzZSB9OworCisjaWYgVVNFKEdT
VFJFQU1FUikKKyAgICBlbnVtIGNsYXNzIFNob3VsZE5vdGlmeSB7IFllcywgTm8gfTsKKyAgICB2
b2lkIHVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlmeSk7CisKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4gbV9jYXB0dXJlRGV2aWNlczsKKyAgICBSdW5Mb29wOjpUaW1l
cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fZGVib3VuY2VUaW1lcjsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424030</attachid>
            <date>2021-03-23 09:47:15 -0700</date>
            <delta_ts>2021-03-28 06:34:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210323094713.patch</filename>
            <type>text/plain</type>
            <size>6876</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgwMTNkZDAyNzA4MjBjMTNh
MGJkMjI5ZjZjZjk4N2I1ZTIzNzZmN2MuLmRlY2ZlYmIzODU3MDQ2MGQ0ZmQ4MDNmZmZhZTA2YTQz
ZTg5YjQxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDMtMjMgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIENh
cHR1cmVEZXZpY2UgbW9uaXRvciB1c2VkIGZyb20gVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4ODgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHU3RyZWFtZXIgcG9ydHMgYWltIHRvIHJl
ZHVjZSB1c2FnZSBvZiB0aGUgR1N0cmVhbWVyIGxpYnJhcnkgaW4gdGhlIFVJUHJvY2VzcyBhbmQg
dGh1cworICAgICAgICBzaG91bGQgbm90IHJlbGF5IGNhcHR1cmUgZGV2aWNlY2hhbmdlIG1vbml0
b3JpbmcgdG8gdGhlIFVJUHJvY2Vzcy4gRm9yIHRoZSBsb25nIHRlcm0gd2UgcGxhbgorICAgICAg
ICB0byBtaWdyYXRlIG1lZGlhIHByb2Nlc3NpbmcgdG8gdGhlIEdQVVByb2Nlc3MgYnV0IGZvciBu
b3cgd2UgaGF2ZSB0byBtYWludGFpbiB0aGUgbWVkaWEKKyAgICAgICAgcGlwZWxpbmVzIGluIHRo
ZSBXZWJQcm9jZXNzLiBJbml0aWFsaXppbmcgR1N0cmVhbWVyIGluIG11bHRpcGxlIHByb2Nlc3Nl
cyAoaW5jbHVkaW5nIHRoZQorICAgICAgICBVSVByb2Nlc3MpIGhhcyBhIHNpZ25pZmljYW50IHBl
cmZvcm1hbmNlIGltcGFjdCBvbiBlbWJlZGRlZCBwbGF0Zm9ybXMsIHRoYXQncyB3aHkgd2UgdHJ5
IHRvCisgICAgICAgIGF2b2lkIGl0IGFzIG11Y2ggYXMgcG9zc2libGUuCisKKyAgICAgICAgU28g
Zm9yIHRoZXNlIHBvcnRzIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgaW5p
dGlhbGl6ZXMgdGhlIGRldmljZSBtb25pdG9yCisgICAgICAgIGRpcmVjdGx5IHdpdGhpbiB0aGUg
V2ViUHJvY2VzcywgdXNpbmcgY29kZSBpbXBvcnRlZCBmcm9tIHRoZSBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVw
ZGF0ZUNhcHR1cmVEZXZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDog
UHVibGljbHkgaW5oZXJpdCBmcm9tCisgICAgICAgIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciBzbyB0
aGF0IHdlIGNhbiB1c2UgdGhlIHdlYWtwdHIgZmFjdG9yeS4KKwogMjAyMS0wMy0yMyAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gWDExIGJ1
aWxkIGZpeGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJl
YW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwCmluZGV4IGZkNmFiNGRmNzJmMjFkMDk4OTc3MWE1MGEwZDgyNWQwMmU4YWZmMzYuLjU5ZjEy
YjRiNDdlMmMxNzgwMzFjYzI0NWNiYzUwMTY0ZjhjZTRjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0zNSw2ICszNSwxMiBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luRGF0YS5oPgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyNpbmNsdWRlIDxXZWJDb3Jl
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKworc3RhdGljIGNvbnN0IFNlY29uZHMgZGV2
aWNlQ2hhbmdlRGVib3VuY2VUaW1lckludGVydmFsIHsgMjAwX21zIH07CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDIsNiArNDgs
OSBAQCBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPiBmb2N1
c2VkQWN0aXZlV2luZG93ID0geyBBY3Rpdml0eQogCiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJiBwYWdl
KQogICAgIDogbV9wYWdlKHBhZ2UpCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICAsIG1fZGVib3Vu
Y2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCkKKyNlbmRpZgogewogfQogCkBAIC0xNDgs
NiArMTU3LDQ3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjplbnVt
ZXJhdGVNZWRpYURldmljZXMoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgbV9wYWdlLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFbnVtZXJhdGVNZWRpYURldmljZXNG
b3JGcmFtZSB7IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSktPmZyYW1lSUQoKSwgZG9j
dW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCksIGRvY3VtZW50LnRvcE9yaWdpbigpLmRhdGEo
KSB9LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBVU0UoR1NUUkVBTUVS
KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVwZGF0ZUNhcHR1cmVE
ZXZpY2VzKGJvb2wgc2hvdWxkTm90aWZ5KQoreworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcyhbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIHNob3VsZE5vdGlmeV0oYXV0byYmIG5ld0Rldmlj
ZXMpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGF1dG8gb2xkRGV2aWNlcyA9IFdURk1vdmUobV9jYXB0dXJlRGV2aWNlcyk7
CisgICAgICAgIG1fY2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOworCisgICAg
ICAgIGlmICghc2hvdWxkTm90aWZ5KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlm
IChtX2NhcHR1cmVEZXZpY2VzLnNpemUoKSA9PSBvbGREZXZpY2VzLnNpemUoKSkgeworICAgICAg
ICAgICAgYm9vbCBoYXZlQ2hhbmdlcyA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChhdXRvICZu
ZXdEZXZpY2UgOiBtX2NhcHR1cmVEZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgaWYgKG5ld0Rl
dmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
ICYmIG5ld0RldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
ICAgICAgICBhdXRvIGluZGV4ID0gb2xkRGV2aWNlcy5maW5kTWF0Y2hpbmcoWyZuZXdEZXZpY2Vd
IChhdXRvJiBvbGREZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld0Rldmlj
ZS5wZXJzaXN0ZW50SWQoKSA9PSBvbGREZXZpY2UucGVyc2lzdGVudElkKCkgJiYgbmV3RGV2aWNl
LmVuYWJsZWQoKSAhPSBvbGREZXZpY2UuZW5hYmxlZCgpOworICAgICAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKSB7CisgICAgICAgICAgICAg
ICAgICAgIGhhdmVDaGFuZ2VzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWhhdmVD
aGFuZ2VzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IFdoZW4gYSBkZXZpY2Ugd2l0aCBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgaXMgYXR0YWNoZWQgb3Ig
ZGV0YWNoZWQsIHRoZSBDYXB0dXJlRGV2aWNlIG5vdGlmaWNhdGlvbiBmb3IKKyAgICAgICAgLy8g
dGhlIGRpZmZlcmVudCBkZXZpY2VzIHdvbid0IGFycml2ZSBhdCB0aGUgc2FtZSB0aW1lIHNvIGRl
bGF5IGEgYml0IHNvIHdlIGNhbiBjb2FsZXNjZSB0aGUgY2FsbGJhY2tzLgorICAgICAgICBpZiAo
IW1fZGVib3VuY2VUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV9kZWJvdW5jZVRpbWVy
LnN0YXJ0T25lU2hvdChkZXZpY2VDaGFuZ2VEZWJvdW5jZVRpbWVySW50ZXJ2YWwpOworICAgIH0p
OworfQorI2VuZGlmCisKIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tl
biBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmFkZERldmljZUNoYW5nZU9ic2Vy
dmVyKEZ1bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKIHsKICAgICBhdXRvIGlkZW50aWZpZXIg
PSBVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW46OmdlbmVyYXRlKCk7
CkBAIC0xNTUsNyArMjA1LDE2IEBAIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2
ZXJUb2tlbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmFkCiAKICAgICBpZiAo
IW1fbW9uaXRvcmluZ0RldmljZUNoYW5nZSkgewogICAgICAgICBtX21vbml0b3JpbmdEZXZpY2VD
aGFuZ2UgPSB0cnVlOworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgICAgIHVwZGF0ZUNhcHR1cmVE
ZXZpY2VzKGZhbHNlKTsKKyAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuc2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcihbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyldKCkgeworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB3ZWFrVGhpcy0+dXBkYXRlQ2FwdHVyZURldmlj
ZXModHJ1ZSk7CisgICAgICAgIH0pOworI2Vsc2UKICAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6QmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKSk7CisjZW5k
aWYKICAgICB9CiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggMDQ3YWZhMjFjZmNlZTNkMDA5YmRlMzYx
Nzc2YzgyMTkzMGE0ZGRjYi4uZmY1MWM2ZTI5ODNhN2RiNDY4NGQ2NmQ0ZTYzZTlmNWZhYjExZDky
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAt
MjksMTIgKzI5LDEzIEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYv
UmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlOwogCi1jbGFzcyBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwcml2YXRlIFdlYkNvcmU6Ok1lZGlhQ2FuU3Rh
cnRMaXN0ZW5lciB7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBw
dWJsaWMgV2ViQ29yZTo6TWVkaWFDYW5TdGFydExpc3RlbmVyIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoV2ViUGFnZSYpOwpAQCAtNjUsNiArNjYsMTMgQEAgcHJpdmF0ZToKIAogICAg
IEhhc2hNYXA8V2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRv
a2VuLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2RldmljZUNoYW5nZU9ic2VydmVyTWFwOwogICAgIGJv
b2wgbV9tb25pdG9yaW5nRGV2aWNlQ2hhbmdlIHsgZmFsc2UgfTsKKworI2lmIFVTRShHU1RSRUFN
RVIpCisgICAgdm9pZCB1cGRhdGVDYXB0dXJlRGV2aWNlcyhib29sKTsKKworICAgIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBtX2NhcHR1cmVEZXZpY2VzOworICAgIFJ1bkxvb3A6OlRp
bWVyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9kZWJvdW5jZVRpbWVyOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424496</attachid>
            <date>2021-03-28 06:34:11 -0700</date>
            <delta_ts>2021-03-29 10:55:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210328063410.patch</filename>
            <type>text/plain</type>
            <size>7030</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZiODI5NDc4MzU5Nzc3MjM0
YzhlOTkzZjczYjM5ZmQ2ZWI3MjY3NGYuLmIzZGE5NTUzZGU1MGVlYzJkODgxMjBiZjBhYjQ2NTg2
NDdkMjRhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDMtMjMgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIENh
cHR1cmVEZXZpY2UgbW9uaXRvciB1c2VkIGZyb20gVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4ODgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHU3RyZWFtZXIgcG9ydHMgYWltIHRvIHJl
ZHVjZSB1c2FnZSBvZiB0aGUgR1N0cmVhbWVyIGxpYnJhcnkgaW4gdGhlIFVJUHJvY2VzcyBhbmQg
dGh1cworICAgICAgICBzaG91bGQgbm90IHJlbGF5IGNhcHR1cmUgZGV2aWNlY2hhbmdlIG1vbml0
b3JpbmcgdG8gdGhlIFVJUHJvY2Vzcy4gRm9yIHRoZSBsb25nIHRlcm0gd2UgcGxhbgorICAgICAg
ICB0byBtaWdyYXRlIG1lZGlhIHByb2Nlc3NpbmcgdG8gdGhlIEdQVVByb2Nlc3MgYnV0IGZvciBu
b3cgd2UgaGF2ZSB0byBtYWludGFpbiB0aGUgbWVkaWEKKyAgICAgICAgcGlwZWxpbmVzIGluIHRo
ZSBXZWJQcm9jZXNzLiBJbml0aWFsaXppbmcgR1N0cmVhbWVyIGluIG11bHRpcGxlIHByb2Nlc3Nl
cyAoaW5jbHVkaW5nIHRoZQorICAgICAgICBVSVByb2Nlc3MpIGhhcyBhIHNpZ25pZmljYW50IHBl
cmZvcm1hbmNlIGltcGFjdCBvbiBlbWJlZGRlZCBwbGF0Zm9ybXMsIHRoYXQncyB3aHkgd2UgdHJ5
IHRvCisgICAgICAgIGF2b2lkIGl0IGFzIG11Y2ggYXMgcG9zc2libGUuCisKKyAgICAgICAgU28g
Zm9yIHRoZXNlIHBvcnRzIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgaW5p
dGlhbGl6ZXMgdGhlIGRldmljZSBtb25pdG9yCisgICAgICAgIGRpcmVjdGx5IHdpdGhpbiB0aGUg
V2ViUHJvY2VzcywgdXNpbmcgY29kZSBpbXBvcnRlZCBmcm9tIHRoZSBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVw
ZGF0ZUNhcHR1cmVEZXZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDog
UHVibGljbHkgaW5oZXJpdCBmcm9tCisgICAgICAgIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciBzbyB0
aGF0IHdlIGNhbiB1c2UgdGhlIHdlYWtwdHIgZmFjdG9yeS4KKwogMjAyMS0wMy0yNyAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIERpc3BsYXlM
aW5rIGNvbXB1dGUgaXRzIGRpc3BsYXlOb21pbmFsRnJhbWVzUGVyU2Vjb25kIGp1c3Qgb25jZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCBm
ZDZhYjRkZjcyZjIxZDA5ODk3NzFhNTBhMGQ4MjVkMDJlOGFmZjM2Li5kYTY1ZTA3OGMzODNlNjNj
YTE5NjMzODViYzk1YmJlODk2YTVkZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMzUsNiArMzUsMTIgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRh
dGEuaD4KIAorI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmg+CisKK3N0YXRpYyBjb25zdCBTZWNvbmRzIGRldmljZUNoYW5nZURl
Ym91bmNlVGltZXJJbnRlcnZhbCB7IDIwMF9tcyB9OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQyLDYgKzQ4LDkgQEAgc3RhdGlj
IGNvbnN0ZXhwciBPcHRpb25TZXQ8QWN0aXZpdHlTdGF0ZTo6RmxhZz4gZm9jdXNlZEFjdGl2ZVdp
bmRvdyA9IHsgQWN0aXZpdHkKIAogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKICAgICA6IG1f
cGFnZShwYWdlKQorI2lmIFVTRShHU1RSRUFNRVIpCisgICAgLCBtX2RlYm91bmNlVGltZXIoUnVu
TG9vcDo6bWFpbigpLCB0aGlzLCAmVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpj
YXB0dXJlRGV2aWNlc0NoYW5nZWQpCisjZW5kaWYKIHsKIH0KIApAQCAtMTQ4LDYgKzE1Nyw0NyBA
QCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFE
ZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudAogICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUgeyBX
ZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpLT5mcmFtZUlEKCksIGRvY3VtZW50LnNlY3Vy
aXR5T3JpZ2luKCkuZGF0YSgpLCBkb2N1bWVudC50b3BPcmlnaW4oKS5kYXRhKCkgfSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91
bGROb3RpZnkgc2hvdWxkTm90aWZ5KQoreworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcyhbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIHNob3VsZE5vdGlmeV0oYXV0byYmIG5ld0RldmljZXMp
IG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGF1dG8gb2xkRGV2aWNlcyA9IFdURk1vdmUobV9jYXB0dXJlRGV2aWNlcyk7Cisg
ICAgICAgIG1fY2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOworCisgICAgICAg
IGlmIChzaG91bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5OjpObykKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBpZiAobV9jYXB0dXJlRGV2aWNlcy5zaXplKCkgPT0gb2xkRGV2aWNlcy5z
aXplKCkpIHsKKyAgICAgICAgICAgIGJvb2wgaGF2ZUNoYW5nZXMgPSBmYWxzZTsKKyAgICAgICAg
ICAgIGZvciAoYXV0byAmbmV3RGV2aWNlIDogbV9jYXB0dXJlRGV2aWNlcykgeworICAgICAgICAg
ICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYSAmJiBuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICAgICAgYXV0byBpbmRleCA9IG9sZERldmljZXMuZmluZE1hdGNo
aW5nKFsmbmV3RGV2aWNlXSAoYXV0byYgb2xkRGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgPT0gb2xkRGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xkRGV2aWNlLmVuYWJsZWQoKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkg
eworICAgICAgICAgICAgICAgICAgICBoYXZlQ2hhbmdlcyA9IHRydWU7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKCFoYXZlQ2hhbmdlcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICAvLyBXaGVuIGEgZGV2aWNlIHdpdGggY2FtZXJhIGFuZCBtaWNyb3Bob25l
IGlzIGF0dGFjaGVkIG9yIGRldGFjaGVkLCB0aGUgQ2FwdHVyZURldmljZSBub3RpZmljYXRpb24g
Zm9yCisgICAgICAgIC8vIHRoZSBkaWZmZXJlbnQgZGV2aWNlcyB3b24ndCBhcnJpdmUgYXQgdGhl
IHNhbWUgdGltZSBzbyBkZWxheSBhIGJpdCBzbyB3ZSBjYW4gY29hbGVzY2UgdGhlIGNhbGxiYWNr
cy4KKyAgICAgICAgaWYgKCFtX2RlYm91bmNlVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgICAg
IG1fZGVib3VuY2VUaW1lci5zdGFydE9uZVNob3QoZGV2aWNlQ2hhbmdlRGVib3VuY2VUaW1lcklu
dGVydmFsKTsKKyAgICB9KTsKK30KKyNlbmRpZgorCiBVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNo
YW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjphZGRE
ZXZpY2VDaGFuZ2VPYnNlcnZlcihGdW5jdGlvbjx2b2lkKCk+JiYgb2JzZXJ2ZXIpCiB7CiAgICAg
YXV0byBpZGVudGlmaWVyID0gVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRv
a2VuOjpnZW5lcmF0ZSgpOwpAQCAtMTU1LDcgKzIwNSwxNiBAQCBVc2VyTWVkaWFDbGllbnQ6OkRl
dmljZUNoYW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjphZAogCiAgICAgaWYgKCFtX21vbml0b3JpbmdEZXZpY2VDaGFuZ2UpIHsKICAgICAgICAgbV9t
b25pdG9yaW5nRGV2aWNlQ2hhbmdlID0gdHJ1ZTsKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgICAg
ICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Ok5vKTsKKyAgICAgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldKCkgeworICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB3
ZWFrVGhpcy0+dXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5OjpZZXMpOworICAgICAg
ICB9KTsKKyNlbHNlCiAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkpOworI2VuZGlmCiAgICAgfQogICAgIHJl
dHVybiBpZGVudGlmaWVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oCmluZGV4IDA0N2FmYTIxY2ZjZWUzZDAwOWJkZTM2MTc3NmM4MjE5MzBhNGRkY2Iu
LmNlMzFjZDQxMjVjMTRkZDkyZjA4ZDQ5M2NlMmEyYmU4OWYyNTcwZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTI5LDEyICsyOSwxMyBAQAog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyIDogcHJpdmF0ZSBXZWJDb3JlOjpNZWRpYUNhblN0YXJ0TGlzdGVuZXIgeworY2xh
c3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6Ok1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBh
Z2UmKTsKQEAgLTY1LDYgKzY2LDE0IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6
OlVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiwgRnVuY3Rpb248dm9p
ZCgpPj4gbV9kZXZpY2VDaGFuZ2VPYnNlcnZlck1hcDsKICAgICBib29sIG1fbW9uaXRvcmluZ0Rl
dmljZUNoYW5nZSB7IGZhbHNlIH07CisKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIGVudW0gY2xh
c3MgU2hvdWxkTm90aWZ5IDogYm9vbCB7IFllcywgTm8gfTsKKyAgICB2b2lkIHVwZGF0ZUNhcHR1
cmVEZXZpY2VzKFNob3VsZE5vdGlmeSk7CisKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4gbV9jYXB0dXJlRGV2aWNlczsKKyAgICBSdW5Mb29wOjpUaW1lcjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fZGVib3VuY2VUaW1lcjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424547</attachid>
            <date>2021-03-29 10:55:55 -0700</date>
            <delta_ts>2021-04-07 09:10:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210329105553.patch</filename>
            <type>text/plain</type>
            <size>16307</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJiOWVlODU1MGQzMDMzOTc2
ZjY2NzdjNzRmOTMxMmMxNWJmMDNjMTAuLmRjYWVmZTk5ODJiOGMwMDBlNDFlZDIyMDI5Y2RlYWQ0
NGRiY2U1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDMtMjMgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdIENh
cHR1cmVEZXZpY2UgbW9uaXRvciB1c2VkIGZyb20gVUlQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI4ODgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHU3RyZWFtZXIgcG9ydHMgYWltIHRvIHJl
ZHVjZSB1c2FnZSBvZiB0aGUgR1N0cmVhbWVyIGxpYnJhcnkgaW4gdGhlIFVJUHJvY2VzcyBhbmQg
dGh1cworICAgICAgICBzaG91bGQgbm90IHJlbGF5IGNhcHR1cmUgZGV2aWNlY2hhbmdlIG1vbml0
b3JpbmcgdG8gdGhlIFVJUHJvY2Vzcy4gRm9yIHRoZSBsb25nIHRlcm0gd2UgcGxhbgorICAgICAg
ICB0byBtaWdyYXRlIG1lZGlhIHByb2Nlc3NpbmcgdG8gdGhlIEdQVVByb2Nlc3MgYnV0IGZvciBu
b3cgd2UgaGF2ZSB0byBtYWludGFpbiB0aGUgbWVkaWEKKyAgICAgICAgcGlwZWxpbmVzIGluIHRo
ZSBXZWJQcm9jZXNzLiBJbml0aWFsaXppbmcgR1N0cmVhbWVyIGluIG11bHRpcGxlIHByb2Nlc3Nl
cyAoaW5jbHVkaW5nIHRoZQorICAgICAgICBVSVByb2Nlc3MpIGhhcyBhIHNpZ25pZmljYW50IHBl
cmZvcm1hbmNlIGltcGFjdCBvbiBlbWJlZGRlZCBwbGF0Zm9ybXMsIHRoYXQncyB3aHkgd2UgdHJ5
IHRvCisgICAgICAgIGF2b2lkIGl0IGFzIG11Y2ggYXMgcG9zc2libGUuCisKKyAgICAgICAgU28g
Zm9yIHRoZXNlIHBvcnRzIHRoZSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgaW5p
dGlhbGl6ZXMgdGhlIGRldmljZSBtb25pdG9yCisgICAgICAgIGRpcmVjdGx5IHdpdGhpbiB0aGUg
V2ViUHJvY2VzcywgdXNpbmcgY29kZSBpbXBvcnRlZCBmcm9tIHRoZSBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVw
ZGF0ZUNhcHR1cmVEZXZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDog
UHVibGljbHkgaW5oZXJpdCBmcm9tCisgICAgICAgIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciBzbyB0
aGF0IHdlIGNhbiB1c2UgdGhlIHdlYWtwdHIgZmFjdG9yeS4KKwogMjAyMS0wMy0yOCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBQbHVtYiBEaXNwbGF5
VXBkYXRlIHRocm91Z2ggdGhlIGRpc3BsYXkgcmVmcmVzaCBtb25pdG9ycwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCmluZGV4IDNm
MGMyMWY4ZWFlMzg2NGM2OTkyYjBiNGQwM2NhNGY0NzE2MmJiOTguLjE1YzZkNzNmNjIxYzQ5ZWZm
ODgwZTliODllZWRlY2YwYWQ4NWYwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKQEAgLTE0MCw2ICsxNDAsMjYgQEAgcHJv
dGVjdGVkOgogICAgIGJvb2wgbV9pc01vY2tEZXZpY2UgeyBmYWxzZSB9OwogfTsKIAoraW5saW5l
IGJvb2wgaGF2ZURldmljZXNDaGFuZ2VkKGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgb2xk
RGV2aWNlcywgY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBuZXdEZXZpY2VzKQoreworICAg
IGlmIChvbGREZXZpY2VzLnNpemUoKSAhPSBuZXdEZXZpY2VzLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBmb3IgKGF1dG8mIG5ld0RldmljZSA6IG5ld0RldmljZXMpIHsKKyAg
ICAgICAgaWYgKG5ld0RldmljZS50eXBlKCkgIT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
Q2FtZXJhICYmIG5ld0RldmljZS50eXBlKCkgIT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8gaW5kZXgg
PSBvbGREZXZpY2VzLmZpbmRNYXRjaGluZyhbJm5ld0RldmljZV0oYXV0byYgb2xkRGV2aWNlKSB7
CisgICAgICAgICAgICByZXR1cm4gbmV3RGV2aWNlLnBlcnNpc3RlbnRJZCgpID09IG9sZERldmlj
ZS5wZXJzaXN0ZW50SWQoKSAmJiBuZXdEZXZpY2UuZW5hYmxlZCgpICE9IG9sZERldmljZS5lbmFi
bGVkKCk7CisgICAgICAgIH0pOworCisgICAgICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggZGM1NGQ0YTBlMTBhOWNjYjY4M2VhYzRh
NmNjYmYzMTkxYTNlZjdjNi4uYjA5OTkwMzQwNTNmZjlkZGQ1YmQ4NjA0MGU2MjgyNDg5MGUyZjk2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTQyLDYgKzQyLDggQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgU2Vjb25kcyBkZXZpY2VDaGFu
Z2VEZWJvdW5jZVRpbWVySW50ZXJ2YWwgeyAyMDBfbXMgfTsKKwogUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlciYgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtNTAsNiArNTIsNyBAQCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKQogfQogCiBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKCkKKyAg
ICA6IG1fZGVib3VuY2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2aWNlc0NoYW5nZWRPYnNlcnZlcnMpCiB7CiAgICAgbV9z
dXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24odHJ1ZSk7CiAg
ICAgbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c1dpZHRoKHRydWUpOwpAQCAtMTg4
LDE4ICsxOTEsMzkgQEAgU3RyaW5nIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Omhhc2hTdHJp
bmdXaXRoU2FsdChjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBTdHIKICAgICByZXR1cm4gU0hBMTo6
aGV4RGlnZXN0KGRpZ2VzdCkuZGF0YSgpOwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNldERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYg
b2JzZXJ2ZXIpCitVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIGF1dG8gaWRlbnRpZmllciA9IFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2Jz
ZXJ2ZXJUb2tlbjo6Z2VuZXJhdGUoKTsKKyAgICBtX2RldmljZUNoYW5nZU9ic2VydmVyTWFwLmFk
ZChpZGVudGlmaWVyLCBXVEZNb3ZlKG9ic2VydmVyKSk7CisgICAgcmV0dXJuIGlkZW50aWZpZXI7
Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6cmVtb3ZlRGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcihVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gdG9r
ZW4pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQoIW1fZGV2aWNl
Q2hhbmdlZE9ic2VydmVyKTsKLSAgICBtX2RldmljZUNoYW5nZWRPYnNlcnZlciA9IFdURk1vdmUo
b2JzZXJ2ZXIpOworICAgIGJvb2wgd2FzUmVtb3ZlZCA9IG1fZGV2aWNlQ2hhbmdlT2JzZXJ2ZXJN
YXAucmVtb3ZlKHRva2VuKTsKKyAgICBBU1NFUlRfVU5VU0VEKHdhc1JlbW92ZWQsIHdhc1JlbW92
ZWQpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAobV9kZXZp
Y2VDaGFuZ2VkT2JzZXJ2ZXIpCi0gICAgICAgIG1fZGV2aWNlQ2hhbmdlZE9ic2VydmVyKCk7CisK
KyAgICAvLyBXaGVuIGEgZGV2aWNlIHdpdGggY2FtZXJhIGFuZCBtaWNyb3Bob25lIGlzIGF0dGFj
aGVkIG9yIGRldGFjaGVkLCB0aGUgQ2FwdHVyZURldmljZSBub3RpZmljYXRpb24gZm9yCisgICAg
Ly8gdGhlIGRpZmZlcmVudCBkZXZpY2VzIHdvbid0IGFycml2ZSBhdCB0aGUgc2FtZSB0aW1lIHNv
IGRlbGF5IGEgYml0IHNvIHdlIGNhbiBjb2FsZXNjZSB0aGUgY2FsbGJhY2tzLgorICAgIGlmICgh
bV9kZWJvdW5jZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fZGVib3VuY2VUaW1lci5zdGFy
dE9uZVNob3QoZGV2aWNlQ2hhbmdlRGVib3VuY2VUaW1lckludGVydmFsKTsKK30KKwordm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2aWNlc0NoYW5nZWRPYnNlcnZlcnMo
KQoreworICAgIGF1dG8gaWRlbnRpZmllcnMgPSBtX2RldmljZUNoYW5nZU9ic2VydmVyTWFwLmtl
eXMoKTsKKyAgICBmb3IgKGF1dG8mIGlkZW50aWZpZXIgOiBpZGVudGlmaWVycykgeworICAgICAg
ICBhdXRvIGl0ZXJhdG9yID0gbV9kZXZpY2VDaGFuZ2VPYnNlcnZlck1hcC5maW5kKGlkZW50aWZp
ZXIpOworICAgICAgICBpZiAoaXRlcmF0b3IgIT0gbV9kZXZpY2VDaGFuZ2VPYnNlcnZlck1hcC5l
bmQoKSkKKyAgICAgICAgICAgIChpdGVyYXRvci0+dmFsdWUpKCk7CisgICAgfQogfQogCiB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldERpc3BsYXlNZWRpYURldmljZXMoY29uc3Qg
TWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0LCBWZWN0b3I8RGV2aWNlSW5mbz4mIGRpYXBsYXlE
ZXZpY2VJbmZvLCBTdHJpbmcmIGZpcnN0SW52YWxpZENvbnN0cmFpbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmgKaW5kZXggNjk1NjFiMTliYTg0NTUxN2I3NDQyNDI0NTY4NmZhMzY0ZDRk
NDU5Mi4uYmUyNjJmNTU4OTYwZTJlYjM4OWM3YTNlZDc1NWJhY2I2YjlmOThmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtMzksOCArMzksMTAgQEAKICNpbmNsdWRlICJSZWFs
dGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
aCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaCIK
KyNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODQs
NyArODYsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaGFzaFN0cmlu
Z1dpdGhTYWx0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgaGFzaFNhbHQpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVu
Y3Rpb248dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBVc2VyTWVkaWFDbGllbnQ6OkRl
dmljZUNoYW5nZU9ic2VydmVyVG9rZW4gYWRkRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVEZXZpY2Vz
Q2hhbmdlZE9ic2VydmVyKFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tl
bik7CiAKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogCkBAIC0xMDgsNyArMTEx
LDEwIEBAIHByaXZhdGU6CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMgbV9zdXBwb3J0ZWRDb25zdHJhaW50czsKIAotICAgIFdURjo6RnVuY3Rpb248dm9pZCgp
PiBtX2RldmljZUNoYW5nZWRPYnNlcnZlcjsKKyAgICBSdW5Mb29wOjpUaW1lcjxSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyPiBtX2RlYm91bmNlVGltZXI7CisgICAgdm9pZCB0cmlnZ2VyRGV2aWNl
c0NoYW5nZWRPYnNlcnZlcnMoKTsKKworICAgIEhhc2hNYXA8VXNlck1lZGlhQ2xpZW50OjpEZXZp
Y2VDaGFuZ2VPYnNlcnZlclRva2VuLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2RldmljZUNoYW5nZU9i
c2VydmVyTWFwOwogCiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSogbV9hdWRpb0NhcHR1cmVGYWN0
b3J5T3ZlcnJpZGUgeyBudWxscHRyIH07CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSogbV92aWRl
b0NhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggOGZkNThjZTRh
ZDQyY2FlMTYwYTkwNGM2NTAyN2RlYWNlN2MyNTA4MC4uMDFmZmY2YmY3YWM1MTdiOTQ4NWY2NGY3
MWFiNTgyZDg4NmE2OTIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtNDEsOCArNDEsNiBAQCBzdGF0aWMgY29uc3Qg
QVNDSUlMaXRlcmFsIGFwcGxlQ2FtZXJhU2VydmljZVBhdGggeyAiY29tLmFwcGxlLmFwcGxlY2Ft
ZXJhZCJfcyB9Owogc3RhdGljIGNvbnN0IEFTQ0lJTGl0ZXJhbCBhZGRpdGlvbmFsQXBwbGVDYW1l
cmFTZXJ2aWNlUGF0aCB7ICJjb20uYXBwbGUuYXBwbGVoMTNjYW1lcmFkIl9zIH07CiAjZW5kaWYK
IAotc3RhdGljIGNvbnN0IFNlY29uZHMgZGV2aWNlQ2hhbmdlRGVib3VuY2VUaW1lckludGVydmFs
IHsgMjAwX21zIH07Ci0KIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyJiBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlcjo6c2luZ2xldG9uKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VXNlck1l
ZGlhUHJvY2Vzc01hbmFnZXI+IG1hbmFnZXI7CkBAIC01MCw3ICs0OCw2IEBAIFVzZXJNZWRpYVBy
b2Nlc3NNYW5hZ2VyJiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkKIH0KIAog
VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyKCkKLSAgICA6
IG1fZGVib3VuY2VUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlcjo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKQogewogfQogCkBAIC0yMDUsNiArMjAyLDcg
QEAgdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2V0Q2FwdHVyZUVuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpmb3JF
YWNoKFtdKGF1dG8mIHByb3h5KSB7CiAgICAgICAgIHByb3h5LnN0b3BDYXB0dXJlKCk7CiAgICAg
fSk7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
cmVtb3ZlRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihtX2RldmljZUNoYW5nZU9ic2VydmVyVG9rZW4p
OwogfQogCiB2b2lkIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0NoYW5n
ZWQoKQpAQCAtMjE2LDM3ICsyMTQsMTYgQEAgdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6
Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIAogdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6
dXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5IHNob3VsZE5vdGlmeSkKIHsKLSAgICBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRNZWRpYVN0
cmVhbURldmljZXMoW3RoaXMsIHNob3VsZE5vdGlmeV0gKGF1dG8mJiBuZXdEZXZpY2VzKSBtdXRh
YmxlIHsKLSAgICAgICAgYXV0byBvbGREZXZpY2VzID0gV1RGTW92ZShtX2NhcHR1cmVEZXZpY2Vz
KTsKLSAgICAgICAgbV9jYXB0dXJlRGV2aWNlcyA9IFdURk1vdmUobmV3RGV2aWNlcyk7Ci0KLSAg
ICAgICAgaWYgKHNob3VsZE5vdGlmeSA9PSBTaG91bGROb3RpZnk6Ok5vKQorICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2
aWNlcyhbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIHNob3VsZE5vdGlmeV0o
YXV0byYmIG5ld0RldmljZXMpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChtX2NhcHR1cmVEZXZpY2VzLnNpemUoKSA9
PSBvbGREZXZpY2VzLnNpemUoKSkgewotICAgICAgICAgICAgYm9vbCBoYXZlQ2hhbmdlcyA9IGZh
bHNlOwotICAgICAgICAgICAgZm9yIChhdXRvICZuZXdEZXZpY2UgOiBtX2NhcHR1cmVEZXZpY2Vz
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5ld0RldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhICYmIG5ld0RldmljZS50eXBlKCkgIT0gV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgICAgICBhdXRvIGluZGV4ID0gb2xkRGV2
aWNlcy5maW5kTWF0Y2hpbmcoWyZuZXdEZXZpY2VdIChhdXRvJiBvbGREZXZpY2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSA9PSBvbGREZXZp
Y2UucGVyc2lzdGVudElkKCkgJiYgbmV3RGV2aWNlLmVuYWJsZWQoKSAhPSBvbGREZXZpY2UuZW5h
YmxlZCgpOwotICAgICAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICAgICAgaWYgKGluZGV4
ID09IG5vdEZvdW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIGhhdmVDaGFuZ2VzID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBpZiAoIWhhdmVDaGFuZ2VzKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQorICAgICAgICBpZiAoIWhhdmVEZXZpY2VzQ2hhbmdlZChtX2NhcHR1
cmVEZXZpY2VzLCBuZXdEZXZpY2VzKSkKKyAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAv
LyBXaGVuIGEgZGV2aWNlIHdpdGggY2FtZXJhIGFuZCBtaWNyb3Bob25lIGlzIGF0dGFjaGVkIG9y
IGRldGFjaGVkLCB0aGUgQ2FwdHVyZURldmljZSBub3RpZmljYXRpb24gZm9yCi0gICAgICAgIC8v
IHRoZSBkaWZmZXJlbnQgZGV2aWNlcyB3b24ndCBhcnJpdmUgYXQgdGhlIHNhbWUgdGltZSBzbyBk
ZWxheSBhIGJpdCBzbyB3ZSBjYW4gY29hbGVzY2UgdGhlIGNhbGxiYWNrcy4KLSAgICAgICAgaWYg
KCFtX2RlYm91bmNlVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fZGVib3VuY2VUaW1l
ci5zdGFydE9uZVNob3QoZGV2aWNlQ2hhbmdlRGVib3VuY2VUaW1lckludGVydmFsKTsKKyAgICAg
ICAgbV9jYXB0dXJlRGV2aWNlcyA9IFdURk1vdmUobmV3RGV2aWNlcyk7CisgICAgICAgIGlmIChz
aG91bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5OjpZZXMpCisgICAgICAgICAgICBjYXB0dXJlRGV2
aWNlc0NoYW5nZWQoKTsKICAgICB9KTsKIH0KIApAQCAtMjU3LDcgKzIzNCw3IEBAIHZvaWQgVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXI6OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW3RoaXNdIHsKICAgICAgICAgdXBkYXRlQ2FwdHVy
ZURldmljZXMoU2hvdWxkTm90aWZ5OjpObyk7CiAKLSAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcihb
dGhpc10oKSB7CisgICAgICAgIG1fZGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiA9IFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmFkZERldmljZXNDaGFuZ2Vk
T2JzZXJ2ZXIoW3RoaXNdKCkgewogICAgICAgICAgICAgdXBkYXRlQ2FwdHVyZURldmljZXMoU2hv
dWxkTm90aWZ5OjpZZXMpOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oCmluZGV4IDZiOTg0ZDE0Zjdk
YzYwNjA2NzlkMzE2NmE3MGUwZmY4ZTM2M2Y4ZjYuLjUxOTNiMjU0YWEzMjc3YmMzYTZhYmQ2ODlj
MmZhMTIzOWNkYzkwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUHJvY2Vzc01hbmFnZXIuaApAQCAtMjMsMTMgKzIzLDE0IEBACiAjaW5jbHVkZSAiVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nh
cHR1cmVEZXZpY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+Ci0jaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYUNsaWVudC5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJQcm9jZXNzUHJveHk7CiAKLWNsYXNzIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyIHsKK2Ns
YXNzIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyPiB7CiBwdWJsaWM6CiAKICAgICBzdGF0aWMgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXImIHNpbmdsZXRvbigpOwpAQCAtNDgsMTQgKzQ5LDE0IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCk7CiAKIHByaXZhdGU6Ci0gICAg
ZW51bSBjbGFzcyBTaG91bGROb3RpZnkgeyBZZXMsIE5vIH07CisgICAgZW51bSBjbGFzcyBTaG91
bGROb3RpZnkgOiBib29sIHsgTm8sIFllcyB9OwogICAgIHZvaWQgdXBkYXRlQ2FwdHVyZURldmlj
ZXMoU2hvdWxkTm90aWZ5KTsKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogCiAg
ICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fY2FwdHVyZURldmljZXM7Ci0gICAg
UnVuTG9vcDo6VGltZXI8VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI+IG1fZGVib3VuY2VUaW1lcjsK
ICAgICBib29sIG1fY2FwdHVyZUVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2RlbnlOZXh0
UmVxdWVzdCB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50OjpEZXZpY2VD
aGFuZ2VPYnNlcnZlclRva2VuIG1fZGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbjsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAppbmRleCBmZDZhYjRkZjcyZjIxZDA5ODk3NzFhNTBhMGQ4MjVkMDJlOGFm
ZjM2Li5iMTc5NzM4YmJjMWVlN2JhOTEzMzFiODQ5ZDExYmQwMzhiMmZhNGRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFT
dHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMzUsNiArMzUs
MTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KIAorI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVk
ZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTQ4LDYgKzE1Miwy
MyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVk
aWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudAogICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUg
eyBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpLT5mcmFtZUlEKCksIGRvY3VtZW50LnNl
Y3VyaXR5T3JpZ2luKCkuZGF0YSgpLCBkb2N1bWVudC50b3BPcmlnaW4oKS5kYXRhKCkgfSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyhT
aG91bGROb3RpZnkgc2hvdWxkTm90aWZ5KQoreworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcyhbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMsIHNob3VsZE5vdGlmeV0oYXV0byYmIG5ld0Rldmlj
ZXMpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGlmICghaGF2ZURldmljZXNDaGFuZ2VkKG1fY2FwdHVyZURldmljZXMsIG5l
d0RldmljZXMpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY2FwdHVyZURldmlj
ZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOworICAgICAgICBpZiAoc2hvdWxkTm90aWZ5ID09IFNo
b3VsZE5vdGlmeTo6WWVzKQorICAgICAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7Cisg
ICAgfSk7Cit9CisjZW5kaWYKKwogVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZl
clRva2VuIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6YWRkRGV2aWNlQ2hhbmdl
T2JzZXJ2ZXIoRnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQogewogICAgIGF1dG8gaWRlbnRp
ZmllciA9IFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbjo6Z2VuZXJh
dGUoKTsKQEAgLTE1NSw3ICsxNzYsMTYgQEAgVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VP
YnNlcnZlclRva2VuIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6YWQKIAogICAg
IGlmICghbV9tb25pdG9yaW5nRGV2aWNlQ2hhbmdlKSB7CiAgICAgICAgIG1fbW9uaXRvcmluZ0Rl
dmljZUNoYW5nZSA9IHRydWU7CisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICAgICAgdXBkYXRlQ2Fw
dHVyZURldmljZXMoU2hvdWxkTm90aWZ5OjpObyk7CisgICAgICAgIG1fZGV2aWNlQ2hhbmdlT2Jz
ZXJ2ZXJUb2tlbiA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLmFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRo
aXMpXSgpIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgd2Vha1RoaXMtPnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5v
dGlmeTo6WWVzKTsKKyAgICAgICAgfSk7CisjZWxzZQogICAgICAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpKTsKKyNl
bmRpZgogICAgIH0KICAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCAwNDdhZmEyMWNmY2VlM2QwMDliZGUz
NjE3NzZjODIxOTMwYTRkZGNiLi4zMjA5ZTJmNWQ2NzY4MmFkZDE2OWM0ZjdmN2MxN2MxMzdhZWM2
NTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBA
IC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlOwogCi1j
bGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwcml2YXRlIFdlYkNvcmU6
Ok1lZGlhQ2FuU3RhcnRMaXN0ZW5lciB7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFDYW5TdGFydExpc3RlbmVyIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYpOwpAQCAtNjUsNiArNjUsMTQgQEAgcHJp
dmF0ZToKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFu
Z2VPYnNlcnZlclRva2VuLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2RldmljZUNoYW5nZU9ic2VydmVy
TWFwOwogICAgIGJvb2wgbV9tb25pdG9yaW5nRGV2aWNlQ2hhbmdlIHsgZmFsc2UgfTsKKworI2lm
IFVTRShHU1RSRUFNRVIpCisgICAgZW51bSBjbGFzcyBTaG91bGROb3RpZnkgOiBib29sIHsgTm8s
IFllcyB9OworICAgIHZvaWQgdXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5KTsKKwor
ICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBtX2NhcHR1cmVEZXZpY2VzOworICAg
IFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBtX2Rl
dmljZUNoYW5nZU9ic2VydmVyVG9rZW47CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425406</attachid>
            <date>2021-04-07 09:10:08 -0700</date>
            <delta_ts>2021-04-08 06:14:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210407091006.patch</filename>
            <type>text/plain</type>
            <size>19889</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM5ZTU4Y2Q4NmNkYTEz
YzY3YzRiNDA3ZDkxNjAxNmMxZDZmMjQyYS4uNGUyMjI0Mzg2Nzc2YTA3ZTAwYWExNWQ2YTBjNWZl
MDAxMzViMDMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA0LTA3ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBDYXB0dXJlRGV2aWNlIG1vbml0b3IgdXNlZCBmcm9tIFVJUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyODg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZGV2aWNlIG9ic2Vy
dmVyIGluZnJhc3RydWN0dXJlIGZyb20gdGhlIFdlYktpdCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ciB0byB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci4KKworICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmhhdmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok9ic2VydmVyOjp+T2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlc0No
YW5nZWRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpyZW1vdmVEZXZpY2VzQ2hhbmdlZE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXI6OmRldmljZXNDaGFuZ2Vk
KToKKwogMjAyMS0wNC0wNyAgSW1hbm9sIEZlcm5hbmRleiAgPGlmZXJuYW5kZXpAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVc2UgZnJhbWVEYXRhIGluc3RlYWQgb2Ygc2NoZWR1bGVPbk5leHRGcmFt
ZSBjYWxscyBpbiBXZWJGYWtlWFJEZXZpY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTA4NzgxOTVhOWU1ZjdlMjU0
ZThhMGJhZjA2ZjJkMmFkOWMxZWY2OC4uZWU4Zjc1YTAzZTVlYTYzYjg4Mzc1YmM2N2IyNWVmMDJi
MzdjNjMzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMS0wNC0wNyAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl0gQ2Fw
dHVyZURldmljZSBtb25pdG9yIHVzZWQgZnJvbSBVSVByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjg4OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdTdHJlYW1lciBwb3J0cyBhaW0gdG8gcmVk
dWNlIHVzYWdlIG9mIHRoZSBHU3RyZWFtZXIgbGlicmFyeSBpbiB0aGUgVUlQcm9jZXNzIGFuZCB0
aHVzCisgICAgICAgIHNob3VsZCBub3QgcmVsYXkgY2FwdHVyZSBkZXZpY2VjaGFuZ2UgbW9uaXRv
cmluZyB0byB0aGUgVUlQcm9jZXNzLiBGb3IgdGhlIGxvbmcgdGVybSB3ZSBwbGFuCisgICAgICAg
IHRvIG1pZ3JhdGUgbWVkaWEgcHJvY2Vzc2luZyB0byB0aGUgR1BVUHJvY2VzcyBidXQgZm9yIG5v
dyB3ZSBoYXZlIHRvIG1haW50YWluIHRoZSBtZWRpYQorICAgICAgICBwaXBlbGluZXMgaW4gdGhl
IFdlYlByb2Nlc3MuIEluaXRpYWxpemluZyBHU3RyZWFtZXIgaW4gbXVsdGlwbGUgcHJvY2Vzc2Vz
IChpbmNsdWRpbmcgdGhlCisgICAgICAgIFVJUHJvY2VzcykgaGFzIGEgc2lnbmlmaWNhbnQgcGVy
Zm9ybWFuY2UgaW1wYWN0IG9uIGVtYmVkZGVkIHBsYXRmb3JtcywgdGhhdCdzIHdoeSB3ZSB0cnkg
dG8KKyAgICAgICAgYXZvaWQgaXQgYXMgbXVjaCBhcyBwb3NzaWJsZS4KKworICAgICAgICBUaGUg
ZGV2aWNlIG1vbml0b3JpbmcgY29kZSBmcm9tIHRoZSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlciB3
YXMgcGFydGx5IG1vdmVkIHRvIHRoZQorICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
IHNvIHRoYXQgaXQgY2FuIGJlIGVhc2lseSByZXVzZWQgYnkgR1N0cmVhbWVyIHBvcnRzIGZyb20g
dGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2
aWNlcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpkZXZpY2Vz
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpiZWdp
bk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcyk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6dXBkYXRlQ2FwdHVyZURldmljZXMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OkRldmljZU9ic2VydmVyOjpkZXZpY2VzQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6YWRk
RGV2aWNlQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0v
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6RGV2aWNlT2JzZXJ2ZXI6OkRldmljZU9i
c2VydmVyKToKKwogMjAyMS0wNC0wNyAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdu
b21lLm9yZz4KIAogICAgICAgICBbV1BFXVtHVEtdIE51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSB3
aGVuIGNoaWxkIHByb2Nlc3MgZXhpdHMgaW1tZWRpYXRlbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaAppbmRleCAzZjBjMjFmOGVh
ZTM4NjRjNjk5MmIwYjRkMDNjYTRmNDcxNjJiYjk4Li4xNWM2ZDczZjYyMWM0OWVmZjg4MGU5Yjg5
ZWVkZWNmMGFkODVmMDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCkBAIC0xNDAsNiArMTQwLDI2IEBAIHByb3RlY3RlZDoK
ICAgICBib29sIG1faXNNb2NrRGV2aWNlIHsgZmFsc2UgfTsKIH07CiAKK2lubGluZSBib29sIGhh
dmVEZXZpY2VzQ2hhbmdlZChjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG9sZERldmljZXMs
IGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgbmV3RGV2aWNlcykKK3sKKyAgICBpZiAob2xk
RGV2aWNlcy5zaXplKCkgIT0gbmV3RGV2aWNlcy5zaXplKCkpCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgZm9yIChhdXRvJiBuZXdEZXZpY2UgOiBuZXdEZXZpY2VzKSB7CisgICAgICAgIGlm
IChuZXdEZXZpY2UudHlwZSgpICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAm
JiBuZXdEZXZpY2UudHlwZSgpICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhv
bmUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBhdXRvIGluZGV4ID0gb2xkRGV2
aWNlcy5maW5kTWF0Y2hpbmcoWyZuZXdEZXZpY2VdKGF1dG8mIG9sZERldmljZSkgeworICAgICAg
ICAgICAgcmV0dXJuIG5ld0RldmljZS5wZXJzaXN0ZW50SWQoKSA9PSBvbGREZXZpY2UucGVyc2lz
dGVudElkKCkgJiYgbmV3RGV2aWNlLmVuYWJsZWQoKSAhPSBvbGREZXZpY2UuZW5hYmxlZCgpOwor
ICAgICAgICB9KTsKKworICAgICAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGRjNTRkNGEwZTEwYTljY2I2ODNlYWM0YTZjY2JmMzE5
MWEzZWY3YzYuLjFlNzkwNDhjZTljYjliZmRiYTk1YjUyZTA0ZTcyMWMwZDNkZjMxNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC00Miw2ICs0Miw4IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGNvbnN0IFNlY29uZHMgZGV2aWNlQ2hhbmdlRGVib3Vu
Y2VUaW1lckludGVydmFsIHsgMjAwX21zIH07CisKIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIm
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKQEAgLTUwLDYgKzUyLDcgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ciYgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkKIH0KIAogUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpCisgICAgOiBtX2Rl
Ym91bmNlVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6dHJpZ2dlckRldmljZXNDaGFuZ2VkT2JzZXJ2ZXJzKQogewogICAgIG1fc3VwcG9ydGVk
Q29uc3RyYWludHMuc2V0U3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKHRydWUpOwogICAgIG1fc3Vw
cG9ydGVkQ29uc3RyYWludHMuc2V0U3VwcG9ydHNXaWR0aCh0cnVlKTsKQEAgLTYzLDYgKzY2LDEw
IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIo
KQogCiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cigpID0gZGVmYXVsdDsKIAorUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXI6On5P
YnNlcnZlcigpCit7Cit9CisKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRl
TWVkaWFTdHJlYW0oUmVmPGNvbnN0IExvZ2dlcj4mJiBsb2dnZXIsIE5ld01lZGlhU3RyZWFtSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyLCBTdHJpbmcmJiBoYXNoU2FsdCwgQ2FwdHVyZURldmlj
ZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2UsIGNvbnN0IE1lZGlh
U3RyZWFtUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiBhdWRpb1NvdXJjZXM7CkBAIC0xODgsMTggKzE5NSwzNCBAQCBTdHJpbmcgUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6aGFzaFN0cmluZ1dpdGhTYWx0KGNvbnN0IFN0cmluZyYgaWQs
IGNvbnN0IFN0cgogICAgIHJldHVybiBTSEExOjpoZXhEaWdlc3QoZGlnZXN0KS5kYXRhKCk7CiB9
CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0RGV2aWNlc0NoYW5nZWRPYnNl
cnZlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKK3ZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2
ZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQoIW1fZGV2aWNl
Q2hhbmdlZE9ic2VydmVyKTsKLSAgICBtX2RldmljZUNoYW5nZWRPYnNlcnZlciA9IFdURk1vdmUo
b2JzZXJ2ZXIpOworICAgIG1fb2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6cmVtb3ZlRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihPYnNl
cnZlciYgb2JzZXJ2ZXIpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX29i
c2VydmVycy5yZW1vdmUob2JzZXJ2ZXIpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKLSAgICBpZiAobV9kZXZpY2VDaGFuZ2VkT2JzZXJ2ZXIpCi0gICAgICAgIG1fZGV2aWNl
Q2hhbmdlZE9ic2VydmVyKCk7CisKKyAgICAvLyBXaGVuIGEgZGV2aWNlIHdpdGggY2FtZXJhIGFu
ZCBtaWNyb3Bob25lIGlzIGF0dGFjaGVkIG9yIGRldGFjaGVkLCB0aGUgQ2FwdHVyZURldmljZSBu
b3RpZmljYXRpb24gZm9yCisgICAgLy8gdGhlIGRpZmZlcmVudCBkZXZpY2VzIHdvbid0IGFycml2
ZSBhdCB0aGUgc2FtZSB0aW1lIHNvIGRlbGF5IGEgYml0IHNvIHdlIGNhbiBjb2FsZXNjZSB0aGUg
Y2FsbGJhY2tzLgorICAgIGlmICghbV9kZWJvdW5jZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
IG1fZGVib3VuY2VUaW1lci5zdGFydE9uZVNob3QoZGV2aWNlQ2hhbmdlRGVib3VuY2VUaW1lcklu
dGVydmFsKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2
aWNlc0NoYW5nZWRPYnNlcnZlcnMoKQoreworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpOworICAgIG1fb2JzZXJ2ZXJzLmZvckVhY2goW10oYXV0byYgb2JzZXJ2ZXIpIHsK
KyAgICAgICAgb2JzZXJ2ZXIuZGV2aWNlc0NoYW5nZWQoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1l
ZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCwgVmVjdG9yPERldmljZUluZm8+JiBkaWFwbGF5RGV2
aWNlSW5mbywgU3RyaW5nJiBmaXJzdEludmFsaWRDb25zdHJhaW50KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCmluZGV4IDY5NTYxYjE5YmE4NDU1MTdiNzQ0MjQyNDU2ODZmYTM2NGQ0ZDQ1
OTIuLmViMjJlOTQ3ODAyZWQ3NTQ1OTI1NWMwODkwZmNkYWQ1MGJiNjExMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTM5LDggKzM5LDEwIEBACiAjaW5jbHVkZSAiUmVhbHRp
bWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmgi
CiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgiCisj
aW5jbHVkZSAiVXNlck1lZGlhQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDkg
KzU0LDE2IEBAIGNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czsK
IGNsYXNzIFRyYWNrU291cmNlSW5mbzsKIAogc3RydWN0IE1lZGlhQ29uc3RyYWludHM7Ci0gICAg
Ci1jbGFzcyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIHsKKworY2xhc3MgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcD4gewogcHVi
bGljOgorICAgIGNsYXNzIE9ic2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE9ic2VydmVy
PiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpOworCisgICAgICAg
IHZpcnR1YWwgdm9pZCBkZXZpY2VzQ2hhbmdlZCgpIHsgfQorICAgIH07CisKICAgICB+UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNpbmdsZXRvbigpOwpAQCAtODQsNyArOTMsOCBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaGFzaFN0cmluZ1dpdGhTYWx0KGNvbnN0
IFN0cmluZyYgaWQsIGNvbnN0IFN0cmluZyYgaGFzaFNhbHQpOwogCi0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2Jz
ZXJ2ZXImKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZURldmljZXNDaGFuZ2VkT2Jz
ZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAK
QEAgLTEwOCw3ICsxMTgsMTAgQEAgcHJpdmF0ZToKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VT
dXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+IG1fZGV2aWNlQ2hhbmdlZE9ic2VydmVyOworICAgIFJ1bkxvb3A6OlRp
bWVyPFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI+IG1fZGVib3VuY2VUaW1lcjsKKyAgICB2b2lk
IHRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9ic2VydmVycygpOworCisgICAgV2Vha0hhc2hTZXQ8T2Jz
ZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwogCiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSogbV9hdWRpb0Nh
cHR1cmVGYWN0b3J5T3ZlcnJpZGUgeyBudWxscHRyIH07CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9y
eSogbV92aWRlb0NhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgeyBudWxscHRyIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXgg
OGZkNThjZTRhZDQyY2FlMTYwYTkwNGM2NTAyN2RlYWNlN2MyNTA4MC4uZjBkY2M3ZTE3Nzc1ZDEw
NTQwMGNkNWU2ZDIzZmI3MmQ4NzNlYzA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1RyYW5zbGF0ZWRQcm9jZXNzLmg+
CkBAIC00MSw4ICs0MCw2IEBAIHN0YXRpYyBjb25zdCBBU0NJSUxpdGVyYWwgYXBwbGVDYW1lcmFT
ZXJ2aWNlUGF0aCB7ICJjb20uYXBwbGUuYXBwbGVjYW1lcmFkIl9zIH07CiBzdGF0aWMgY29uc3Qg
QVNDSUlMaXRlcmFsIGFkZGl0aW9uYWxBcHBsZUNhbWVyYVNlcnZpY2VQYXRoIHsgImNvbS5hcHBs
ZS5hcHBsZWgxM2NhbWVyYWQiX3MgfTsKICNlbmRpZgogCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBk
ZXZpY2VDaGFuZ2VEZWJvdW5jZVRpbWVySW50ZXJ2YWwgeyAyMDBfbXMgfTsKLQogVXNlck1lZGlh
UHJvY2Vzc01hbmFnZXImIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKQogewog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcj4gbWFuYWdl
cjsKQEAgLTUwLDcgKzQ3LDYgQEAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRpYVBy
b2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKQogfQogCiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6
VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIoKQotICAgIDogbV9kZWJvdW5jZVRpbWVyKFJ1bkxvb3A6
Om1haW4oKSwgdGhpcywgJlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0No
YW5nZWQpCiB7CiB9CiAKQEAgLTIxNiw1MCArMjEyLDMxIEBAIHZvaWQgVXNlck1lZGlhUHJvY2Vz
c01hbmFnZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAKIHZvaWQgVXNlck1lZGlhUHJvY2Vz
c01hbmFnZXI6OnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlmeSBzaG91bGROb3RpZnkp
CiB7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKFt0aGlzLCBzaG91bGROb3RpZnldIChhdXRvJiYgbmV3RGV2
aWNlcykgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8gb2xkRGV2aWNlcyA9IFdURk1vdmUobV9jYXB0
dXJlRGV2aWNlcyk7Ci0gICAgICAgIG1fY2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0Rldmlj
ZXMpOwotCi0gICAgICAgIGlmIChzaG91bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5OjpObykKKyAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRNZWRp
YVN0cmVhbURldmljZXMoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBzaG91
bGROb3RpZnldKGF1dG8mJiBuZXdEZXZpY2VzKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAobV9jYXB0dXJlRGV2aWNl
cy5zaXplKCkgPT0gb2xkRGV2aWNlcy5zaXplKCkpIHsKLSAgICAgICAgICAgIGJvb2wgaGF2ZUNo
YW5nZXMgPSBmYWxzZTsKLSAgICAgICAgICAgIGZvciAoYXV0byAmbmV3RGV2aWNlIDogbV9jYXB0
dXJlRGV2aWNlcykgewotICAgICAgICAgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpICE9IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiBuZXdEZXZpY2UudHlw
ZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0g
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgYXV0byBpbmRl
eCA9IG9sZERldmljZXMuZmluZE1hdGNoaW5nKFsmbmV3RGV2aWNlXSAoYXV0byYgb2xkRGV2aWNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkg
PT0gb2xkRGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xk
RGV2aWNlLmVuYWJsZWQoKTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAg
IGlmIChpbmRleCA9PSBub3RGb3VuZCkgewotICAgICAgICAgICAgICAgICAgICBoYXZlQ2hhbmdl
cyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFoYXZlQ2hhbmdlcykKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCFoYXZlRGV2aWNlc0NoYW5n
ZWQobV9jYXB0dXJlRGV2aWNlcywgbmV3RGV2aWNlcykpCisgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgLy8gV2hlbiBhIGRldmljZSB3aXRoIGNhbWVyYSBhbmQgbWljcm9waG9uZSBpcyBh
dHRhY2hlZCBvciBkZXRhY2hlZCwgdGhlIENhcHR1cmVEZXZpY2Ugbm90aWZpY2F0aW9uIGZvcgot
ICAgICAgICAvLyB0aGUgZGlmZmVyZW50IGRldmljZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1l
IHRpbWUgc28gZGVsYXkgYSBiaXQgc28gd2UgY2FuIGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCi0g
ICAgICAgIGlmICghbV9kZWJvdW5jZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX2Rl
Ym91bmNlVGltZXIuc3RhcnRPbmVTaG90KGRldmljZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZh
bCk7CisgICAgICAgIG1fY2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOworICAg
ICAgICBpZiAoc2hvdWxkTm90aWZ5ID09IFNob3VsZE5vdGlmeTo6WWVzKQorICAgICAgICAgICAg
Y2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXI6OmRldmljZXNDaGFuZ2VkKCkKK3sKKyAgICB1cGRhdGVDYXB0dXJlRGV2aWNl
cyhTaG91bGROb3RpZnk6Olllcyk7Cit9CisKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6
OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNl
X2ZsYWcgb25jZUZsYWc7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW3RoaXNdIHsK
ICAgICAgICAgdXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5OjpObyk7Ci0KLSAgICAg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGV2
aWNlc0NoYW5nZWRPYnNlcnZlcihbdGhpc10oKSB7Ci0gICAgICAgICAgICB1cGRhdGVDYXB0dXJl
RGV2aWNlcyhTaG91bGROb3RpZnk6Olllcyk7Ci0gICAgICAgIH0pOworICAgICAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hZGREZXZpY2VzQ2hhbmdl
ZE9ic2VydmVyKCp0aGlzKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgKaW5kZXggNmI5ODRkMTRmN2RjNjA2MDY3
OWQzMTY2YTcwZTBmZjhlMzYzZjhmNi4uOWNiZjZjZDdhZGYzMmUzMDI4MmI1MTUyNTg4MGQ3ZTcy
NmQ5YzkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9j
ZXNzTWFuYWdlci5oCkBAIC0yMywxMyArMjMsMTUgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURl
dmljZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94
eTsKIAotY2xhc3MgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIgeworY2xhc3MgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
T2JzZXJ2ZXIgewogcHVibGljOgogCiAgICAgc3RhdGljIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2Vy
JiBzaW5nbGV0b24oKTsKQEAgLTQ3LDE1ICs0OSwxOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJl
Z2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCk7CiAKKyAgICAvLyBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpPYnNlcnZlcgorICAgIHZvaWQgZGV2aWNlc0NoYW5nZWQoKSBmaW5hbDsKKwog
cHJpdmF0ZToKLSAgICBlbnVtIGNsYXNzIFNob3VsZE5vdGlmeSB7IFllcywgTm8gfTsKKyAgICBl
bnVtIGNsYXNzIFNob3VsZE5vdGlmeSA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9pZCB1cGRh
dGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnkpOwogICAgIHZvaWQgY2FwdHVyZURldmljZXND
aGFuZ2VkKCk7CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gbV9jYXB0dXJl
RGV2aWNlczsKLSAgICBSdW5Mb29wOjpUaW1lcjxVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcj4gbV9k
ZWJvdW5jZVRpbWVyOwogICAgIGJvb2wgbV9jYXB0dXJlRW5hYmxlZCB7IHRydWUgfTsKICAgICBi
b29sIG1fZGVueU5leHRSZXF1ZXN0IHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpVc2VyTWVkaWFD
bGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gbV9kZXZpY2VDaGFuZ2VPYnNlcnZlclRv
a2VuOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IGZkNmFiNGRmNzJmMjFkMDk4OTc3MWE1
MGEwZDgyNWQwMmU4YWZmMzYuLjM2YjMxNWUxZDNkYmUwNDlmNTZiYzBmNDQwMWIwMDRhZDYwNDIw
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
CkBAIC0zNSw2ICszNSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogCisjaWYgVVNFKEdTVFJF
QU1FUikKKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBA
IC00Miw2ICs0Niw5IEBAIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6
OkZsYWc+IGZvY3VzZWRBY3RpdmVXaW5kb3cgPSB7IEFjdGl2aXR5CiAKIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdl
YlBhZ2UmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAg
ICwgbV9vYnNlcnZlcigqdGhpcykKKyNlbmRpZgogewogfQogCkBAIC0xNDgsNiArMTU1LDI4IEBA
IHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjplbnVtZXJhdGVNZWRpYURl
dmljZXMoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSB7IFdl
YkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSktPmZyYW1lSUQoKSwgZG9jdW1lbnQuc2VjdXJp
dHlPcmlnaW4oKS5kYXRhKCksIGRvY3VtZW50LnRvcE9yaWdpbigpLmRhdGEoKSB9LCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3Vs
ZE5vdGlmeSBzaG91bGROb3RpZnkpCit7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKFt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgdGhpcywgc2hvdWxkTm90aWZ5XShhdXRvJiYgbmV3RGV2aWNlcykg
bXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKCFoYXZlRGV2aWNlc0NoYW5nZWQobV9jYXB0dXJlRGV2aWNlcywgbmV3RGV2
aWNlcykpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9jYXB0dXJlRGV2aWNlcyA9
IFdURk1vdmUobmV3RGV2aWNlcyk7CisgICAgICAgIGlmIChzaG91bGROb3RpZnkgPT0gU2hvdWxk
Tm90aWZ5OjpZZXMpCisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKKyAgICB9
KTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OkRldmljZU9i
c2VydmVyOjpkZXZpY2VzQ2hhbmdlZCgpCit7CisgICAgbV9tYW5hZ2VyLnVwZGF0ZUNhcHR1cmVE
ZXZpY2VzKFNob3VsZE5vdGlmeTo6WWVzKTsKK30KKyNlbmRpZgorCiBVc2VyTWVkaWFDbGllbnQ6
OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcihGdW5jdGlvbjx2b2lkKCk+JiYgb2JzZXJ2ZXIp
CiB7CiAgICAgYXV0byBpZGVudGlmaWVyID0gVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VP
YnNlcnZlclRva2VuOjpnZW5lcmF0ZSgpOwpAQCAtMTU1LDcgKzE4NCwxMiBAQCBVc2VyTWVkaWFD
bGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjphZAogCiAgICAgaWYgKCFtX21vbml0b3JpbmdEZXZpY2VDaGFuZ2UpIHsKICAg
ICAgICAgbV9tb25pdG9yaW5nRGV2aWNlQ2hhbmdlID0gdHJ1ZTsKKyNpZiBVU0UoR1NUUkVBTUVS
KQorICAgICAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Ok5vKTsKKyAgICAg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYWRkRGV2
aWNlc0NoYW5nZWRPYnNlcnZlcihtX29ic2VydmVyKTsKKyNlbHNlCiAgICAgICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2Vz
KCkpOworI2VuZGlmCiAgICAgfQogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFt
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCmluZGV4IDA0N2FmYTIxY2ZjZWUz
ZDAwOWJkZTM2MTc3NmM4MjE5MzBhNGRkY2IuLjkxZDYwYmU1MDE3NDI0ZDM5N2U2ZGFhYThhOWM2
NDI2YWFiNWVkZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNhblN0YXJ0TGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhQ29uc3RyYWludHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYUNsaWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CkBAIC0zNCw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdl
OwogCi1jbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwcml2YXRlIFdl
YkNvcmU6Ok1lZGlhQ2FuU3RhcnRMaXN0ZW5lciB7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFDYW5TdGFydExpc3RlbmVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYpOwpAQCAtNTIsNiArNTMsMTkg
QEAgcHVibGljOgogCiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKIAorI2lmIFVT
RShHU1RSRUFNRVIpCisgICAgY2xhc3MgRGV2aWNlT2JzZXJ2ZXIgOiBwdWJsaWMgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgRGV2aWNlT2JzZXJ2ZXIoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBtYW5h
Z2VyKQorICAgICAgICAgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAgICAgeyB9CisKKyAg
ICAgICAgdm9pZCBkZXZpY2VzQ2hhbmdlZCgpIGZpbmFsOworICAgIHByaXZhdGU6CisgICAgICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgbV9tYW5hZ2VyOworICAgIH07Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIHNlbmRVc2VyTWVkaWFSZXF1ZXN0KFdlYkNvcmU6
OlVzZXJNZWRpYVJlcXVlc3QmKTsKIApAQCAtNjUsNiArNzksMTQgQEAgcHJpdmF0ZToKIAogICAg
IEhhc2hNYXA8V2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRv
a2VuLCBGdW5jdGlvbjx2b2lkKCk+PiBtX2RldmljZUNoYW5nZU9ic2VydmVyTWFwOwogICAgIGJv
b2wgbV9tb25pdG9yaW5nRGV2aWNlQ2hhbmdlIHsgZmFsc2UgfTsKKworI2lmIFVTRShHU1RSRUFN
RVIpCisgICAgZW51bSBjbGFzcyBTaG91bGROb3RpZnkgOiBib29sIHsgTm8sIFllcyB9OworICAg
IHZvaWQgdXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5KTsKKworICAgIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBtX2NhcHR1cmVEZXZpY2VzOworICAgIERldmljZU9ic2Vy
dmVyIG1fb2JzZXJ2ZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425503</attachid>
            <date>2021-04-08 06:15:05 -0700</date>
            <delta_ts>2021-04-12 09:03:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210408061503.patch</filename>
            <type>text/plain</type>
            <size>19880</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNjZjMyYTNhMzNmMDBh
NjJmMzJmMThiYzcxZjNiNzRhYjg5Yjc4Ni4uN2U5OTUzNGQ4M2YzMTM0NGUxMTUyYzM5MmQzNDAz
NTI3ZDI5NDViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA0LTA3ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBDYXB0dXJlRGV2aWNlIG1vbml0b3IgdXNlZCBmcm9tIFVJUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyODg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0aGUgZGV2aWNlIG9ic2Vy
dmVyIGluZnJhc3RydWN0dXJlIGZyb20gdGhlIFdlYktpdCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ciB0byB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci4KKworICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmhhdmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok9ic2VydmVyOjp+T2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlc0No
YW5nZWRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpyZW1vdmVEZXZpY2VzQ2hhbmdlZE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXI6OmRldmljZXNDaGFuZ2Vk
KToKKwogMjAyMS0wNC0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXBkYXRlIFNGcmFtZSBpbXBsZW1lbnRhdGlvbiB0byBsYXRlc3QgdmVyc2lvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA1ZjZlMjkxZjgyM2MyNGRkNGJkZGZlMWFmN2YxNjZjMmQ3MWVmNzcyLi45ZmMwMDAx
ODJhMmY1NGZmMDQ1ZjJjMDY0YjRhM2YwM2M1MzcyNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDIxLTA0LTA3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
KworICAgICAgICBbR1N0cmVhbWVyXSBDYXB0dXJlRGV2aWNlIG1vbml0b3IgdXNlZCBmcm9tIFVJ
UHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIyODg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
R1N0cmVhbWVyIHBvcnRzIGFpbSB0byByZWR1Y2UgdXNhZ2Ugb2YgdGhlIEdTdHJlYW1lciBsaWJy
YXJ5IGluIHRoZSBVSVByb2Nlc3MgYW5kIHRodXMKKyAgICAgICAgc2hvdWxkIG5vdCByZWxheSBj
YXB0dXJlIGRldmljZWNoYW5nZSBtb25pdG9yaW5nIHRvIHRoZSBVSVByb2Nlc3MuIEZvciB0aGUg
bG9uZyB0ZXJtIHdlIHBsYW4KKyAgICAgICAgdG8gbWlncmF0ZSBtZWRpYSBwcm9jZXNzaW5nIHRv
IHRoZSBHUFVQcm9jZXNzIGJ1dCBmb3Igbm93IHdlIGhhdmUgdG8gbWFpbnRhaW4gdGhlIG1lZGlh
CisgICAgICAgIHBpcGVsaW5lcyBpbiB0aGUgV2ViUHJvY2Vzcy4gSW5pdGlhbGl6aW5nIEdTdHJl
YW1lciBpbiBtdWx0aXBsZSBwcm9jZXNzZXMgKGluY2x1ZGluZyB0aGUKKyAgICAgICAgVUlQcm9j
ZXNzKSBoYXMgYSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBpbXBhY3Qgb24gZW1iZWRkZWQgcGxh
dGZvcm1zLCB0aGF0J3Mgd2h5IHdlIHRyeSB0bworICAgICAgICBhdm9pZCBpdCBhcyBtdWNoIGFz
IHBvc3NpYmxlLgorCisgICAgICAgIFRoZSBkZXZpY2UgbW9uaXRvcmluZyBjb2RlIGZyb20gdGhl
IFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyIHdhcyBwYXJ0bHkgbW92ZWQgdG8gdGhlCisgICAgICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIgc28gdGhhdCBpdCBjYW4gYmUgZWFzaWx5IHJldXNl
ZCBieSBHU3RyZWFtZXIgcG9ydHMgZnJvbSB0aGUKKyAgICAgICAgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OlVz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUHJvY2Vz
c01hbmFnZXI6OnVwZGF0ZUNhcHR1cmVEZXZpY2VzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUHJvY2Vzc01hbmFnZXI6OmRldmljZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXI6OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6RGV2aWNl
T2JzZXJ2ZXI6OmRldmljZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjphZGREZXZpY2VDaGFuZ2VPYnNlcnZlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpEZXZpY2VPYnNlcnZlcjo6RGV2aWNlT2JzZXJ2ZXIpOgorCiAyMDIxLTA0LTA4ICBLaW1tbyBL
aW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlmZmljdWx0IHRvIHVu
ZGVyc3RhbmQgd2hpY2ggSVBDIG1lc3NhZ2UgY2F1c2VkIGFuIEFTU0VSVCBkdWUgdG8gYmVpbmcg
bm90IGhhbmRsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0NhcHR1cmVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L0NhcHR1cmVEZXZpY2UuaAppbmRleCAzZjBjMjFmOGVhZTM4NjRjNjk5MmIwYjRkMDNjYTRmNDcx
NjJiYjk4Li4xNWM2ZDczZjYyMWM0OWVmZjg4MGU5Yjg5ZWVkZWNmMGFkODVmMDgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5o
CkBAIC0xNDAsNiArMTQwLDI2IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNNb2NrRGV2aWNl
IHsgZmFsc2UgfTsKIH07CiAKK2lubGluZSBib29sIGhhdmVEZXZpY2VzQ2hhbmdlZChjb25zdCBW
ZWN0b3I8Q2FwdHVyZURldmljZT4mIG9sZERldmljZXMsIGNvbnN0IFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYgbmV3RGV2aWNlcykKK3sKKyAgICBpZiAob2xkRGV2aWNlcy5zaXplKCkgIT0gbmV3RGV2
aWNlcy5zaXplKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgZm9yIChhdXRvJiBuZXdE
ZXZpY2UgOiBuZXdEZXZpY2VzKSB7CisgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpICE9IENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiBuZXdEZXZpY2UudHlwZSgpICE9IENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBhdXRvIGluZGV4ID0gb2xkRGV2aWNlcy5maW5kTWF0Y2hpbmcoWyZuZXdE
ZXZpY2VdKGF1dG8mIG9sZERldmljZSkgeworICAgICAgICAgICAgcmV0dXJuIG5ld0RldmljZS5w
ZXJzaXN0ZW50SWQoKSA9PSBvbGREZXZpY2UucGVyc2lzdGVudElkKCkgJiYgbmV3RGV2aWNlLmVu
YWJsZWQoKSAhPSBvbGREZXZpY2UuZW5hYmxlZCgpOworICAgICAgICB9KTsKKworICAgICAgICBp
ZiAoaW5kZXggPT0gbm90Rm91bmQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4
IGRjNTRkNGEwZTEwYTljY2I2ODNlYWM0YTZjY2JmMzE5MWEzZWY3YzYuLjFlNzkwNDhjZTljYjli
ZmRiYTk1YjUyZTA0ZTcyMWMwZDNkZjMxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuY3BwCkBAIC00Miw2ICs0Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGlj
IGNvbnN0IFNlY29uZHMgZGV2aWNlQ2hhbmdlRGVib3VuY2VUaW1lckludGVydmFsIHsgMjAwX21z
IH07CisKIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTUwLDYg
KzUyLDcgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlciYgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2luZ2xldG9uKCkKIH0KIAogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcigpCisgICAgOiBtX2RlYm91bmNlVGltZXIoUnVuTG9vcDo6bWFp
bigpLCB0aGlzLCAmUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dHJpZ2dlckRldmljZXNDaGFu
Z2VkT2JzZXJ2ZXJzKQogewogICAgIG1fc3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3VwcG9ydHNF
Y2hvQ2FuY2VsbGF0aW9uKHRydWUpOwogICAgIG1fc3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3Vw
cG9ydHNXaWR0aCh0cnVlKTsKQEAgLTYzLDYgKzY2LDEwIEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKQogCiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpID0gZGVmYXVsdDsKIAorUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXI6On5PYnNlcnZlcigpCit7Cit9CisKIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJlYW0oUmVmPGNvbnN0IExv
Z2dlcj4mJiBsb2dnZXIsIE5ld01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVy
LCBTdHJpbmcmJiBoYXNoU2FsdCwgQ2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlLCBDYXB0dXJl
RGV2aWNlJiYgdmlkZW9EZXZpY2UsIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVzdCkK
IHsKICAgICBWZWN0b3I8UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+PiBhdWRpb1NvdXJjZXM7CkBA
IC0xODgsMTggKzE5NSwzNCBAQCBTdHJpbmcgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6aGFz
aFN0cmluZ1dpdGhTYWx0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cgogICAgIHJldHVybiBT
SEExOjpoZXhEaWdlc3QoZGlnZXN0KS5kYXRhKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcihzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4mJiBvYnNlcnZlcikKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNl
c0NoYW5nZWRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICBBU1NFUlQoIW1fZGV2aWNlQ2hhbmdlZE9ic2VydmVyKTsKLSAgICBt
X2RldmljZUNoYW5nZWRPYnNlcnZlciA9IFdURk1vdmUob2JzZXJ2ZXIpOworICAgIG1fb2JzZXJ2
ZXJzLmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
cmVtb3ZlRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBtX29ic2VydmVycy5yZW1vdmUob2JzZXJ2ZXIp
OwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VzQ2hh
bmdlZCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBpZiAobV9kZXZpY2VD
aGFuZ2VkT2JzZXJ2ZXIpCi0gICAgICAgIG1fZGV2aWNlQ2hhbmdlZE9ic2VydmVyKCk7CisKKyAg
ICAvLyBXaGVuIGEgZGV2aWNlIHdpdGggY2FtZXJhIGFuZCBtaWNyb3Bob25lIGlzIGF0dGFjaGVk
IG9yIGRldGFjaGVkLCB0aGUgQ2FwdHVyZURldmljZSBub3RpZmljYXRpb24gZm9yCisgICAgLy8g
dGhlIGRpZmZlcmVudCBkZXZpY2VzIHdvbid0IGFycml2ZSBhdCB0aGUgc2FtZSB0aW1lIHNvIGRl
bGF5IGEgYml0IHNvIHdlIGNhbiBjb2FsZXNjZSB0aGUgY2FsbGJhY2tzLgorICAgIGlmICghbV9k
ZWJvdW5jZVRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fZGVib3VuY2VUaW1lci5zdGFydE9u
ZVNob3QoZGV2aWNlQ2hhbmdlRGVib3VuY2VUaW1lckludGVydmFsKTsKK30KKwordm9pZCBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2aWNlc0NoYW5nZWRPYnNlcnZlcnMoKQor
eworICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworICAgIG1fb2JzZXJ2
ZXJzLmZvckVhY2goW10oYXV0byYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgb2JzZXJ2ZXIuZGV2aWNl
c0NoYW5nZWQoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpnZXREaXNwbGF5TWVkaWFEZXZpY2VzKGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgcmVxdWVz
dCwgVmVjdG9yPERldmljZUluZm8+JiBkaWFwbGF5RGV2aWNlSW5mbywgU3RyaW5nJiBmaXJzdElu
dmFsaWRDb25zdHJhaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IDY5NTYx
YjE5YmE4NDU1MTdiNzQ0MjQyNDU2ODZmYTM2NGQ0ZDQ1OTIuLmQ2NWQ4YjRlMWQ4MzYyN2EwMjg5
YjRlMjgyZjNhMjI3NTAzOTdiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAg
LTM5LDggKzM5LDEwIEBACiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2xpZW50
LmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDkgKzU0LDE2IEBAIGNsYXNzIFJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czsKIGNsYXNzIFRyYWNrU291cmNlSW5mbzsK
IAogc3RydWN0IE1lZGlhQ29uc3RyYWludHM7Ci0gICAgCi1jbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyIHsKKworY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcD4gewogcHVibGljOgorICAg
IGNsYXNzIE9ic2VydmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE9ic2VydmVyPiB7CisgICAg
cHVibGljOgorICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpOworCisgICAgICAgIHZpcnR1YWwg
dm9pZCBkZXZpY2VzQ2hhbmdlZCgpIHsgfQorICAgIH07CisKICAgICB+UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXImIHNpbmdsZXRvbigpOwpAQCAtODQsNyArOTMsOCBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaGFzaFN0cmluZ1dpdGhTYWx0KGNvbnN0IFN0cmluZyYg
aWQsIGNvbnN0IFN0cmluZyYgaGFzaFNhbHQpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZURldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2Jz
ZXJ2ZXImKTsKIAogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKQEAgLTEwOCw3
ICsxMTgsMTAgQEAgcHJpdmF0ZToKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+IG1fZGV2aWNlQ2hhbmdlZE9ic2VydmVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI+IG1fZGVib3VuY2VUaW1lcjsKKyAgICB2b2lkIHRyaWdnZXJE
ZXZpY2VzQ2hhbmdlZE9ic2VydmVycygpOworCisgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1f
b2JzZXJ2ZXJzOwogCiAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSogbV9hdWRpb0NhcHR1cmVGYWN0
b3J5T3ZlcnJpZGUgeyBudWxscHRyIH07CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSogbV92aWRl
b0NhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggOGZkNThjZTRh
ZDQyY2FlMTYwYTkwNGM2NTAyN2RlYWNlN2MyNTA4MC4uZjBkY2M3ZTE3Nzc1ZDEwNTQwMGNkNWU2
ZDIzZmI3MmQ4NzNlYzA0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIldl
YlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1RyYW5zbGF0ZWRQcm9jZXNzLmg+CkBAIC00MSw4
ICs0MCw2IEBAIHN0YXRpYyBjb25zdCBBU0NJSUxpdGVyYWwgYXBwbGVDYW1lcmFTZXJ2aWNlUGF0
aCB7ICJjb20uYXBwbGUuYXBwbGVjYW1lcmFkIl9zIH07CiBzdGF0aWMgY29uc3QgQVNDSUlMaXRl
cmFsIGFkZGl0aW9uYWxBcHBsZUNhbWVyYVNlcnZpY2VQYXRoIHsgImNvbS5hcHBsZS5hcHBsZWgx
M2NhbWVyYWQiX3MgfTsKICNlbmRpZgogCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBkZXZpY2VDaGFu
Z2VEZWJvdW5jZVRpbWVySW50ZXJ2YWwgeyAyMDBfbXMgfTsKLQogVXNlck1lZGlhUHJvY2Vzc01h
bmFnZXImIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKQogewogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcj4gbWFuYWdlcjsKQEAgLTUw
LDcgKzQ3LDYgQEAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRpYVByb2Nlc3NNYW5h
Z2VyOjpzaW5nbGV0b24oKQogfQogCiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6VXNlck1lZGlh
UHJvY2Vzc01hbmFnZXIoKQotICAgIDogbV9kZWJvdW5jZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpCiB7
CiB9CiAKQEAgLTIxNiw1MCArMjEyLDMxIEBAIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6
OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6
OnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlmeSBzaG91bGROb3RpZnkpCiB7Ci0gICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZ2V0TWVkaWFT
dHJlYW1EZXZpY2VzKFt0aGlzLCBzaG91bGROb3RpZnldIChhdXRvJiYgbmV3RGV2aWNlcykgbXV0
YWJsZSB7Ci0gICAgICAgIGF1dG8gb2xkRGV2aWNlcyA9IFdURk1vdmUobV9jYXB0dXJlRGV2aWNl
cyk7Ci0gICAgICAgIG1fY2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOwotCi0g
ICAgICAgIGlmIChzaG91bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5OjpObykKKyAgICBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRNZWRpYVN0cmVhbURl
dmljZXMoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBzaG91bGROb3RpZnld
KGF1dG8mJiBuZXdEZXZpY2VzKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAobV9jYXB0dXJlRGV2aWNlcy5zaXplKCkg
PT0gb2xkRGV2aWNlcy5zaXplKCkpIHsKLSAgICAgICAgICAgIGJvb2wgaGF2ZUNoYW5nZXMgPSBm
YWxzZTsKLSAgICAgICAgICAgIGZvciAoYXV0byAmbmV3RGV2aWNlIDogbV9jYXB0dXJlRGV2aWNl
cykgewotICAgICAgICAgICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiBuZXdEZXZpY2UudHlwZSgpICE9IFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgYXV0byBpbmRleCA9IG9sZERl
dmljZXMuZmluZE1hdGNoaW5nKFsmbmV3RGV2aWNlXSAoYXV0byYgb2xkRGV2aWNlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgPT0gb2xkRGV2
aWNlLnBlcnNpc3RlbnRJZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xkRGV2aWNlLmVu
YWJsZWQoKTsKLSAgICAgICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIGlmIChpbmRl
eCA9PSBub3RGb3VuZCkgewotICAgICAgICAgICAgICAgICAgICBoYXZlQ2hhbmdlcyA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgaWYgKCFoYXZlQ2hhbmdlcykKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKCFoYXZlRGV2aWNlc0NoYW5nZWQobV9jYXB0
dXJlRGV2aWNlcywgbmV3RGV2aWNlcykpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
Ly8gV2hlbiBhIGRldmljZSB3aXRoIGNhbWVyYSBhbmQgbWljcm9waG9uZSBpcyBhdHRhY2hlZCBv
ciBkZXRhY2hlZCwgdGhlIENhcHR1cmVEZXZpY2Ugbm90aWZpY2F0aW9uIGZvcgotICAgICAgICAv
LyB0aGUgZGlmZmVyZW50IGRldmljZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1lIHRpbWUgc28g
ZGVsYXkgYSBiaXQgc28gd2UgY2FuIGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCi0gICAgICAgIGlm
ICghbV9kZWJvdW5jZVRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX2RlYm91bmNlVGlt
ZXIuc3RhcnRPbmVTaG90KGRldmljZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZhbCk7CisgICAg
ICAgIG1fY2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOworICAgICAgICBpZiAo
c2hvdWxkTm90aWZ5ID09IFNob3VsZE5vdGlmeTo6WWVzKQorICAgICAgICAgICAgY2FwdHVyZURl
dmljZXNDaGFuZ2VkKCk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFn
ZXI6OmRldmljZXNDaGFuZ2VkKCkKK3sKKyAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGRO
b3RpZnk6Olllcyk7Cit9CisKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmJlZ2luTW9u
aXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZUZsYWc7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW3RoaXNdIHsKICAgICAgICAg
dXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5OjpObyk7Ci0KLSAgICAgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcihbdGhpc10oKSB7Ci0gICAgICAgICAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhT
aG91bGROb3RpZnk6Olllcyk7Ci0gICAgICAgIH0pOworICAgICAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVy
KCp0aGlzKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmgKaW5kZXggNmI5ODRkMTRmN2RjNjA2MDY3OWQzMTY2YTcw
ZTBmZjhlMzYzZjhmNi4uOWNiZjZjZDdhZGYzMmUzMDI4MmI1MTUyNTg4MGQ3ZTcyNmQ5YzkzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ci5oCkBAIC0yMywxMyArMjMsMTUgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAotY2xh
c3MgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIgeworY2xhc3MgVXNlck1lZGlhUHJvY2Vzc01hbmFn
ZXIgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXIg
ewogcHVibGljOgogCiAgICAgc3RhdGljIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyJiBzaW5nbGV0
b24oKTsKQEAgLTQ3LDE1ICs0OSwxOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGJlZ2luTW9uaXRv
cmluZ0NhcHR1cmVEZXZpY2VzKCk7CiAKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpPYnNlcnZlcgorICAgIHZvaWQgZGV2aWNlc0NoYW5nZWQoKSBmaW5hbDsKKwogcHJpdmF0ZToK
LSAgICBlbnVtIGNsYXNzIFNob3VsZE5vdGlmeSB7IFllcywgTm8gfTsKKyAgICBlbnVtIGNsYXNz
IFNob3VsZE5vdGlmeSA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9pZCB1cGRhdGVDYXB0dXJl
RGV2aWNlcyhTaG91bGROb3RpZnkpOwogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7
CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gbV9jYXB0dXJlRGV2aWNlczsK
LSAgICBSdW5Mb29wOjpUaW1lcjxVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcj4gbV9kZWJvdW5jZVRp
bWVyOwogICAgIGJvb2wgbV9jYXB0dXJlRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZGVu
eU5leHRSZXF1ZXN0IHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQ6OkRl
dmljZUNoYW5nZU9ic2VydmVyVG9rZW4gbV9kZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IGZkNmFiNGRmNzJmMjFkMDk4OTc3MWE1MGEwZDgyNWQw
MmU4YWZmMzYuLjM2YjMxNWUxZDNkYmUwNDlmNTZiYzBmNDQwMWIwMDRhZDYwNDIwZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9N
ZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0zNSw2
ICszNSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogCisjaWYgVVNFKEdTVFJFQU1FUikKKyNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNlbmRpZgorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00Miw2ICs0
Niw5IEBAIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0PEFjdGl2aXR5U3RhdGU6OkZsYWc+IGZv
Y3VzZWRBY3RpdmVXaW5kb3cgPSB7IEFjdGl2aXR5CiAKIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBh
Z2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgICwgbV9vYnNl
cnZlcigqdGhpcykKKyNlbmRpZgogewogfQogCkBAIC0xNDgsNiArMTU1LDI4IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjplbnVtZXJhdGVNZWRpYURldmljZXMoRG9j
dW1lbnQmIGRvY3VtZW50CiAgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSB7IFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKCpmcmFtZSktPmZyYW1lSUQoKSwgZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4o
KS5kYXRhKCksIGRvY3VtZW50LnRvcE9yaWdpbigpLmRhdGEoKSB9LCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKKyNpZiBVU0UoR1NUUkVBTUVSKQordm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlmeSBz
aG91bGROb3RpZnkpCit7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgdGhpcywgc2hvdWxkTm90aWZ5XShhdXRvJiYgbmV3RGV2aWNlcykgbXV0YWJsZSB7
CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKCFoYXZlRGV2aWNlc0NoYW5nZWQobV9jYXB0dXJlRGV2aWNlcywgbmV3RGV2aWNlcykpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9jYXB0dXJlRGV2aWNlcyA9IFdURk1vdmUo
bmV3RGV2aWNlcyk7CisgICAgICAgIGlmIChzaG91bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5OjpZ
ZXMpCisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKKyAgICB9KTsKK30KKwor
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OkRldmljZU9ic2VydmVyOjpk
ZXZpY2VzQ2hhbmdlZCgpCit7CisgICAgbV9tYW5hZ2VyLnVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNo
b3VsZE5vdGlmeTo6WWVzKTsKK30KKyNlbmRpZgorCiBVc2VyTWVkaWFDbGllbnQ6OkRldmljZUNo
YW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjphZGRE
ZXZpY2VDaGFuZ2VPYnNlcnZlcihGdW5jdGlvbjx2b2lkKCk+JiYgb2JzZXJ2ZXIpCiB7CiAgICAg
YXV0byBpZGVudGlmaWVyID0gVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRv
a2VuOjpnZW5lcmF0ZSgpOwpAQCAtMTU1LDcgKzE4NCwxMiBAQCBVc2VyTWVkaWFDbGllbnQ6OkRl
dmljZUNoYW5nZU9ic2VydmVyVG9rZW4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjphZAogCiAgICAgaWYgKCFtX21vbml0b3JpbmdEZXZpY2VDaGFuZ2UpIHsKICAgICAgICAgbV9t
b25pdG9yaW5nRGV2aWNlQ2hhbmdlID0gdHJ1ZTsKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgICAg
ICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Ok5vKTsKKyAgICAgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYWRkRGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcihtX29ic2VydmVyKTsKKyNlbHNlCiAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkpOworI2Vu
ZGlmCiAgICAgfQogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCmluZGV4IDA0N2FmYTIxY2ZjZWUzZDAwOWJkZTM2
MTc3NmM4MjE5MzBhNGRkY2IuLjkxZDYwYmU1MDE3NDI0ZDM5N2U2ZGFhYThhOWM2NDI2YWFiNWVk
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAg
LTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYUNhblN0YXJ0TGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
Q29uc3RyYWludHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRpYUNsaWVudC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0z
NCw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlOwogCi1jbGFz
cyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwcml2YXRlIFdlYkNvcmU6Ok1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lciB7CitjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFDYW5TdGFydExpc3RlbmVyIHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYpOwpAQCAtNTIsNiArNTMsMTkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKIAorI2lmIFVTRShHU1RSRUFN
RVIpCisgICAgY2xhc3MgRGV2aWNlT2JzZXJ2ZXIgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgRGV2aWNl
T2JzZXJ2ZXIoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBtYW5hZ2VyKQorICAg
ICAgICAgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAgICAgeyB9CisKKyAgICAgICAgdm9p
ZCBkZXZpY2VzQ2hhbmdlZCgpIGZpbmFsOworICAgIHByaXZhdGU6CisgICAgICAgIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgbV9tYW5hZ2VyOworICAgIH07CisjZW5kaWYKKwog
cHJpdmF0ZToKICAgICB2b2lkIHNlbmRVc2VyTWVkaWFSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRp
YVJlcXVlc3QmKTsKIApAQCAtNjUsNiArNzksMTQgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8
V2ViQ29yZTo6VXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRva2VuLCBGdW5j
dGlvbjx2b2lkKCk+PiBtX2RldmljZUNoYW5nZU9ic2VydmVyTWFwOwogICAgIGJvb2wgbV9tb25p
dG9yaW5nRGV2aWNlQ2hhbmdlIHsgZmFsc2UgfTsKKworI2lmIFVTRShHU1RSRUFNRVIpCisgICAg
ZW51bSBjbGFzcyBTaG91bGROb3RpZnkgOiBib29sIHsgTm8sIFllcyB9OworICAgIHZvaWQgdXBk
YXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5KTsKKworICAgIFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiBtX2NhcHR1cmVEZXZpY2VzOworICAgIERldmljZU9ic2VydmVyIG1fb2Jz
ZXJ2ZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425753</attachid>
            <date>2021-04-12 09:03:28 -0700</date>
            <delta_ts>2021-04-12 09:39:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210412090326.patch</filename>
            <type>text/plain</type>
            <size>19798</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg4MjQ2NjUyOTQwNzNl
MDAzZDY2ZjYxZThmMDhjMmMwYWQ4Mjc0Yi4uZTcyNTkwMTU3Y2Q3NzkxY2U0YTc5MWE3NDk2ZDcw
NWI5MTlmYjgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA0LTEyICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBDYXB0dXJlRGV2aWNlIG1vbml0b3IgdXNlZCBmcm9tIFVJUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyODg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWW91ZW5uIEZhYmxldCAuCisKKyAgICAgICAgTW92ZSB0aGUgZGV2aWNlIG9ic2Vy
dmVyIGluZnJhc3RydWN0dXJlIGZyb20gdGhlIFdlYktpdCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ciB0byB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci4KKworICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmhhdmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok9ic2VydmVyOjp+T2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlc0No
YW5nZWRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpyZW1vdmVEZXZpY2VzQ2hhbmdlZE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXI6OmRldmljZXNDaGFuZ2Vk
KToKKwogMjAyMS0wNC0xMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IENsYW1wIG92ZXJyaWRpbmdDb250ZW50TG9naWNhbFdpZHRoL0hlaWdodCB0byB6ZXJvCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDk2ODI4NDBjZjkwYTE1ZjI1NWU3ZjA2N2VmYjI1YmNkODJhYzVhZGUuLmMxZGMxZWMw
YTYzNDhkNWI1YmQ1YmIwYWIyN2E0MzI1NzA3NWU4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMjEtMDQtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHU3RyZWFtZXJdIENhcHR1cmVEZXZpY2UgbW9uaXRvciB1c2VkIGZyb20gVUlQ
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjI4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEdT
dHJlYW1lciBwb3J0cyBhaW0gdG8gcmVkdWNlIHVzYWdlIG9mIHRoZSBHU3RyZWFtZXIgbGlicmFy
eSBpbiB0aGUgVUlQcm9jZXNzIGFuZCB0aHVzCisgICAgICAgIHNob3VsZCBub3QgcmVsYXkgY2Fw
dHVyZSBkZXZpY2VjaGFuZ2UgbW9uaXRvcmluZyB0byB0aGUgVUlQcm9jZXNzLiBGb3IgdGhlIGxv
bmcgdGVybSB3ZSBwbGFuCisgICAgICAgIHRvIG1pZ3JhdGUgbWVkaWEgcHJvY2Vzc2luZyB0byB0
aGUgR1BVUHJvY2VzcyBidXQgZm9yIG5vdyB3ZSBoYXZlIHRvIG1haW50YWluIHRoZSBtZWRpYQor
ICAgICAgICBwaXBlbGluZXMgaW4gdGhlIFdlYlByb2Nlc3MuIEluaXRpYWxpemluZyBHU3RyZWFt
ZXIgaW4gbXVsdGlwbGUgcHJvY2Vzc2VzIChpbmNsdWRpbmcgdGhlCisgICAgICAgIFVJUHJvY2Vz
cykgaGFzIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgaW1wYWN0IG9uIGVtYmVkZGVkIHBsYXRm
b3JtcywgdGhhdCdzIHdoeSB3ZSB0cnkgdG8KKyAgICAgICAgYXZvaWQgaXQgYXMgbXVjaCBhcyBw
b3NzaWJsZS4KKworICAgICAgICBUaGUgZGV2aWNlIG1vbml0b3JpbmcgY29kZSBmcm9tIHRoZSBV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlciB3YXMgcGFydGx5IG1vdmVkIHRvIHRoZQorICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIHNvIHRoYXQgaXQgY2FuIGJlIGVhc2lseSByZXVzZWQg
YnkgR1N0cmVhbWVyIHBvcnRzIGZyb20gdGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpVc2Vy
TWVkaWFQcm9jZXNzTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpkZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyOjpiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6dXBkYXRlQ2FwdHVyZURldmljZXMpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OkRldmljZU9i
c2VydmVyOjpkZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6YWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
RGV2aWNlT2JzZXJ2ZXI6OkRldmljZU9ic2VydmVyKToKKwogMjAyMS0wNC0xMiAgQWRyaWFuIFBl
cmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdW0dUS10g
VXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIHdoZW5ldmVyIHBvc3NpYmxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKaW5k
ZXggM2YwYzIxZjhlYWUzODY0YzY5OTJiMGI0ZDAzY2E0ZjQ3MTYyYmI5OC4uMTVjNmQ3M2Y2MjFj
NDllZmY4ODBlOWI4OWVlZGVjZjBhZDg1ZjA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaApAQCAtMTQwLDYgKzE0MCwyNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lzTW9ja0RldmljZSB7IGZhbHNlIH07CiB9OwogCitp
bmxpbmUgYm9vbCBoYXZlRGV2aWNlc0NoYW5nZWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+
JiBvbGREZXZpY2VzLCBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCit7
CisgICAgaWYgKG9sZERldmljZXMuc2l6ZSgpICE9IG5ld0RldmljZXMuc2l6ZSgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGZvciAoYXV0byYgbmV3RGV2aWNlIDogbmV3RGV2aWNlcykg
eworICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmEgJiYgbmV3RGV2aWNlLnR5cGUoKSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byBp
bmRleCA9IG9sZERldmljZXMuZmluZE1hdGNoaW5nKFsmbmV3RGV2aWNlXShhdXRvJiBvbGREZXZp
Y2UpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgPT0gb2xk
RGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xkRGV2aWNl
LmVuYWJsZWQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKGluZGV4ID09IG5vdEZvdW5k
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBkYzU0ZDRhMGUxMGE5Y2NiNjgz
ZWFjNGE2Y2NiZjMxOTFhM2VmN2M2Li41NDI2YzA2MGYxYWYxMmNjYjE0Nzk1NTQxYTRmMWIzYjA4
Mjg2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNDIsNiArNDIs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBTZWNvbmRzIGRldmlj
ZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZhbCB7IDIwMF9tcyB9OworCiBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC01MCw2ICs1Miw3IEBAIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpCiB9
CiAKIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIo
KQorICAgIDogbV9kZWJvdW5jZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9ic2VydmVycykKIHsKICAg
ICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbih0cnVl
KTsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzV2lkdGgodHJ1ZSk7CkBA
IC02Myw2ICs2Niw4IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIoKQogCiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp+UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcigpID0gZGVmYXVsdDsKIAorUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
T2JzZXJ2ZXI6On5PYnNlcnZlcigpID0gZGVmYXVsdDsKKwogdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwg
TmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIsIFN0cmluZyYmIGhhc2hT
YWx0LCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0Rl
dmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFZlY3RvcjxS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKQEAgLTE4OCwxOCArMTkzLDM0
IEBAIFN0cmluZyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpoYXNoU3RyaW5nV2l0aFNhbHQo
Y29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyCiAgICAgcmV0dXJuIFNIQTE6OmhleERpZ2VzdChk
aWdlc3QpLmRhdGEoKTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRE
ZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQor
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVy
KE9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IG1fb2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6cmVtb3ZlRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQoIW1fZGV2aWNlQ2hh
bmdlZE9ic2VydmVyKTsKLSAgICBtX2RldmljZUNoYW5nZWRPYnNlcnZlciA9IFdURk1vdmUob2Jz
ZXJ2ZXIpOworICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShvYnNlcnZlcik7CiB9CiAKIHZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmIChtX2RldmljZUNoYW5nZWRPYnNlcnZlcikK
LSAgICAgICAgbV9kZXZpY2VDaGFuZ2VkT2JzZXJ2ZXIoKTsKKworICAgIC8vIFdoZW4gYSBkZXZp
Y2Ugd2l0aCBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgaXMgYXR0YWNoZWQgb3IgZGV0YWNoZWQsIHRo
ZSBDYXB0dXJlRGV2aWNlIG5vdGlmaWNhdGlvbiBmb3IKKyAgICAvLyB0aGUgZGlmZmVyZW50IGRl
dmljZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1lIHRpbWUgc28gZGVsYXkgYSBiaXQgc28gd2Ug
Y2FuIGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCisgICAgaWYgKCFtX2RlYm91bmNlVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgbV9kZWJvdW5jZVRpbWVyLnN0YXJ0T25lU2hvdChkZXZpY2VDaGFu
Z2VEZWJvdW5jZVRpbWVySW50ZXJ2YWwpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9ic2VydmVycygpCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChbXShh
dXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5kZXZpY2VzQ2hhbmdlZCgpOworICAg
IH0pOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldERpc3BsYXlNZWRp
YURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0LCBWZWN0b3I8RGV2aWNl
SW5mbz4mIGRpYXBsYXlEZXZpY2VJbmZvLCBTdHJpbmcmIGZpcnN0SW52YWxpZENvbnN0cmFpbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggNjk1NjFiMTliYTg0NTUxN2I3NDQy
NDI0NTY4NmZhMzY0ZDRkNDU5Mi4uNGIxNjg5NmYxZWFkYzA1Nzk4NzFlNzA3ZWYzYzZjOGJmYmU2
N2NmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtMzksOCArMzksMTAgQEAK
ICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTIsOSArNTQsMTYgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzOwogY2xhc3MgVHJhY2tTb3VyY2VJbmZvOwogCiBzdHJ1Y3QgTWVkaWFD
b25zdHJhaW50czsKLSAgICAKLWNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIgeworCitj
bGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIsIFdURjo6RGVzdHJ1
Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPiB7CiBwdWJsaWM6CisgICAgY2xhc3MgT2JzZXJ2ZXIg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8T2JzZXJ2ZXI+IHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHZpcnR1YWwgfk9ic2VydmVyKCk7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGRldmljZXNDaGFu
Z2VkKCkgPSAwOworICAgIH07CisKICAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNp
bmdsZXRvbigpOwpAQCAtODQsNyArOTMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgaGFzaFN0cmluZ1dpdGhTYWx0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmlu
ZyYgaGFzaFNhbHQpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZXZpY2VzQ2hhbmdl
ZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZURldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAg
IHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKQEAgLTEwOCw3ICsxMTgsMTAgQEAgcHJp
dmF0ZToKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1
cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fZGV2aWNl
Q2hhbmdlZE9ic2VydmVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI+IG1fZGVib3VuY2VUaW1lcjsKKyAgICB2b2lkIHRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9i
c2VydmVycygpOworCisgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwogCiAg
ICAgQXVkaW9DYXB0dXJlRmFjdG9yeSogbV9hdWRpb0NhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgeyBu
dWxscHRyIH07CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSogbV92aWRlb0NhcHR1cmVGYWN0b3J5
T3ZlcnJpZGUgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggOGZkNThjZTRhZDQyY2FlMTYwYTkwNGM2
NTAyN2RlYWNlN2MyNTA4MC4uZjBkY2M3ZTE3Nzc1ZDEwNTQwMGNkNWU2ZDIzZmI3MmQ4NzNlYzA0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RyYW5zbGF0ZWRQcm9jZXNzLmg+CkBAIC00MSw4ICs0MCw2IEBAIHN0YXRp
YyBjb25zdCBBU0NJSUxpdGVyYWwgYXBwbGVDYW1lcmFTZXJ2aWNlUGF0aCB7ICJjb20uYXBwbGUu
YXBwbGVjYW1lcmFkIl9zIH07CiBzdGF0aWMgY29uc3QgQVNDSUlMaXRlcmFsIGFkZGl0aW9uYWxB
cHBsZUNhbWVyYVNlcnZpY2VQYXRoIHsgImNvbS5hcHBsZS5hcHBsZWgxM2NhbWVyYWQiX3MgfTsK
ICNlbmRpZgogCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBkZXZpY2VDaGFuZ2VEZWJvdW5jZVRpbWVy
SW50ZXJ2YWwgeyAyMDBfbXMgfTsKLQogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcj4gbWFuYWdlcjsKQEAgLTUwLDcgKzQ3LDYgQEAgVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24o
KQogfQogCiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIo
KQotICAgIDogbV9kZWJvdW5jZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpCiB7CiB9CiAKQEAgLTIxNiw1
MCArMjEyLDMxIEBAIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmNhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpCiAKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnVwZGF0ZUNhcHR1cmVE
ZXZpY2VzKFNob3VsZE5vdGlmeSBzaG91bGROb3RpZnkpCiB7Ci0gICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKFt0
aGlzLCBzaG91bGROb3RpZnldIChhdXRvJiYgbmV3RGV2aWNlcykgbXV0YWJsZSB7Ci0gICAgICAg
IGF1dG8gb2xkRGV2aWNlcyA9IFdURk1vdmUobV9jYXB0dXJlRGV2aWNlcyk7Ci0gICAgICAgIG1f
Y2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOwotCi0gICAgICAgIGlmIChzaG91
bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5OjpObykKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRNZWRpYVN0cmVhbURldmljZXMoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBzaG91bGROb3RpZnldKGF1dG8mJiBuZXdEZXZp
Y2VzKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBpZiAobV9jYXB0dXJlRGV2aWNlcy5zaXplKCkgPT0gb2xkRGV2aWNlcy5z
aXplKCkpIHsKLSAgICAgICAgICAgIGJvb2wgaGF2ZUNoYW5nZXMgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGZvciAoYXV0byAmbmV3RGV2aWNlIDogbV9jYXB0dXJlRGV2aWNlcykgewotICAgICAgICAg
ICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYSAmJiBuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotCi0gICAgICAgICAgICAgICAgYXV0byBpbmRleCA9IG9sZERldmljZXMuZmluZE1hdGNo
aW5nKFsmbmV3RGV2aWNlXSAoYXV0byYgb2xkRGV2aWNlKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgPT0gb2xkRGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xkRGV2aWNlLmVuYWJsZWQoKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkg
ewotICAgICAgICAgICAgICAgICAgICBoYXZlQ2hhbmdlcyA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgaWYgKCFoYXZlQ2hhbmdlcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KKyAgICAgICAgaWYgKCFoYXZlRGV2aWNlc0NoYW5nZWQobV9jYXB0dXJlRGV2aWNlcywgbmV3
RGV2aWNlcykpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8gV2hlbiBhIGRldmlj
ZSB3aXRoIGNhbWVyYSBhbmQgbWljcm9waG9uZSBpcyBhdHRhY2hlZCBvciBkZXRhY2hlZCwgdGhl
IENhcHR1cmVEZXZpY2Ugbm90aWZpY2F0aW9uIGZvcgotICAgICAgICAvLyB0aGUgZGlmZmVyZW50
IGRldmljZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1lIHRpbWUgc28gZGVsYXkgYSBiaXQgc28g
d2UgY2FuIGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCi0gICAgICAgIGlmICghbV9kZWJvdW5jZVRp
bWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX2RlYm91bmNlVGltZXIuc3RhcnRPbmVTaG90
KGRldmljZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZhbCk7CisgICAgICAgIG1fY2FwdHVyZURl
dmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOworICAgICAgICBpZiAoc2hvdWxkTm90aWZ5ID09
IFNob3VsZE5vdGlmeTo6WWVzKQorICAgICAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7
CiAgICAgfSk7CiB9CiAKK3ZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmRldmljZXNDaGFu
Z2VkKCkKK3sKKyAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Olllcyk7Cit9
CisKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVE
ZXZpY2VzKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAKICAgICBz
dGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW3RoaXNdIHsKICAgICAgICAgdXBkYXRlQ2FwdHVyZURl
dmljZXMoU2hvdWxkTm90aWZ5OjpObyk7Ci0KLSAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcihbdGhp
c10oKSB7Ci0gICAgICAgICAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Olll
cyk7Ci0gICAgICAgIH0pOworICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKCp0aGlzKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmgKaW5kZXggNmI5ODRkMTRmN2RjNjA2MDY3OWQzMTY2YTcwZTBmZjhlMzYzZjhmNi4u
NjQwZGQ4MWI1ZjU0YjU2MmI2ZWM4YjRjNDgwYzgyMTEyNmUzZDA5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oCkBAIC0yMywxMyAr
MjMsMTUgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
VXNlck1lZGlhQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAotY2xhc3MgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIgeworY2xhc3MgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIgOiBwdWJsaWMgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXIgewogcHVibGljOgogCiAg
ICAgc3RhdGljIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyJiBzaW5nbGV0b24oKTsKQEAgLTQ4LDEy
ICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNl
cygpOwogCiBwcml2YXRlOgotICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IHsgWWVzLCBObyB9
OworICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICB2
b2lkIHVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlmeSk7CiAgICAgdm9pZCBjYXB0dXJl
RGV2aWNlc0NoYW5nZWQoKTsKIAorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok9i
c2VydmVyCisgICAgdm9pZCBkZXZpY2VzQ2hhbmdlZCgpIGZpbmFsOworCiAgICAgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fY2FwdHVyZURldmljZXM7Ci0gICAgUnVuTG9vcDo6VGlt
ZXI8VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI+IG1fZGVib3VuY2VUaW1lcjsKICAgICBib29sIG1f
Y2FwdHVyZUVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2RlbnlOZXh0UmVxdWVzdCB7IGZh
bHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcAppbmRleCBmZDZhYjRkZjcyZjIxZDA5ODk3NzFhNTBhMGQ4MjVkMDJlOGFmZjM2Li4zNmIz
MTVlMWQzZGJlMDQ5ZjU2YmMwZjQ0MDFiMDA0YWQ2MDQyMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMzUsNiArMzUsMTAgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbkRhdGEuaD4KIAorI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDIsNiArNDYsOSBAQCBzdGF0aWMg
Y29uc3RleHByIE9wdGlvblNldDxBY3Rpdml0eVN0YXRlOjpGbGFnPiBmb2N1c2VkQWN0aXZlV2lu
ZG93ID0geyBBY3Rpdml0eQogCiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJiBwYWdlKQogICAgIDogbV9w
YWdlKHBhZ2UpCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICAsIG1fb2JzZXJ2ZXIoKnRoaXMpCisj
ZW5kaWYKIHsKIH0KIApAQCAtMTQ4LDYgKzE1NSwyOCBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVu
dAogICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUgeyBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgq
ZnJhbWUpLT5mcmFtZUlEKCksIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpLCBkb2N1
bWVudC50b3BPcmlnaW4oKS5kYXRhKCkgfSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnkgc2hvdWxkTm90aWZ5KQor
eworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmdl
dE1lZGlhU3RyZWFtRGV2aWNlcyhbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXMs
IHNob3VsZE5vdGlmeV0oYXV0byYmIG5ld0RldmljZXMpIG11dGFibGUgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghaGF2ZURldmlj
ZXNDaGFuZ2VkKG1fY2FwdHVyZURldmljZXMsIG5ld0RldmljZXMpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIG1fY2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOwor
ICAgICAgICBpZiAoc2hvdWxkTm90aWZ5ID09IFNob3VsZE5vdGlmeTo6WWVzKQorICAgICAgICAg
ICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpEZXZpY2VPYnNlcnZlcjo6ZGV2aWNlc0NoYW5nZWQo
KQoreworICAgIG1fbWFuYWdlci51cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Olll
cyk7Cit9CisjZW5kaWYKKwogVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNlcnZlclRv
a2VuIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6YWRkRGV2aWNlQ2hhbmdlT2Jz
ZXJ2ZXIoRnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQogewogICAgIGF1dG8gaWRlbnRpZmll
ciA9IFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbjo6Z2VuZXJhdGUo
KTsKQEAgLTE1NSw3ICsxODQsMTIgQEAgVXNlck1lZGlhQ2xpZW50OjpEZXZpY2VDaGFuZ2VPYnNl
cnZlclRva2VuIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6YWQKIAogICAgIGlm
ICghbV9tb25pdG9yaW5nRGV2aWNlQ2hhbmdlKSB7CiAgICAgICAgIG1fbW9uaXRvcmluZ0Rldmlj
ZUNoYW5nZSA9IHRydWU7CisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICAgICAgdXBkYXRlQ2FwdHVy
ZURldmljZXMoU2hvdWxkTm90aWZ5OjpObyk7CisgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIobV9v
YnNlcnZlcik7CisjZWxzZQogICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpKTsKKyNlbmRpZgogICAgIH0KICAg
ICByZXR1cm4gaWRlbnRpZmllcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaAppbmRleCAwNDdhZmEyMWNmY2VlM2QwMDliZGUzNjE3NzZjODIxOTMwYTRk
ZGNiLi5iODE1NzAzNWIxZmM4YTJjY2JjNGQ5NTUzYjM3NTIwN2ZhZTkwMGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFD
YW5TdGFydExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRzLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Vc2VyTWVkaWFDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJNZWRp
YVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMzQsNyArMzUsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHJpdmF0ZSBXZWJDb3JlOjpNZWRpYUNhblN0YXJ0TGlz
dGVuZXIgeworY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHVibGlj
IFdlYkNvcmU6Ok1lZGlhQ2FuU3RhcnRMaXN0ZW5lciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKFdlYlBhZ2UmKTsKQEAgLTUzLDYgKzU0LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNh
cHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogCiBwcml2YXRlOgorI2lmIFVTRShHU1RSRUFNRVIpCisg
ICAgY2xhc3MgRGV2aWNlT2JzZXJ2ZXIgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6T2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQgRGV2
aWNlT2JzZXJ2ZXIoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBtYW5hZ2VyKQor
ICAgICAgICAgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAgICAgeyB9CisKKyAgICAgICAg
dm9pZCBkZXZpY2VzQ2hhbmdlZCgpIGZpbmFsOworICAgIHByaXZhdGU6CisgICAgICAgIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgbV9tYW5hZ2VyOworICAgIH07CisjZW5kaWYK
KwogICAgIHZvaWQgc2VuZFVzZXJNZWRpYVJlcXVlc3QoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVz
dCYpOwogCiAgICAgLy8gV2ViQ29yZTo6TWVkaWFDYW5TdGFydExpc3RlbmVyCkBAIC02NSw2ICs3
OSwxNCBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpVc2VyTWVkaWFDbGllbnQ6
OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW4sIEZ1bmN0aW9uPHZvaWQoKT4+IG1fZGV2aWNlQ2hh
bmdlT2JzZXJ2ZXJNYXA7CiAgICAgYm9vbCBtX21vbml0b3JpbmdEZXZpY2VDaGFuZ2UgeyBmYWxz
ZSB9OworCisjaWYgVVNFKEdTVFJFQU1FUikKKyAgICBlbnVtIGNsYXNzIFNob3VsZE5vdGlmeSA6
IGJvb2wgeyBObywgWWVzIH07CisgICAgdm9pZCB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGRO
b3RpZnkpOworCisgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fY2FwdHVyZURl
dmljZXM7CisgICAgRGV2aWNlT2JzZXJ2ZXIgbV9vYnNlcnZlcjsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425759</attachid>
            <date>2021-04-12 09:40:02 -0700</date>
            <delta_ts>2021-04-12 09:42:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210412094000.patch</filename>
            <type>text/plain</type>
            <size>19534</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg4MjQ2NjUyOTQwNzNl
MDAzZDY2ZjYxZThmMDhjMmMwYWQ4Mjc0Yi4uZTcyNTkwMTU3Y2Q3NzkxY2U0YTc5MWE3NDk2ZDcw
NWI5MTlmYjgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA0LTEyICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBDYXB0dXJlRGV2aWNlIG1vbml0b3IgdXNlZCBmcm9tIFVJUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyODg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWW91ZW5uIEZhYmxldCAuCisKKyAgICAgICAgTW92ZSB0aGUgZGV2aWNlIG9ic2Vy
dmVyIGluZnJhc3RydWN0dXJlIGZyb20gdGhlIFdlYktpdCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ciB0byB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci4KKworICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmhhdmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok9ic2VydmVyOjp+T2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlc0No
YW5nZWRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpyZW1vdmVEZXZpY2VzQ2hhbmdlZE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXI6OmRldmljZXNDaGFuZ2Vk
KToKKwogMjAyMS0wNC0xMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IENsYW1wIG92ZXJyaWRpbmdDb250ZW50TG9naWNhbFdpZHRoL0hlaWdodCB0byB6ZXJvCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDk2ODI4NDBjZjkwYTE1ZjI1NWU3ZjA2N2VmYjI1YmNkODJhYzVhZGUuLmMxZGMxZWMw
YTYzNDhkNWI1YmQ1YmIwYWIyN2E0MzI1NzA3NWU4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMjEtMDQtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHU3RyZWFtZXJdIENhcHR1cmVEZXZpY2UgbW9uaXRvciB1c2VkIGZyb20gVUlQ
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjI4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEdT
dHJlYW1lciBwb3J0cyBhaW0gdG8gcmVkdWNlIHVzYWdlIG9mIHRoZSBHU3RyZWFtZXIgbGlicmFy
eSBpbiB0aGUgVUlQcm9jZXNzIGFuZCB0aHVzCisgICAgICAgIHNob3VsZCBub3QgcmVsYXkgY2Fw
dHVyZSBkZXZpY2VjaGFuZ2UgbW9uaXRvcmluZyB0byB0aGUgVUlQcm9jZXNzLiBGb3IgdGhlIGxv
bmcgdGVybSB3ZSBwbGFuCisgICAgICAgIHRvIG1pZ3JhdGUgbWVkaWEgcHJvY2Vzc2luZyB0byB0
aGUgR1BVUHJvY2VzcyBidXQgZm9yIG5vdyB3ZSBoYXZlIHRvIG1haW50YWluIHRoZSBtZWRpYQor
ICAgICAgICBwaXBlbGluZXMgaW4gdGhlIFdlYlByb2Nlc3MuIEluaXRpYWxpemluZyBHU3RyZWFt
ZXIgaW4gbXVsdGlwbGUgcHJvY2Vzc2VzIChpbmNsdWRpbmcgdGhlCisgICAgICAgIFVJUHJvY2Vz
cykgaGFzIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgaW1wYWN0IG9uIGVtYmVkZGVkIHBsYXRm
b3JtcywgdGhhdCdzIHdoeSB3ZSB0cnkgdG8KKyAgICAgICAgYXZvaWQgaXQgYXMgbXVjaCBhcyBw
b3NzaWJsZS4KKworICAgICAgICBUaGUgZGV2aWNlIG1vbml0b3JpbmcgY29kZSBmcm9tIHRoZSBV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlciB3YXMgcGFydGx5IG1vdmVkIHRvIHRoZQorICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIHNvIHRoYXQgaXQgY2FuIGJlIGVhc2lseSByZXVzZWQg
YnkgR1N0cmVhbWVyIHBvcnRzIGZyb20gdGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpVc2Vy
TWVkaWFQcm9jZXNzTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpkZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyOjpiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6dXBkYXRlQ2FwdHVyZURldmljZXMpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OkRldmljZU9i
c2VydmVyOjpkZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6YWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
RGV2aWNlT2JzZXJ2ZXI6OkRldmljZU9ic2VydmVyKToKKwogMjAyMS0wNC0xMiAgQWRyaWFuIFBl
cmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdW0dUS10g
VXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIHdoZW5ldmVyIHBvc3NpYmxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKaW5k
ZXggM2YwYzIxZjhlYWUzODY0YzY5OTJiMGI0ZDAzY2E0ZjQ3MTYyYmI5OC4uMTVjNmQ3M2Y2MjFj
NDllZmY4ODBlOWI4OWVlZGVjZjBhZDg1ZjA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaApAQCAtMTQwLDYgKzE0MCwyNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lzTW9ja0RldmljZSB7IGZhbHNlIH07CiB9OwogCitp
bmxpbmUgYm9vbCBoYXZlRGV2aWNlc0NoYW5nZWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+
JiBvbGREZXZpY2VzLCBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCit7
CisgICAgaWYgKG9sZERldmljZXMuc2l6ZSgpICE9IG5ld0RldmljZXMuc2l6ZSgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGZvciAoYXV0byYgbmV3RGV2aWNlIDogbmV3RGV2aWNlcykg
eworICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmEgJiYgbmV3RGV2aWNlLnR5cGUoKSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byBp
bmRleCA9IG9sZERldmljZXMuZmluZE1hdGNoaW5nKFsmbmV3RGV2aWNlXShhdXRvJiBvbGREZXZp
Y2UpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgPT0gb2xk
RGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xkRGV2aWNl
LmVuYWJsZWQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKGluZGV4ID09IG5vdEZvdW5k
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBkYzU0ZDRhMGUxMGE5Y2NiNjgz
ZWFjNGE2Y2NiZjMxOTFhM2VmN2M2Li41NDI2YzA2MGYxYWYxMmNjYjE0Nzk1NTQxYTRmMWIzYjA4
Mjg2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNDIsNiArNDIs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBTZWNvbmRzIGRldmlj
ZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZhbCB7IDIwMF9tcyB9OworCiBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC01MCw2ICs1Miw3IEBAIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpCiB9
CiAKIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIo
KQorICAgIDogbV9kZWJvdW5jZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9ic2VydmVycykKIHsKICAg
ICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbih0cnVl
KTsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzV2lkdGgodHJ1ZSk7CkBA
IC02Myw2ICs2Niw4IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIoKQogCiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp+UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcigpID0gZGVmYXVsdDsKIAorUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
T2JzZXJ2ZXI6On5PYnNlcnZlcigpID0gZGVmYXVsdDsKKwogdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwg
TmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIsIFN0cmluZyYmIGhhc2hT
YWx0LCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0Rl
dmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFZlY3RvcjxS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKQEAgLTE4OCwxOCArMTkzLDM0
IEBAIFN0cmluZyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpoYXNoU3RyaW5nV2l0aFNhbHQo
Y29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyCiAgICAgcmV0dXJuIFNIQTE6OmhleERpZ2VzdChk
aWdlc3QpLmRhdGEoKTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRE
ZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQor
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVy
KE9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IG1fb2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6cmVtb3ZlRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQoIW1fZGV2aWNlQ2hh
bmdlZE9ic2VydmVyKTsKLSAgICBtX2RldmljZUNoYW5nZWRPYnNlcnZlciA9IFdURk1vdmUob2Jz
ZXJ2ZXIpOworICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShvYnNlcnZlcik7CiB9CiAKIHZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmIChtX2RldmljZUNoYW5nZWRPYnNlcnZlcikK
LSAgICAgICAgbV9kZXZpY2VDaGFuZ2VkT2JzZXJ2ZXIoKTsKKworICAgIC8vIFdoZW4gYSBkZXZp
Y2Ugd2l0aCBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgaXMgYXR0YWNoZWQgb3IgZGV0YWNoZWQsIHRo
ZSBDYXB0dXJlRGV2aWNlIG5vdGlmaWNhdGlvbiBmb3IKKyAgICAvLyB0aGUgZGlmZmVyZW50IGRl
dmljZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1lIHRpbWUgc28gZGVsYXkgYSBiaXQgc28gd2Ug
Y2FuIGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCisgICAgaWYgKCFtX2RlYm91bmNlVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgbV9kZWJvdW5jZVRpbWVyLnN0YXJ0T25lU2hvdChkZXZpY2VDaGFu
Z2VEZWJvdW5jZVRpbWVySW50ZXJ2YWwpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9ic2VydmVycygpCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChbXShh
dXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5kZXZpY2VzQ2hhbmdlZCgpOworICAg
IH0pOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldERpc3BsYXlNZWRp
YURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0LCBWZWN0b3I8RGV2aWNl
SW5mbz4mIGRpYXBsYXlEZXZpY2VJbmZvLCBTdHJpbmcmIGZpcnN0SW52YWxpZENvbnN0cmFpbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggNjk1NjFiMTliYTg0NTUxN2I3NDQy
NDI0NTY4NmZhMzY0ZDRkNDU5Mi4uNGIxNjg5NmYxZWFkYzA1Nzk4NzFlNzA3ZWYzYzZjOGJmYmU2
N2NmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtMzksOCArMzksMTAgQEAK
ICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTIsOSArNTQsMTYgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzOwogY2xhc3MgVHJhY2tTb3VyY2VJbmZvOwogCiBzdHJ1Y3QgTWVkaWFD
b25zdHJhaW50czsKLSAgICAKLWNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIgeworCitj
bGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIsIFdURjo6RGVzdHJ1
Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPiB7CiBwdWJsaWM6CisgICAgY2xhc3MgT2JzZXJ2ZXIg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8T2JzZXJ2ZXI+IHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHZpcnR1YWwgfk9ic2VydmVyKCk7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGRldmljZXNDaGFu
Z2VkKCkgPSAwOworICAgIH07CisKICAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNp
bmdsZXRvbigpOwpAQCAtODQsNyArOTMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgaGFzaFN0cmluZ1dpdGhTYWx0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmlu
ZyYgaGFzaFNhbHQpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZXZpY2VzQ2hhbmdl
ZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZURldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAg
IHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKQEAgLTEwOCw3ICsxMTgsMTAgQEAgcHJp
dmF0ZToKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1
cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fZGV2aWNl
Q2hhbmdlZE9ic2VydmVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI+IG1fZGVib3VuY2VUaW1lcjsKKyAgICB2b2lkIHRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9i
c2VydmVycygpOworCisgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwogCiAg
ICAgQXVkaW9DYXB0dXJlRmFjdG9yeSogbV9hdWRpb0NhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgeyBu
dWxscHRyIH07CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSogbV92aWRlb0NhcHR1cmVGYWN0b3J5
T3ZlcnJpZGUgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggOGZkNThjZTRhZDQyY2FlMTYwYTkwNGM2
NTAyN2RlYWNlN2MyNTA4MC4uZjBkY2M3ZTE3Nzc1ZDEwNTQwMGNkNWU2ZDIzZmI3MmQ4NzNlYzA0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RyYW5zbGF0ZWRQcm9jZXNzLmg+CkBAIC00MSw4ICs0MCw2IEBAIHN0YXRp
YyBjb25zdCBBU0NJSUxpdGVyYWwgYXBwbGVDYW1lcmFTZXJ2aWNlUGF0aCB7ICJjb20uYXBwbGUu
YXBwbGVjYW1lcmFkIl9zIH07CiBzdGF0aWMgY29uc3QgQVNDSUlMaXRlcmFsIGFkZGl0aW9uYWxB
cHBsZUNhbWVyYVNlcnZpY2VQYXRoIHsgImNvbS5hcHBsZS5hcHBsZWgxM2NhbWVyYWQiX3MgfTsK
ICNlbmRpZgogCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBkZXZpY2VDaGFuZ2VEZWJvdW5jZVRpbWVy
SW50ZXJ2YWwgeyAyMDBfbXMgfTsKLQogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcj4gbWFuYWdlcjsKQEAgLTUwLDcgKzQ3LDYgQEAgVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24o
KQogfQogCiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIo
KQotICAgIDogbV9kZWJvdW5jZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpCiB7CiB9CiAKQEAgLTIxNiw1
MCArMjEyLDMxIEBAIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmNhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpCiAKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnVwZGF0ZUNhcHR1cmVE
ZXZpY2VzKFNob3VsZE5vdGlmeSBzaG91bGROb3RpZnkpCiB7Ci0gICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKFt0
aGlzLCBzaG91bGROb3RpZnldIChhdXRvJiYgbmV3RGV2aWNlcykgbXV0YWJsZSB7Ci0gICAgICAg
IGF1dG8gb2xkRGV2aWNlcyA9IFdURk1vdmUobV9jYXB0dXJlRGV2aWNlcyk7Ci0gICAgICAgIG1f
Y2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOwotCi0gICAgICAgIGlmIChzaG91
bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5OjpObykKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRNZWRpYVN0cmVhbURldmljZXMoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBzaG91bGROb3RpZnldKGF1dG8mJiBuZXdEZXZp
Y2VzKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBpZiAobV9jYXB0dXJlRGV2aWNlcy5zaXplKCkgPT0gb2xkRGV2aWNlcy5z
aXplKCkpIHsKLSAgICAgICAgICAgIGJvb2wgaGF2ZUNoYW5nZXMgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGZvciAoYXV0byAmbmV3RGV2aWNlIDogbV9jYXB0dXJlRGV2aWNlcykgewotICAgICAgICAg
ICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYSAmJiBuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotCi0gICAgICAgICAgICAgICAgYXV0byBpbmRleCA9IG9sZERldmljZXMuZmluZE1hdGNo
aW5nKFsmbmV3RGV2aWNlXSAoYXV0byYgb2xkRGV2aWNlKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgPT0gb2xkRGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xkRGV2aWNlLmVuYWJsZWQoKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkg
ewotICAgICAgICAgICAgICAgICAgICBoYXZlQ2hhbmdlcyA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgaWYgKCFoYXZlQ2hhbmdlcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KKyAgICAgICAgaWYgKCFoYXZlRGV2aWNlc0NoYW5nZWQobV9jYXB0dXJlRGV2aWNlcywgbmV3
RGV2aWNlcykpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8gV2hlbiBhIGRldmlj
ZSB3aXRoIGNhbWVyYSBhbmQgbWljcm9waG9uZSBpcyBhdHRhY2hlZCBvciBkZXRhY2hlZCwgdGhl
IENhcHR1cmVEZXZpY2Ugbm90aWZpY2F0aW9uIGZvcgotICAgICAgICAvLyB0aGUgZGlmZmVyZW50
IGRldmljZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1lIHRpbWUgc28gZGVsYXkgYSBiaXQgc28g
d2UgY2FuIGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCi0gICAgICAgIGlmICghbV9kZWJvdW5jZVRp
bWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX2RlYm91bmNlVGltZXIuc3RhcnRPbmVTaG90
KGRldmljZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZhbCk7CisgICAgICAgIG1fY2FwdHVyZURl
dmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOworICAgICAgICBpZiAoc2hvdWxkTm90aWZ5ID09
IFNob3VsZE5vdGlmeTo6WWVzKQorICAgICAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7
CiAgICAgfSk7CiB9CiAKK3ZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmRldmljZXNDaGFu
Z2VkKCkKK3sKKyAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Olllcyk7Cit9
CisKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVE
ZXZpY2VzKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAKICAgICBz
dGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW3RoaXNdIHsKICAgICAgICAgdXBkYXRlQ2FwdHVyZURl
dmljZXMoU2hvdWxkTm90aWZ5OjpObyk7Ci0KLSAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcihbdGhp
c10oKSB7Ci0gICAgICAgICAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Olll
cyk7Ci0gICAgICAgIH0pOworICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKCp0aGlzKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmgKaW5kZXggNmI5ODRkMTRmN2RjNjA2MDY3OWQzMTY2YTcwZTBmZjhlMzYzZjhmNi4u
NjQwZGQ4MWI1ZjU0YjU2MmI2ZWM4YjRjNDgwYzgyMTEyNmUzZDA5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oCkBAIC0yMywxMyAr
MjMsMTUgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
VXNlck1lZGlhQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAotY2xhc3MgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIgeworY2xhc3MgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIgOiBwdWJsaWMgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXIgewogcHVibGljOgogCiAg
ICAgc3RhdGljIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyJiBzaW5nbGV0b24oKTsKQEAgLTQ4LDEy
ICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNl
cygpOwogCiBwcml2YXRlOgotICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IHsgWWVzLCBObyB9
OworICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICB2
b2lkIHVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlmeSk7CiAgICAgdm9pZCBjYXB0dXJl
RGV2aWNlc0NoYW5nZWQoKTsKIAorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok9i
c2VydmVyCisgICAgdm9pZCBkZXZpY2VzQ2hhbmdlZCgpIGZpbmFsOworCiAgICAgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fY2FwdHVyZURldmljZXM7Ci0gICAgUnVuTG9vcDo6VGlt
ZXI8VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI+IG1fZGVib3VuY2VUaW1lcjsKICAgICBib29sIG1f
Y2FwdHVyZUVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2RlbnlOZXh0UmVxdWVzdCB7IGZh
bHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcAppbmRleCBmZDZhYjRkZjcyZjIxZDA5ODk3NzFhNTBhMGQ4MjVkMDJlOGFmZjM2Li42NGNl
OGYzNTc1ODhhN2QwZjBmMGU0OTNiZTU5MThkMmQzMTk3MWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMzUsNiArMzUsMTAgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbkRhdGEuaD4KIAorI2lmIFVTRShHU1RSRUFNRVIpCisjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTQ4LDYgKzE1MiwyOCBAQCB2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
KERvY3VtZW50JiBkb2N1bWVudAogICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUgeyBXZWJGcmFt
ZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpLT5mcmFtZUlEKCksIGRvY3VtZW50LnNlY3VyaXR5T3Jp
Z2luKCkuZGF0YSgpLCBkb2N1bWVudC50b3BPcmlnaW4oKS5kYXRhKCkgfSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3Rp
Znkgc2hvdWxkTm90aWZ5KQoreworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcyhbd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyksIHRoaXMsIHNob3VsZE5vdGlmeV0oYXV0byYmIG5ld0RldmljZXMpIG11dGFi
bGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGlmICghaGF2ZURldmljZXNDaGFuZ2VkKG1fY2FwdHVyZURldmljZXMsIG5ld0RldmljZXMp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY2FwdHVyZURldmljZXMgPSBXVEZN
b3ZlKG5ld0RldmljZXMpOworICAgICAgICBpZiAoc2hvdWxkTm90aWZ5ID09IFNob3VsZE5vdGlm
eTo6WWVzKQorICAgICAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CisgICAgfSk7Cit9
CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkZXZpY2VzQ2hhbmdl
ZCgpCit7CisgICAgdXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5OjpZZXMpOworfQor
I2VuZGlmCisKIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmFkZERldmljZUNoYW5nZU9ic2VydmVyKEZ1
bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKIHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBVc2Vy
TWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW46OmdlbmVyYXRlKCk7CkBAIC0x
NTUsNyArMTgxLDEyIEBAIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tl
biBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmFkCiAKICAgICBpZiAoIW1fbW9u
aXRvcmluZ0RldmljZUNoYW5nZSkgewogICAgICAgICBtX21vbml0b3JpbmdEZXZpY2VDaGFuZ2Ug
PSB0cnVlOworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgICAgIHVwZGF0ZUNhcHR1cmVEZXZpY2Vz
KFNob3VsZE5vdGlmeTo6Tm8pOworICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5hZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKCp0aGlzKTsKKyNl
bHNlCiAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJlZ2luTW9u
aXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkpOworI2VuZGlmCiAgICAgfQogICAgIHJldHVybiBpZGVu
dGlmaWVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
CmluZGV4IDA0N2FmYTIxY2ZjZWUzZDAwOWJkZTM2MTc3NmM4MjE5MzBhNGRkY2IuLjg0N2EwNzZi
ZGNjZjQ3ZWNmZDBjMjVmOTBiOGM5MzUwODc1ZjI2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJT
YW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNhblN0YXJ0TGlzdGVu
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJNZWRpYUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zNCw5ICszNSwxNiBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyIDogcHJpdmF0ZSBXZWJDb3JlOjpNZWRpYUNhblN0YXJ0TGlzdGVuZXIgeworY2xh
c3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6Ok1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcgorI2lmIFVTRShHU1RSRUFNRVIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6T2JzZXJ2ZXIKKyNlbmRpZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgorICAgIHVzaW5nIFdlYkNvcmU6Ok1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjo6
d2Vha1B0ckZhY3Rvcnk7CisgICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IFdlYkNvcmU6Ok1lZGlh
Q2FuU3RhcnRMaXN0ZW5lcjo6V2Vha1ZhbHVlVHlwZTsKKwogICAgIGV4cGxpY2l0IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CiAgICAgflVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigpID0gZGVmYXVsdDsKIApAQCAtNTMsNiArNjEsMTEgQEAgcHVi
bGljOgogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKIHByaXZhdGU6CisjaWYg
VVNFKEdTVFJFQU1FUikKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpPYnNlcnZlcgorICAgIHZvaWQgZGV2aWNlc0NoYW5nZWQoKSBmaW5hbDsKKyNlbmRpZgorCiAg
ICAgdm9pZCBzZW5kVXNlck1lZGlhUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0Jik7
CiAKICAgICAvLyBXZWJDb3JlOjpNZWRpYUNhblN0YXJ0TGlzdGVuZXIKQEAgLTY1LDYgKzc4LDEz
IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudDo6RGV2
aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiwgRnVuY3Rpb248dm9pZCgpPj4gbV9kZXZpY2VDaGFuZ2VP
YnNlcnZlck1hcDsKICAgICBib29sIG1fbW9uaXRvcmluZ0RldmljZUNoYW5nZSB7IGZhbHNlIH07
CisKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IDogYm9v
bCB7IE5vLCBZZXMgfTsKKyAgICB2b2lkIHVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlm
eSk7CisKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gbV9jYXB0dXJlRGV2aWNl
czsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425760</attachid>
            <date>2021-04-12 09:42:17 -0700</date>
            <delta_ts>2021-04-13 01:38:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222888-20210412094216.patch</filename>
            <type>text/plain</type>
            <size>19309</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg4MjQ2NjUyOTQwNzNl
MDAzZDY2ZjYxZThmMDhjMmMwYWQ4Mjc0Yi4uZTcyNTkwMTU3Y2Q3NzkxY2U0YTc5MWE3NDk2ZDcw
NWI5MTlmYjgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTA0LTEyICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XSBDYXB0dXJlRGV2aWNlIG1vbml0b3IgdXNlZCBmcm9tIFVJUHJvY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyODg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWW91ZW5uIEZhYmxldCAuCisKKyAgICAgICAgTW92ZSB0aGUgZGV2aWNlIG9ic2Vy
dmVyIGluZnJhc3RydWN0dXJlIGZyb20gdGhlIFdlYktpdCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdl
ciB0byB0aGUKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci4KKworICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OmhhdmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok9ic2VydmVyOjp+T2JzZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YWRkRGV2aWNlc0No
YW5nZWRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpyZW1vdmVEZXZpY2VzQ2hhbmdlZE9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp0cmlnZ2VyRGV2aWNlc0NoYW5n
ZWRPYnNlcnZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXI6OmRldmljZXNDaGFuZ2Vk
KToKKwogMjAyMS0wNC0xMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IENsYW1wIG92ZXJyaWRpbmdDb250ZW50TG9naWNhbFdpZHRoL0hlaWdodCB0byB6ZXJvCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDk2ODI4NDBjZjkwYTE1ZjI1NWU3ZjA2N2VmYjI1YmNkODJhYzVhZGUuLmMxZGMxZWMw
YTYzNDhkNWI1YmQ1YmIwYWIyN2E0MzI1NzA3NWU4M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMjEtMDQtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHU3RyZWFtZXJdIENhcHR1cmVEZXZpY2UgbW9uaXRvciB1c2VkIGZyb20gVUlQ
cm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjI4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEdT
dHJlYW1lciBwb3J0cyBhaW0gdG8gcmVkdWNlIHVzYWdlIG9mIHRoZSBHU3RyZWFtZXIgbGlicmFy
eSBpbiB0aGUgVUlQcm9jZXNzIGFuZCB0aHVzCisgICAgICAgIHNob3VsZCBub3QgcmVsYXkgY2Fw
dHVyZSBkZXZpY2VjaGFuZ2UgbW9uaXRvcmluZyB0byB0aGUgVUlQcm9jZXNzLiBGb3IgdGhlIGxv
bmcgdGVybSB3ZSBwbGFuCisgICAgICAgIHRvIG1pZ3JhdGUgbWVkaWEgcHJvY2Vzc2luZyB0byB0
aGUgR1BVUHJvY2VzcyBidXQgZm9yIG5vdyB3ZSBoYXZlIHRvIG1haW50YWluIHRoZSBtZWRpYQor
ICAgICAgICBwaXBlbGluZXMgaW4gdGhlIFdlYlByb2Nlc3MuIEluaXRpYWxpemluZyBHU3RyZWFt
ZXIgaW4gbXVsdGlwbGUgcHJvY2Vzc2VzIChpbmNsdWRpbmcgdGhlCisgICAgICAgIFVJUHJvY2Vz
cykgaGFzIGEgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgaW1wYWN0IG9uIGVtYmVkZGVkIHBsYXRm
b3JtcywgdGhhdCdzIHdoeSB3ZSB0cnkgdG8KKyAgICAgICAgYXZvaWQgaXQgYXMgbXVjaCBhcyBw
b3NzaWJsZS4KKworICAgICAgICBUaGUgZGV2aWNlIG1vbml0b3JpbmcgY29kZSBmcm9tIHRoZSBV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlciB3YXMgcGFydGx5IG1vdmVkIHRvIHRoZQorICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIHNvIHRoYXQgaXQgY2FuIGJlIGVhc2lseSByZXVzZWQg
YnkgR1N0cmVhbWVyIHBvcnRzIGZyb20gdGhlCisgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpVc2Vy
TWVkaWFQcm9jZXNzTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpkZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyOjpiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6dXBkYXRlQ2FwdHVyZURldmljZXMpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OkRldmljZU9i
c2VydmVyOjpkZXZpY2VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6YWRkRGV2aWNlQ2hhbmdlT2JzZXJ2ZXIpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
RGV2aWNlT2JzZXJ2ZXI6OkRldmljZU9ic2VydmVyKToKKwogMjAyMS0wNC0xMiAgQWRyaWFuIFBl
cmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdW0dUS10g
VXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIHdoZW5ldmVyIHBvc3NpYmxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKaW5k
ZXggM2YwYzIxZjhlYWUzODY0YzY5OTJiMGI0ZDAzY2E0ZjQ3MTYyYmI5OC4uMTVjNmQ3M2Y2MjFj
NDllZmY4ODBlOWI4OWVlZGVjZjBhZDg1ZjA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaApAQCAtMTQwLDYgKzE0MCwyNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lzTW9ja0RldmljZSB7IGZhbHNlIH07CiB9OwogCitp
bmxpbmUgYm9vbCBoYXZlRGV2aWNlc0NoYW5nZWQoY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+
JiBvbGREZXZpY2VzLCBjb25zdCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIG5ld0RldmljZXMpCit7
CisgICAgaWYgKG9sZERldmljZXMuc2l6ZSgpICE9IG5ld0RldmljZXMuc2l6ZSgpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgIGZvciAoYXV0byYgbmV3RGV2aWNlIDogbmV3RGV2aWNlcykg
eworICAgICAgICBpZiAobmV3RGV2aWNlLnR5cGUoKSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpDYW1lcmEgJiYgbmV3RGV2aWNlLnR5cGUoKSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byBp
bmRleCA9IG9sZERldmljZXMuZmluZE1hdGNoaW5nKFsmbmV3RGV2aWNlXShhdXRvJiBvbGREZXZp
Y2UpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgPT0gb2xk
RGV2aWNlLnBlcnNpc3RlbnRJZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xkRGV2aWNl
LmVuYWJsZWQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKGluZGV4ID09IG5vdEZvdW5k
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBkYzU0ZDRhMGUxMGE5Y2NiNjgz
ZWFjNGE2Y2NiZjMxOTFhM2VmN2M2Li41NDI2YzA2MGYxYWYxMmNjYjE0Nzk1NTQxYTRmMWIzYjA4
Mjg2OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtNDIsNiArNDIs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBTZWNvbmRzIGRldmlj
ZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZhbCB7IDIwMF9tcyB9OworCiBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC01MCw2ICs1Miw3IEBAIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXImIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpCiB9
CiAKIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIo
KQorICAgIDogbV9kZWJvdW5jZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9ic2VydmVycykKIHsKICAg
ICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbih0cnVl
KTsKICAgICBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzV2lkdGgodHJ1ZSk7CkBA
IC02Myw2ICs2Niw4IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIoKQogCiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp+UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcigpID0gZGVmYXVsdDsKIAorUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
T2JzZXJ2ZXI6On5PYnNlcnZlcigpID0gZGVmYXVsdDsKKwogdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShSZWY8Y29uc3QgTG9nZ2VyPiYmIGxvZ2dlciwg
TmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIsIFN0cmluZyYmIGhhc2hT
YWx0LCBDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2UsIENhcHR1cmVEZXZpY2UmJiB2aWRlb0Rl
dmljZSwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFZlY3RvcjxS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IGF1ZGlvU291cmNlczsKQEAgLTE4OCwxOCArMTkzLDM0
IEBAIFN0cmluZyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpoYXNoU3RyaW5nV2l0aFNhbHQo
Y29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyCiAgICAgcmV0dXJuIFNIQTE6OmhleERpZ2VzdChk
aWdlc3QpLmRhdGEoKTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRE
ZXZpY2VzQ2hhbmdlZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmIG9ic2VydmVyKQor
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjphZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVy
KE9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IG1fb2JzZXJ2ZXJzLmFkZChvYnNlcnZlcik7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6cmVtb3ZlRGV2aWNlc0NoYW5nZWRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQoIW1fZGV2aWNlQ2hh
bmdlZE9ic2VydmVyKTsKLSAgICBtX2RldmljZUNoYW5nZWRPYnNlcnZlciA9IFdURk1vdmUob2Jz
ZXJ2ZXIpOworICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShvYnNlcnZlcik7CiB9CiAKIHZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGlmIChtX2RldmljZUNoYW5nZWRPYnNlcnZlcikK
LSAgICAgICAgbV9kZXZpY2VDaGFuZ2VkT2JzZXJ2ZXIoKTsKKworICAgIC8vIFdoZW4gYSBkZXZp
Y2Ugd2l0aCBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgaXMgYXR0YWNoZWQgb3IgZGV0YWNoZWQsIHRo
ZSBDYXB0dXJlRGV2aWNlIG5vdGlmaWNhdGlvbiBmb3IKKyAgICAvLyB0aGUgZGlmZmVyZW50IGRl
dmljZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1lIHRpbWUgc28gZGVsYXkgYSBiaXQgc28gd2Ug
Y2FuIGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCisgICAgaWYgKCFtX2RlYm91bmNlVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgbV9kZWJvdW5jZVRpbWVyLnN0YXJ0T25lU2hvdChkZXZpY2VDaGFu
Z2VEZWJvdW5jZVRpbWVySW50ZXJ2YWwpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9ic2VydmVycygpCit7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisgICAgbV9vYnNlcnZlcnMuZm9yRWFjaChbXShh
dXRvJiBvYnNlcnZlcikgeworICAgICAgICBvYnNlcnZlci5kZXZpY2VzQ2hhbmdlZCgpOworICAg
IH0pOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldERpc3BsYXlNZWRp
YURldmljZXMoY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiByZXF1ZXN0LCBWZWN0b3I8RGV2aWNl
SW5mbz4mIGRpYXBsYXlEZXZpY2VJbmZvLCBTdHJpbmcmIGZpcnN0SW52YWxpZENvbnN0cmFpbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggNjk1NjFiMTliYTg0NTUxN2I3NDQy
NDI0NTY4NmZhMzY0ZDRkNDU5Mi4uNGIxNjg5NmYxZWFkYzA1Nzk4NzFlNzA3ZWYzYzZjOGJmYmU2
N2NmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtMzksOCArMzksMTAgQEAK
ICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnQuaCIKICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNTIsOSArNTQsMTYgQEAgY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzOwogY2xhc3MgVHJhY2tTb3VyY2VJbmZvOwogCiBzdHJ1Y3QgTWVkaWFD
b25zdHJhaW50czsKLSAgICAKLWNsYXNzIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIgeworCitj
bGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIsIFdURjo6RGVzdHJ1
Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPiB7CiBwdWJsaWM6CisgICAgY2xhc3MgT2JzZXJ2ZXIg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8T2JzZXJ2ZXI+IHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHZpcnR1YWwgfk9ic2VydmVyKCk7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGRldmljZXNDaGFu
Z2VkKCkgPSAwOworICAgIH07CisKICAgICB+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHNp
bmdsZXRvbigpOwpAQCAtODQsNyArOTMsOCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgaGFzaFN0cmluZ1dpdGhTYWx0KGNvbnN0IFN0cmluZyYgaWQsIGNvbnN0IFN0cmlu
ZyYgaGFzaFNhbHQpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZXZpY2VzQ2hhbmdl
ZE9ic2VydmVyKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGFkZERldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbW92ZURldmljZXNDaGFuZ2VkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAg
IHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKQEAgLTEwOCw3ICsxMTgsMTAgQEAgcHJp
dmF0ZToKIAogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1
cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fZGV2aWNl
Q2hhbmdlZE9ic2VydmVyOworICAgIFJ1bkxvb3A6OlRpbWVyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI+IG1fZGVib3VuY2VUaW1lcjsKKyAgICB2b2lkIHRyaWdnZXJEZXZpY2VzQ2hhbmdlZE9i
c2VydmVycygpOworCisgICAgV2Vha0hhc2hTZXQ8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXJzOwogCiAg
ICAgQXVkaW9DYXB0dXJlRmFjdG9yeSogbV9hdWRpb0NhcHR1cmVGYWN0b3J5T3ZlcnJpZGUgeyBu
dWxscHRyIH07CiAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSogbV92aWRlb0NhcHR1cmVGYWN0b3J5
T3ZlcnJpZGUgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggOGZkNThjZTRhZDQyY2FlMTYwYTkwNGM2
NTAyN2RlYWNlN2MyNTA4MC4uZjBkY2M3ZTE3Nzc1ZDEwNTQwMGNkNWU2ZDIzZmI3MmQ4NzNlYzA0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RyYW5zbGF0ZWRQcm9jZXNzLmg+CkBAIC00MSw4ICs0MCw2IEBAIHN0YXRp
YyBjb25zdCBBU0NJSUxpdGVyYWwgYXBwbGVDYW1lcmFTZXJ2aWNlUGF0aCB7ICJjb20uYXBwbGUu
YXBwbGVjYW1lcmFkIl9zIH07CiBzdGF0aWMgY29uc3QgQVNDSUlMaXRlcmFsIGFkZGl0aW9uYWxB
cHBsZUNhbWVyYVNlcnZpY2VQYXRoIHsgImNvbS5hcHBsZS5hcHBsZWgxM2NhbWVyYWQiX3MgfTsK
ICNlbmRpZgogCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBkZXZpY2VDaGFuZ2VEZWJvdW5jZVRpbWVy
SW50ZXJ2YWwgeyAyMDBfbXMgfTsKLQogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24oKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcj4gbWFuYWdlcjsKQEAgLTUwLDcgKzQ3LDYgQEAgVXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXImIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzaW5nbGV0b24o
KQogfQogCiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXIo
KQotICAgIDogbV9kZWJvdW5jZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlVzZXJNZWRp
YVByb2Nlc3NNYW5hZ2VyOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQpCiB7CiB9CiAKQEAgLTIxNiw1
MCArMjEyLDMxIEBAIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmNhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpCiAKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnVwZGF0ZUNhcHR1cmVE
ZXZpY2VzKFNob3VsZE5vdGlmeSBzaG91bGROb3RpZnkpCiB7Ci0gICAgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuZ2V0TWVkaWFTdHJlYW1EZXZpY2VzKFt0
aGlzLCBzaG91bGROb3RpZnldIChhdXRvJiYgbmV3RGV2aWNlcykgbXV0YWJsZSB7Ci0gICAgICAg
IGF1dG8gb2xkRGV2aWNlcyA9IFdURk1vdmUobV9jYXB0dXJlRGV2aWNlcyk7Ci0gICAgICAgIG1f
Y2FwdHVyZURldmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOwotCi0gICAgICAgIGlmIChzaG91
bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5OjpObykKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5nZXRNZWRpYVN0cmVhbURldmljZXMoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpLCB0aGlzLCBzaG91bGROb3RpZnldKGF1dG8mJiBuZXdEZXZp
Y2VzKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBpZiAobV9jYXB0dXJlRGV2aWNlcy5zaXplKCkgPT0gb2xkRGV2aWNlcy5z
aXplKCkpIHsKLSAgICAgICAgICAgIGJvb2wgaGF2ZUNoYW5nZXMgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGZvciAoYXV0byAmbmV3RGV2aWNlIDogbV9jYXB0dXJlRGV2aWNlcykgewotICAgICAgICAg
ICAgICAgIGlmIChuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkNhbWVyYSAmJiBuZXdEZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotCi0gICAgICAgICAgICAgICAgYXV0byBpbmRleCA9IG9sZERldmljZXMuZmluZE1hdGNo
aW5nKFsmbmV3RGV2aWNlXSAoYXV0byYgb2xkRGV2aWNlKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBuZXdEZXZpY2UucGVyc2lzdGVudElkKCkgPT0gb2xkRGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpICYmIG5ld0RldmljZS5lbmFibGVkKCkgIT0gb2xkRGV2aWNlLmVuYWJsZWQoKTsKLSAgICAg
ICAgICAgICAgICB9KTsKLQotICAgICAgICAgICAgICAgIGlmIChpbmRleCA9PSBub3RGb3VuZCkg
ewotICAgICAgICAgICAgICAgICAgICBoYXZlQ2hhbmdlcyA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgaWYgKCFoYXZlQ2hhbmdlcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KKyAgICAgICAgaWYgKCFoYXZlRGV2aWNlc0NoYW5nZWQobV9jYXB0dXJlRGV2aWNlcywgbmV3
RGV2aWNlcykpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgLy8gV2hlbiBhIGRldmlj
ZSB3aXRoIGNhbWVyYSBhbmQgbWljcm9waG9uZSBpcyBhdHRhY2hlZCBvciBkZXRhY2hlZCwgdGhl
IENhcHR1cmVEZXZpY2Ugbm90aWZpY2F0aW9uIGZvcgotICAgICAgICAvLyB0aGUgZGlmZmVyZW50
IGRldmljZXMgd29uJ3QgYXJyaXZlIGF0IHRoZSBzYW1lIHRpbWUgc28gZGVsYXkgYSBiaXQgc28g
d2UgY2FuIGNvYWxlc2NlIHRoZSBjYWxsYmFja3MuCi0gICAgICAgIGlmICghbV9kZWJvdW5jZVRp
bWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX2RlYm91bmNlVGltZXIuc3RhcnRPbmVTaG90
KGRldmljZUNoYW5nZURlYm91bmNlVGltZXJJbnRlcnZhbCk7CisgICAgICAgIG1fY2FwdHVyZURl
dmljZXMgPSBXVEZNb3ZlKG5ld0RldmljZXMpOworICAgICAgICBpZiAoc2hvdWxkTm90aWZ5ID09
IFNob3VsZE5vdGlmeTo6WWVzKQorICAgICAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7
CiAgICAgfSk7CiB9CiAKK3ZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmRldmljZXNDaGFu
Z2VkKCkKK3sKKyAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Olllcyk7Cit9
CisKIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmJlZ2luTW9uaXRvcmluZ0NhcHR1cmVE
ZXZpY2VzKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAKICAgICBz
dGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW3RoaXNdIHsKICAgICAgICAgdXBkYXRlQ2FwdHVyZURl
dmljZXMoU2hvdWxkTm90aWZ5OjpObyk7Ci0KLSAgICAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGV2aWNlc0NoYW5nZWRPYnNlcnZlcihbdGhp
c10oKSB7Ci0gICAgICAgICAgICB1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGROb3RpZnk6Olll
cyk7Ci0gICAgICAgIH0pOworICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5hZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKCp0aGlzKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NN
YW5hZ2VyLmgKaW5kZXggNmI5ODRkMTRmN2RjNjA2MDY3OWQzMTY2YTcwZTBmZjhlMzYzZjhmNi4u
NjQwZGQ4MWI1ZjU0YjU2MmI2ZWM4YjRjNDgwYzgyMTEyNmUzZDA5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oCkBAIC0yMywxMyAr
MjMsMTUgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
VXNlck1lZGlhQ2xpZW50Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAotY2xhc3MgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXIgeworY2xhc3MgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIgOiBwdWJsaWMgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXIgewogcHVibGljOgogCiAg
ICAgc3RhdGljIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyJiBzaW5nbGV0b24oKTsKQEAgLTQ4LDEy
ICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNl
cygpOwogCiBwcml2YXRlOgotICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IHsgWWVzLCBObyB9
OworICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IDogYm9vbCB7IE5vLCBZZXMgfTsKICAgICB2
b2lkIHVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5vdGlmeSk7CiAgICAgdm9pZCBjYXB0dXJl
RGV2aWNlc0NoYW5nZWQoKTsKIAorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok9i
c2VydmVyCisgICAgdm9pZCBkZXZpY2VzQ2hhbmdlZCgpIGZpbmFsOworCiAgICAgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fY2FwdHVyZURldmljZXM7Ci0gICAgUnVuTG9vcDo6VGlt
ZXI8VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI+IG1fZGVib3VuY2VUaW1lcjsKICAgICBib29sIG1f
Y2FwdHVyZUVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2RlbnlOZXh0UmVxdWVzdCB7IGZh
bHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3Ry
ZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcAppbmRleCBmZDZhYjRkZjcyZjIxZDA5ODk3NzFhNTBhMGQ4MjVkMDJlOGFmZjM2Li5lMmU2
NWM3ZTU5Yzk1YjJjN2Y3MmRmZjU0NmE2OTJiNzNiZDgyMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMTQ4LDYgKzE0OCwyOCBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZW51bWVyYXRlTWVkaWFEZXZp
Y2VzKERvY3VtZW50JiBkb2N1bWVudAogICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUgeyBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpLT5mcmFtZUlEKCksIGRvY3VtZW50LnNlY3VyaXR5
T3JpZ2luKCkuZGF0YSgpLCBkb2N1bWVudC50b3BPcmlnaW4oKS5kYXRhKCkgfSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCisjaWYgVVNFKEdTVFJFQU1FUikKK3ZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjp1cGRhdGVDYXB0dXJlRGV2aWNlcyhTaG91bGRO
b3RpZnkgc2hvdWxkTm90aWZ5KQoreworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcyhbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cigqdGhpcyksIHRoaXMsIHNob3VsZE5vdGlmeV0oYXV0byYmIG5ld0RldmljZXMpIG11
dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGlmICghaGF2ZURldmljZXNDaGFuZ2VkKG1fY2FwdHVyZURldmljZXMsIG5ld0Rldmlj
ZXMpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fY2FwdHVyZURldmljZXMgPSBX
VEZNb3ZlKG5ld0RldmljZXMpOworICAgICAgICBpZiAoc2hvdWxkTm90aWZ5ID09IFNob3VsZE5v
dGlmeTo6WWVzKQorICAgICAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CisgICAgfSk7
Cit9CisKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkZXZpY2VzQ2hh
bmdlZCgpCit7CisgICAgdXBkYXRlQ2FwdHVyZURldmljZXMoU2hvdWxkTm90aWZ5OjpZZXMpOwor
fQorI2VuZGlmCisKIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmFkZERldmljZUNoYW5nZU9ic2VydmVy
KEZ1bmN0aW9uPHZvaWQoKT4mJiBvYnNlcnZlcikKIHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBV
c2VyTWVkaWFDbGllbnQ6OkRldmljZUNoYW5nZU9ic2VydmVyVG9rZW46OmdlbmVyYXRlKCk7CkBA
IC0xNTUsNyArMTc3LDEyIEBAIFVzZXJNZWRpYUNsaWVudDo6RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJU
b2tlbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmFkCiAKICAgICBpZiAoIW1f
bW9uaXRvcmluZ0RldmljZUNoYW5nZSkgewogICAgICAgICBtX21vbml0b3JpbmdEZXZpY2VDaGFu
Z2UgPSB0cnVlOworI2lmIFVTRShHU1RSRUFNRVIpCisgICAgICAgIHVwZGF0ZUNhcHR1cmVEZXZp
Y2VzKFNob3VsZE5vdGlmeTo6Tm8pOworICAgICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hZGREZXZpY2VzQ2hhbmdlZE9ic2VydmVyKCp0aGlzKTsK
KyNlbHNlCiAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkJlZ2lu
TW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkpOworI2VuZGlmCiAgICAgfQogICAgIHJldHVybiBp
ZGVudGlmaWVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlh
U3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oCmluZGV4IDA0N2FmYTIxY2ZjZWUzZDAwOWJkZTM2MTc3NmM4MjE5MzBhNGRkY2IuLjg0N2Ew
NzZiZGNjZjQ3ZWNmZDBjMjVmOTBiOGM5MzUwODc1ZjI2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRl
ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNhblN0YXJ0TGlz
dGVuZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VzZXJNZWRpYUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlck1lZGlhUmVxdWVzdC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0zNCw5ICszNSwxNiBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyIDogcHJpdmF0ZSBXZWJDb3JlOjpNZWRpYUNhblN0YXJ0TGlzdGVuZXIgewor
Y2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhQ2FuU3RhcnRMaXN0ZW5lcgorI2lmIFVTRShHU1RSRUFNRVIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6T2JzZXJ2ZXIKKyNlbmRpZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgorICAgIHVzaW5nIFdlYkNvcmU6Ok1lZGlhQ2FuU3RhcnRMaXN0ZW5l
cjo6d2Vha1B0ckZhY3Rvcnk7CisgICAgdXNpbmcgV2Vha1ZhbHVlVHlwZSA9IFdlYkNvcmU6Ok1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcjo6V2Vha1ZhbHVlVHlwZTsKKwogICAgIGV4cGxpY2l0IFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CiAgICAgflVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpID0gZGVmYXVsdDsKIApAQCAtNTMsNiArNjEsMTEgQEAg
cHVibGljOgogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAKIHByaXZhdGU6Cisj
aWYgVVNFKEdTVFJFQU1FUikKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpPYnNlcnZlcgorICAgIHZvaWQgZGV2aWNlc0NoYW5nZWQoKSBmaW5hbDsKKyNlbmRpZgor
CiAgICAgdm9pZCBzZW5kVXNlck1lZGlhUmVxdWVzdChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0
Jik7CiAKICAgICAvLyBXZWJDb3JlOjpNZWRpYUNhblN0YXJ0TGlzdGVuZXIKQEAgLTY1LDYgKzc4
LDEzIEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudDo6
RGV2aWNlQ2hhbmdlT2JzZXJ2ZXJUb2tlbiwgRnVuY3Rpb248dm9pZCgpPj4gbV9kZXZpY2VDaGFu
Z2VPYnNlcnZlck1hcDsKICAgICBib29sIG1fbW9uaXRvcmluZ0RldmljZUNoYW5nZSB7IGZhbHNl
IH07CisKKyNpZiBVU0UoR1NUUkVBTUVSKQorICAgIGVudW0gY2xhc3MgU2hvdWxkTm90aWZ5IDog
Ym9vbCB7IE5vLCBZZXMgfTsKKyAgICB2b2lkIHVwZGF0ZUNhcHR1cmVEZXZpY2VzKFNob3VsZE5v
dGlmeSk7CisKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gbV9jYXB0dXJlRGV2
aWNlczsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>